Fixing fmodex.dll

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
sigroon365
Posts: 330
Joined: Fri Nov 21, 2014 4:03 am

Fixing fmodex.dll

Post by sigroon365 »

Some of steam games uses only ascii code, so it is impossible to use unicode character.
Several weeks ago, I found Chinese's fmodex.dll hooking patch for it. It loads 3DM.dll, 3dm.fnt and 3dmtex.sogp in the 3DM folder.
However, there are some problems. The game uses new fmodex.dll, so the old version of it doesn't work at all.

sample files https://www.sendspace.com/file/er8590

Here is comparing result of 'fmodex old (original).dll' and 'fmodex old (chs hooking).dll'
Image

There are two differences between them.
1) 8B 1E 83 EE FC to E9 C6 01 00 00
2) 9C 60 E8 0c 00 00 00 61 9D 8B 1E 83 EE FC ... at 0x56725

I have difficult in understanding what 8B 1E 83 EE FC means.
After the end of null data, there are V.S_VERSION_INFO...
Image

fmodex new (original).dll also has V.S_VERSION_INFO... at 0x12A0A6
Image

The point is that I want to change fmodex new (original) to chs version. Is it possible?
sigroon365
Posts: 330
Joined: Fri Nov 21, 2014 4:03 am

Re: Fixing fmodex.dll

Post by sigroon365 »

Uhm.. No one have any idea? :cry:
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Fixing fmodex.dll

Post by aluigi »

Do you need a disassembler in one line?

Code: Select all

echo 8B 1E 83 EE FC | hex2byte - | quickbms -V -s "get TEST asm ; print %TEST%" "" -
echo E9 C6 01 00 00 00 | hex2byte - | quickbms -V -s "get TEST asm ; print %TEST%" "" -
echo 9C 60 E8 0c 00 00 00 61 9D 8B 1E 83 EE FC | hex2byte - | quickbms -V -s "for ; get TEST asm ; print %TEST% ; next" "" -

(I know that probably it doesn't answer to your question but maybe it's a starting point... and was funny to show that feature of quickbms)
sigroon365
Posts: 330
Joined: Fri Nov 21, 2014 4:03 am

Re: Fixing fmodex.dll

Post by sigroon365 »

aluigi wrote:Do you need a disassembler in one line?

Code: Select all

echo 8B 1E 83 EE FC | hex2byte - | quickbms -V -s "get TEST asm ; print %TEST%" "" -
echo E9 C6 01 00 00 00 | hex2byte - | quickbms -V -s "get TEST asm ; print %TEST%" "" -
echo 9C 60 E8 0c 00 00 00 61 9D 8B 1E 83 EE FC | hex2byte - | quickbms -V -s "for ; get TEST asm ; print %TEST% ; next" "" -

(I know that probably it doesn't answer to your question but maybe it's a starting point... and was funny to show that feature of quickbms)


Uhm.. Well, even though I can't solve my question .. Thanks for your investigation.