The result of two months worth of painstaking detail work. DLL injection chaining (read: vpatch) support, a number of smaller bug fixes, and quite a lot of general quality improvements throughout the code base.
thcrap
- Actually call
strings_patch(). -.- - Eliminate directory creation confusion and patch
CreateDirectoryA(). - Patch Win32 dialog font sizes.
- Correctly determine the size of patched Win32 dialog items, once and for all.
strings_vsprintf(): Rewrite to work independently of string encoding.- Introduce a "Rx" syntax for hexadecimal addresses relative to the game's base address.
- Use three methods to determine the entry point of the game process.
- Detour
CreateProcess()andLoadLibrary()for DLL injection chaining. - Detour
CreateRemoteThread()to apply the thcrap detours to newly injected DLLs. - Add
inject_CreateProcessW(). - Add a basic custom exception handler.
log_nprint(): Check if the console was opened.
thcrap_tsa
tsa_CreateWindowExA(): Observe CW_USEDEFAULT.
win32_utf8
- Add
GetModuleFileNameEx(). - Redirect GetWindowLong and SetWindowLong to their W equivalents.
- Add
GetPrivateProfileInt().