2013-10-25
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()
.