AtomCrafty / UniversalInjectorFramework

A framework to inject your own code into Windows applications.
46 stars 3 forks source link

Character Substitution usage failed #2

Closed canyeweishang closed 10 months ago

canyeweishang commented 10 months ago

The game tested was まほ×ろば -Witches spiritual home- After use, it will be displayed as shown in the figure below image image I would like to ask if you have any solution

AtomCrafty commented 10 months ago

The log shows that none of the four functions UIF tried to hook are imported by the exe itself. That could either mean that the game uses a different Windows API to render text, or that the text rendering code is not contained in the exe but in a dll file.

Could you upload the exe and all dlls for me to check out?

canyeweishang commented 10 months ago

image All the files of the game are shown in the picture above, there is no dll, and the game exe has been uploaded mahoXroba.zip

AtomCrafty commented 10 months ago

Hmm, that is unusual. The game uses GetGlyphOutlineW to render glyphs, but for some reason the injector did not find the import. Specifically DetourEnumerateImportsEx fails to enumerate the exe's import address table at all because the entries seem to have been tampered with. The OriginalFirstThunk field of each import descriptor is NULL, which shouldn't ordinarily be the case. The segments have nonstandard names as well (._____, seg002, seg003, etc.), which leads me to believe that either this was compiled with a strange compiler or there was some sort of tamper protection applied after the fact.

Unfortunately I'm not sure how to work around the issue, since I have to rely on Detours to enumerate the IAT properly.

canyeweishang commented 10 months ago

Thanks for the answer, I'll try to use something else to fix this