Hello,
I have a program, Mcgs Configuration Installation Utility. They used the old Wise Installation Studio or whatever it's called to create the setup.exe file.
Unfortunately, it seems they set the language locale code page to 1033 (English https://www.science.co.il/language/Locale-codes.php ) but didn't translate the text, so it shows as all garbage on my system. For example, when I start the program, the title bar says:
Here's the hex for that title screen:
I'm trying to use a debugger to modify the program and eventually create a patch file that has English.
I'm having a hard time trying to figure out how the hex encoding works though. 4D 43 47 53 is MCGS. I thought the rest was unicode, but I haven't been able to successfully convert it Chinese.
Any one have any experience with this?
So far, I've tried using on-line converters and tried hex values like:
The second one appeared almost chinese like on one converter site. It had some chinese looking characters, but when put into various Chinese to English translators, it was gibberish, not real words.
Anyone know how a program stores Chinese characters in a binary format? The compiler that was used was the Microsoft Visual C / C++ compiler, according to a plugin I have that detects the compiler. I think it said version 7. I can double check if it's important.
It's a 32-bit program but has calls to 16-bit APIs (well, they're 32-bit APIs, but Microsoft ported them and there's much better APIs to use now-a-days).
It seems the compiler was using the _CDELC calling convention, or atleast the WISE installer is. Parameters to API calls are pushed onto the stack, in reverse order, ESI stores the API we're calling, etc.
I can provide a link to the program if anyone's interested in looking at it or trying to help. I can provide offsets and the notes I've taken. I'm using x64dbg (well, the 32-bit version, x32dbg).
Any help would be greatly appreciated.
**EDIT: One thing to keep in mind, I think they were using a very old version of the Wise installer and Wise has not been used in years, so I don't think this is unicode or anything like that. I'm trying to google how the _CDELC calling convention stores chinese characters in 32-bit programs. But I might be on the wrong track here. Learning a lot in the process though.
I have a program, Mcgs Configuration Installation Utility. They used the old Wise Installation Studio or whatever it's called to create the setup.exe file.
Unfortunately, it seems they set the language locale code page to 1033 (English https://www.science.co.il/language/Locale-codes.php ) but didn't translate the text, so it shows as all garbage on my system. For example, when I start the program, the title bar says:
Code:
MCGSǶÈë°æxé̬Èí¼þ
Code:
00 4D 43 47 53 C7 B6 C8 EB B0 E6 D7 E9 CC AC C8 ED BC FE 20
I'm having a hard time trying to figure out how the hex encoding works though. 4D 43 47 53 is MCGS. I thought the rest was unicode, but I haven't been able to successfully convert it Chinese.
Any one have any experience with this?
So far, I've tried using on-line converters and tried hex values like:
Code:
C7B6 C8EB B0E6 D7E9 CCAC C8ED BCFE B6C7 EBC8 E6B0 E9D7 ACCC EDC8 FEBC
Anyone know how a program stores Chinese characters in a binary format? The compiler that was used was the Microsoft Visual C / C++ compiler, according to a plugin I have that detects the compiler. I think it said version 7. I can double check if it's important.
It's a 32-bit program but has calls to 16-bit APIs (well, they're 32-bit APIs, but Microsoft ported them and there's much better APIs to use now-a-days).
It seems the compiler was using the _CDELC calling convention, or atleast the WISE installer is. Parameters to API calls are pushed onto the stack, in reverse order, ESI stores the API we're calling, etc.
I can provide a link to the program if anyone's interested in looking at it or trying to help. I can provide offsets and the notes I've taken. I'm using x64dbg (well, the 32-bit version, x32dbg).
Any help would be greatly appreciated.
**EDIT: One thing to keep in mind, I think they were using a very old version of the Wise installer and Wise has not been used in years, so I don't think this is unicode or anything like that. I'm trying to google how the _CDELC calling convention stores chinese characters in 32-bit programs. But I might be on the wrong track here. Learning a lot in the process though.
Comment