mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-11-23 11:15:34 +08:00
updated changelog
This commit is contained in:
parent
5ec61403f5
commit
5db4636cf1
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,7 +1,7 @@
|
|||||||
|
* added new options to the overlay to allow copying a friend's ID, plus current player ID
|
||||||
|
* added a new option to the overlay to invite all friends playing the same game
|
||||||
* addded new `auto_accept_invite.txt` setting to automatically accept game/lobby invites from this list, each SteamID64 on a separate line
|
* addded new `auto_accept_invite.txt` setting to automatically accept game/lobby invites from this list, each SteamID64 on a separate line
|
||||||
also you can leave the file empty to accept invitations from anyone
|
also you can leave the file empty to accept invitations from anyone, check the updated release readme
|
||||||
* fixed the condition of `warn_forced_setting`, previously it may be reset back to `false` accidentally
|
|
||||||
* deprecated `disable_overlay_warning.txt` in `steam_settings` folder in favor of new options/files
|
|
||||||
* added new `disable_overlay_warning_*.txt` settings to disable certain or all warnings in the overlay
|
* added new `disable_overlay_warning_*.txt` settings to disable certain or all warnings in the overlay
|
||||||
* `disable_overlay_warning_forced_setting.txt`:
|
* `disable_overlay_warning_forced_setting.txt`:
|
||||||
- disable the warning for the usage of any file `force_*.txt` in the overlay
|
- disable the warning for the usage of any file `force_*.txt` in the overlay
|
||||||
@ -9,6 +9,12 @@
|
|||||||
* `disable_overlay_warning_bad_appid.txt`: disable the warning for bad app ID (when app ID = 0) in the overlay
|
* `disable_overlay_warning_bad_appid.txt`: disable the warning for bad app ID (when app ID = 0) in the overlay
|
||||||
* `disable_overlay_warning_local_save.txt`: disable the warning for using local save in the overlay
|
* `disable_overlay_warning_local_save.txt`: disable the warning for using local save in the overlay
|
||||||
* `disable_overlay_warning_any.txt`: all the above
|
* `disable_overlay_warning_any.txt`: all the above
|
||||||
|
* **deprecated** `disable_overlay_warning.txt` in `steam_settings` folder in favor of new the options/files
|
||||||
|
* added more Stub variants
|
||||||
|
* fixed the condition of `warn_forced_setting`, previously it may be reset back to `false` accidentally
|
||||||
|
* fixed a casting mistake when displaying friend ID
|
||||||
|
* avoid spam loading the achievements forever on failure, only try 3 times
|
||||||
|
* removed a debug flag in `UGC::GetItemState()` left by mistake
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -275,83 +275,84 @@ PIMAGE_SECTION_HEADER pe_helpers::get_section_header_with_name(HMODULE hModule,
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD pe_helpers::loadlib_remote(HANDLE hProcess, const std::wstring &lib_fullpath, const char** err_reason) {
|
DWORD pe_helpers::loadlib_remote(HANDLE hProcess, const std::wstring &lib_fullpath, const char** err_reason)
|
||||||
|
{
|
||||||
// create a remote page
|
// create a remote page
|
||||||
const size_t lib_path_str_bytes = lib_fullpath.size() * sizeof(lib_fullpath[0]);
|
const size_t lib_path_str_bytes = lib_fullpath.size() * sizeof(lib_fullpath[0]);
|
||||||
LPVOID lib_remote_page = VirtualAllocEx(
|
LPVOID lib_remote_page = VirtualAllocEx(
|
||||||
hProcess,
|
hProcess,
|
||||||
NULL,
|
NULL,
|
||||||
lib_path_str_bytes + sizeof(lib_fullpath[0]) * 2, // *2 just to be safe
|
lib_path_str_bytes + sizeof(lib_fullpath[0]) * 2, // *2 just to be safe
|
||||||
MEM_RESERVE | MEM_COMMIT,
|
MEM_RESERVE | MEM_COMMIT,
|
||||||
PAGE_READWRITE
|
PAGE_READWRITE
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!lib_remote_page) {
|
if (!lib_remote_page) {
|
||||||
if (err_reason) {
|
if (err_reason) {
|
||||||
*err_reason = "Failed to remotely allocate page with VirtualAllocEx()";
|
*err_reason = "Failed to remotely allocate page with VirtualAllocEx()";
|
||||||
|
}
|
||||||
|
return GetLastError();
|
||||||
}
|
}
|
||||||
return GetLastError();
|
|
||||||
}
|
|
||||||
|
|
||||||
SIZE_T bytes_written = 0;
|
SIZE_T bytes_written = 0;
|
||||||
BOOL written = WriteProcessMemory(
|
BOOL written = WriteProcessMemory(
|
||||||
hProcess,
|
hProcess,
|
||||||
lib_remote_page,
|
lib_remote_page,
|
||||||
(LPCVOID)&lib_fullpath[0],
|
(LPCVOID)&lib_fullpath[0],
|
||||||
lib_path_str_bytes,
|
lib_path_str_bytes,
|
||||||
&bytes_written
|
&bytes_written
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!written || bytes_written < lib_path_str_bytes) {
|
||||||
|
// cleanup allcoated page
|
||||||
|
VirtualFreeEx(
|
||||||
|
hProcess,
|
||||||
|
lib_remote_page,
|
||||||
|
0,
|
||||||
|
MEM_RELEASE);
|
||||||
|
|
||||||
|
if (err_reason) {
|
||||||
|
*err_reason = "Failed to remotely write dll path with WriteProcessMemory()";
|
||||||
|
}
|
||||||
|
return GetLastError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// call LoadLibraryW() and pass the dll fullpath
|
||||||
|
HANDLE remote_thread = CreateRemoteThread(
|
||||||
|
hProcess,
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
(LPTHREAD_START_ROUTINE)LoadLibraryW,
|
||||||
|
lib_remote_page,
|
||||||
|
0,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (!remote_thread) {
|
||||||
|
// cleanup allcoated page
|
||||||
|
VirtualFreeEx(
|
||||||
|
hProcess,
|
||||||
|
lib_remote_page,
|
||||||
|
0,
|
||||||
|
MEM_RELEASE);
|
||||||
|
|
||||||
|
if (err_reason) {
|
||||||
|
*err_reason = "Failed to create/run remote thread with CreateRemoteThread()";
|
||||||
|
}
|
||||||
|
return GetLastError();
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait for DllMain
|
||||||
|
WaitForSingleObject(remote_thread, INFINITE);
|
||||||
|
CloseHandle(remote_thread);
|
||||||
|
|
||||||
if (!written || bytes_written < lib_path_str_bytes) {
|
|
||||||
// cleanup allcoated page
|
// cleanup allcoated page
|
||||||
VirtualFreeEx(
|
VirtualFreeEx(
|
||||||
hProcess,
|
hProcess,
|
||||||
lib_remote_page,
|
lib_remote_page,
|
||||||
0,
|
0,
|
||||||
MEM_RELEASE);
|
MEM_RELEASE);
|
||||||
|
|
||||||
if (err_reason) {
|
return ERROR_SUCCESS;
|
||||||
*err_reason = "Failed to remotely write dll path with WriteProcessMemory()";
|
|
||||||
}
|
|
||||||
return GetLastError();
|
|
||||||
}
|
|
||||||
|
|
||||||
// call LoadLibraryA() and pass "launc.dll"
|
|
||||||
HANDLE remote_thread = CreateRemoteThread(
|
|
||||||
hProcess,
|
|
||||||
NULL,
|
|
||||||
0,
|
|
||||||
(LPTHREAD_START_ROUTINE)LoadLibraryW,
|
|
||||||
lib_remote_page,
|
|
||||||
0,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
if (!remote_thread) {
|
|
||||||
// cleanup allcoated page
|
|
||||||
VirtualFreeEx(
|
|
||||||
hProcess,
|
|
||||||
lib_remote_page,
|
|
||||||
0,
|
|
||||||
MEM_RELEASE);
|
|
||||||
|
|
||||||
if (err_reason) {
|
|
||||||
*err_reason = "Failed to create/run remote thread with CreateRemoteThread()";
|
|
||||||
}
|
|
||||||
return GetLastError();
|
|
||||||
}
|
|
||||||
|
|
||||||
WaitForSingleObject(remote_thread, INFINITE);
|
|
||||||
CloseHandle(remote_thread);
|
|
||||||
|
|
||||||
// cleanup allcoated page
|
|
||||||
VirtualFreeEx(
|
|
||||||
hProcess,
|
|
||||||
lib_remote_page,
|
|
||||||
0,
|
|
||||||
MEM_RELEASE);
|
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t pe_helpers::get_pe_size(HMODULE hModule)
|
size_t pe_helpers::get_pe_size(HMODULE hModule)
|
||||||
|
@ -50,12 +50,12 @@ function help_page () {
|
|||||||
|
|
||||||
# mandatory checks
|
# mandatory checks
|
||||||
if [[ ! -f "$script_dir/${STEAM_CLIENT_SO}" ]]; then
|
if [[ ! -f "$script_dir/${STEAM_CLIENT_SO}" ]]; then
|
||||||
echo "'$STEAM_CLIENT_SO' must be placed beside this script"
|
echo "'$STEAM_CLIENT_SO' must be placed beside this script"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$script_dir/${STEAM_CLIENT64_SO}" ]; then
|
if [ ! -f "$script_dir/${STEAM_CLIENT64_SO}" ]; then
|
||||||
echo "'$STEAM_CLIENT64_SO' must be placed beside this script"
|
echo "'$STEAM_CLIENT64_SO' must be placed beside this script"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# no args = help page
|
# no args = help page
|
||||||
|
Loading…
Reference in New Issue
Block a user