问题:
在对ELMConfig 汉化中,需要对主程序ELMConfig.EXE脱壳,但我用了好几个工具都脱不了壳,用查壳工具看了,Language和Peid都查不出壳和编程语言,用FastScanner查出壳是UPX3,但我目前用了很多UPX的脱壳工具都脱不了这个壳。
这个程序是俄罗斯人编写的可用于福特汽车的诊断和设置程序,本人一直在为车友义务汉化,以前的版本加壳方式不一样,能脱壳,现在的新版本我脱不了了,希望能得到大家的帮助,造福车友!
后来发帖求助:00木一朋友帮助我脱了,在些再次表示感谢!
现在我学习了简单的脱壳,对手动脱壳的方法有了基本的了解,能脱压缩壳和部分加密壳(前提是能准确查壳,网上有类似的脱壳教程),我想能学会脱这个壳。
这个壳用FastScanner查出壳是UPX3,用两个版本的Peid查出了不同的结果:
但我怀疑这个壳是伪装的了,我用了OD跟踪,无法找到入口点,以下是我的分析过程:
我用了ESP定律,包括按http://www.52pojie.cn/forum.php?mod=viewthread&tid=265705的提示方法找第二大跳,也都找不到OEP。
我也用了最后一次异常,但这个程序一次异常都没有就飞了。
我怀疑是OD和我的设置的问题,包括对OD隐藏插件都怀疑过,换了无数OD版,也换了无数Od隐藏插件,但都找不到。
我最后想用API来断下来,我找到了一个程序指针,但最后跟进去后程序做了一圈迭代后又回到原来的地方,很大的一圈,从07XXXXXXX到01XXXXXXX再到05XXXXXXX再到0cXXXXXXX,最后到07XXXXXXX。
我用尽了所有的寻找OEP的方法,都没有结果。
最后我想用笨办法,花了很多时间全程单步跟,连续的无数次跟飞,用了一个星期时间,还是没有找到OEP。
以下是我做的部分笔记:
73391B72 ^\75 B5 JNZ SHORT 73391B29 //程序飞1,如果用F4到下一行
*********************************
7C93B5F7 ^\E9 E9FEFFFF JMP ntdll.7C93B4E5
01220353 ^\EB A8 JMP SHORT 012202FD
01220364 ^\E9 63FFFFFF JMP 012202CC
012204C7 ^\E2 8F LOOPD SHORT 01220458
01220531 ^\E9 38FEFFFF JMP 0122036E 程序飞2,如果用F4到下一行
01220531如果手动单步跟踪,每次做一个大的循环后会跳到这里,周而复始
**********************
0055d85f 程序飞3,如果用F4到下一行
0055D85F E8 04000000 CALL ELMConfi.0055D868 跟进去
后面会碰到无数个E8 04000000,不跟进去就飞
0055D884 ^\EB AF JMP SHORT ELMConfi.0055D835
0055D8E7 8540 FF TEST DWORD PTR DS:[EAX-0x1],EAX
0055D8E7 E8 04000000 CALL ELMConfi.0055D8F0
0055DA7F E8 04000000 CALL ELMConfi.0055DA88
7C801D88 68 60E1807C PUSH kernel32.7C80E160 ; ASCII "twain_32.dll"//这里还好像是个木马?
00C4F1A7 E8 0C000000 CALL ELMConfi.00C4F1B8
00C4F1ED E8 02000000 CALL ELMConfi.00C4F1F4
00C4F351 E8 02000000 CALL ELMConfi.00C4F358
00C4F351 E8 02000000 CALL ELMConfi.00C4F358
00C4F3E2 E8 5D030000 CALL ELMConfi.00C4F744
00C4F7FE E8 04000000 CALL ELMConfi.00C4F807
00C4FA73 E8 04000000 CALL ELMConfi.00C4FA7C
00C4FA4C E8 04000000 CALL ELMConfi.00C4FA55
00C4FB4C E8 04000000 CALL ELMConfi.00C4FB55
00C4FB73 E8 04000000 CALL ELMConfi.00C4FB7C
00C4FBB6 E8 04000000 CALL ELMConfi.00C4FBBF
00C5019D E8 04000000 CALL ELMConfi.00C501A6
00C50AAF E8 04000000 CALL ELMConfi.00C50AB8
00C64041 E8 04000000 CALL ELMConfi.00C6404A
00C75228 E8 04000000 CALL ELMConfi.00C75231
00C80430 E8 04000000 CALL ELMConfi.00C80439
00C81D71 E8 04000000 CALL ELMConfi.00C81D7A
00C8FDE7 E8 04000000 CALL ELMConfi.00C8FDF0
00C92EA0 E8 04000000 CALL ELMConfi.00C92EA9
00C937C2 E8 04000000 CALL ELMConfi.00C937CB
00C97E68 E8 04000000 CALL ELMConfi.00C97E71
00C9BEE5 E8 04000000 CALL ELMConfi.00C9BEEE
00C9C101 E8 04000000 CALL ELMConfi.00C9C10A
00C9C448 E8 04000000 CALL ELMConfi.00C9C451
00C9C7B9 E8 04000000 CALL ELMConfi.00C9C7C2
00C9CCE0 E8 04000000 CALL ELMConfi.00C9CCE9
00C9CD07 E8 04000000 CALL ELMConfi.00C9CD10
00C9CEE9 E8 04000000 CALL ELMConfi.00C9CEF2
00C9D180 E8 04000000 CALL ELMConfi.00C9D189
00C9D4D9 E8 04000000 CALL ELMConfi.00C9D4E2
00C9D500 E8 04000000 CALL ELMConfi.00C9D509
00C9D8ED E8 04000000 CALL ELMConfi.00C9D8F6
00C9D9C5 E8 04000000 CALL ELMConfi.00C9D9CE
00C9DEBE E8 04000000 CALL ELMConfi.00C9DEC7
00C9E14D E8 04000000 CALL ELMConfi.00C9E156
00C9E286 E8 04000000 CALL ELMConfi.00C9E28F
00C9EBE5 E8 04000000 CALL ELMConfi.00C9EBEE
00C9F8C7 E8 04000000 CALL ELMConfi.00C9F8D0
00C9F8EE E8 04000000 CALL ELMConfi.00C9F8F7
00C9FC8E E8 04000000 CALL ELMConfi.00C9FC97
00C9FCB5 E8 04000000 CALL ELMConfi.00C9FCBE
00C9FE02 E8 04000000 CALL ELMConfi.00C9FE0B
00C9FE29 E8 04000000 CALL ELMConfi.00C9FE32 最后
00CA0031 E8 04000000 CALL ELMConfi.00CA003A
00CA0362 E8 04000000 CALL ELMConfi.00CA036B
00CA07F6 E8 04000000 CALL ELMConfi.00CA07FF
00408284 - FF25 6C124000 JMP DWORD PTR DS:[0x40126C]
733935A4 55 PUSH EBP
程序肯定是VB
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&这个好像是个OEP,但是个假的,可能
733935A4 55 PUSH EBP
733935A5 8BEC MOV EBP,ESP
733935A7 6A FF PUSH -0x1
********************************************
733935FB E8 5C000000 CALL MSVBVM60.7339365C
****************************************************8
00C9FEE3 E8 BA000000 CALL ELMConfi.00C9FFA2
**********************************
00CA0A99 E8 04000000 CALL ELMConfi.00CA0AA2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0012FEF8 |00CA0B86 ?? ELMConfi.00CA0B86
现在俄罗斯人又推出了0.2.15版,以后也不断会有新的版本推出,车友
需求:
1、如何确定壳的类型?
2、手工脱壳的方法和步骤?(希望能详细一点)
如果觉得我现在的水平不足以脱此壳,也请指点出壳的准确类别, 我可以针对性的学习。
说明:
0.2.15版程序云盘地址:
http://pan.baidu.com/s/1ntmNeA1
软件的版本:0.2.14
下载链接在CSDN有,我已经上传了:
http://download.csdn.net/detail/jinggangshi/8122765