-
-
[旧帖] [原创]ACProtect 1.4x DLL脱壳 0.00雪花
-
发表于: 2010-4-10 09:40 1319
-
设置Ollydbg忽略所有的异常选项。老规矩:用IsDebug V1.4插件去掉Ollydbg的调试器标志。
一、OEP
10013150 > 807C24 08 01 CMP BYTE PTR [ESP+8], 1 //进入Ollydbg后暂停在这
10013155 0F85 C2010000 JNZ 1001331D <=====我们找1001331D
1001315B 60 PUSHAD
1001315C BE 00D00010 MOV ESI, 1000D000
10013161 8DBE 0040FFFF LEA EDI, DWORD PTR [ESI+FFFF4000]
10013167 57 PUSH EDI
10013168 EB 10 JMP SHORT 1001317A
10013318 ^\75 FA JNZ SHORT 10013314
1001331A 83EC 80 SUB ESP, -80
1001331D - E9 A865FFFF JMP 100098CA <=======用鼠标在1001331D点一下,然后F4下来。
接着我们再按F8,便可来到OEP:
100098CA 55 PUSH EBP <======OEP
100098CB 8BEC MOV EBP, ESP
100098CD 53 PUSH EBX
100098CE 8B5D 08 MOV EBX, DWORD PTR [EBP+8]
100098D1 56 PUSH ESI
100098D2 8B75 0C MOV ESI, DWORD PTR [EBP+C]
100098D5 57 PUSH EDI
100098D6 8B7D 10 MOV EDI, DWORD PTR [EBP+10]
100098D9 85F6 TEST ESI, ESI
100098DB 75 09 JNZ SHORT 100098E6
100098DD 833D 24F90010 0>CMP DWORD PTR [1000F924], 0
100098E4 EB 26 JMP SHORT 1000990C
100098E6 83FE 01 CMP ESI, 1
100098E9 74 05 JE SHORT 100098F0
100098EB 83FE 02 CMP ESI, 2
100098EE 75 22 JNZ SHORT 10009912
100098F0 A1 18E70010 MOV EAX, DWORD PTR [1000E718]
100098F5 85C0 TEST EAX, EAX
100098F7 74 09 JE SHORT 10009902
100098F9 57 PUSH EDI
100098FA 56 PUSH ESI
100098FB 53 PUSH EBX
100098FC FFD0 CALL EAX
用LordPE,选择Loaddll.exe,然后再在下方Path窗口选择TUserComm.dll,然后Dump出来。
再用ImportREC修复输入表:
附加进程:Loaddll.exe,再按“选取dll”钮,选择“TUserComm.dll”
输入表RVA:98CA,然后按“自动查找IAT”,再按“获取输入表”,最后“修复转存文件”,选择刚才Dump.dll文件,
即生成Dump_.dll文件。
说明,我们把该Dump_.dll文件更名后放入安装文件下,发现运行不起来。因此接下去我们需要进行重定位
二、重定位
我们建立一个文件夹:未脱壳 把未脱壳的TUserComm.dll文件复制到该文件夹下,并更名为TUserCommA.dll,然后再复制一个
未脱壳TUserComm.dll文件到该文件夹下。注意,你还需要把安装文件夹下的SECURE.DLL也复制到该文件夹下(因要调试TUserComm.dll
需要此文件)
运行Dll_LoadEx.exe 分别加载 未脱壳 文件夹下的TUserCommA.dll和TUserComm.dll,(如图),不要关闭Dll_LoadEx窗口。
然后再运行LordPE,选中Loaddll.exe,然后再选中下窗口中的TUserCommA.dll,并dump,文件命名为:1.dll
同样方法 再选中TUserComm.dll,并dump 文件命名为:2.dll
然后我们在LordPE窗口仔细观察
一个TUserComm.dll ImageBase为 10000000
另一个TUserCommA.dll ImageBase为 2800000
注意不要关闭LordPE窗口
好,我们现在运行ReloX.exe
分别载入1.dll和2.dll 并在右侧空格填入ImageBase:2800000 一个ImageBase:10000000
然后按COMPARE,最后按Fix PE Module ,并选择上面那个dump_.dll,生成dump__.dll
现在你可以把dump__.dll更名为TUserComm.dl,然后复制到安装文件下,运行主程序,一切正常
至此脱壳成功
一、OEP
10013150 > 807C24 08 01 CMP BYTE PTR [ESP+8], 1 //进入Ollydbg后暂停在这
10013155 0F85 C2010000 JNZ 1001331D <=====我们找1001331D
1001315B 60 PUSHAD
1001315C BE 00D00010 MOV ESI, 1000D000
10013161 8DBE 0040FFFF LEA EDI, DWORD PTR [ESI+FFFF4000]
10013167 57 PUSH EDI
10013168 EB 10 JMP SHORT 1001317A
10013318 ^\75 FA JNZ SHORT 10013314
1001331A 83EC 80 SUB ESP, -80
1001331D - E9 A865FFFF JMP 100098CA <=======用鼠标在1001331D点一下,然后F4下来。
接着我们再按F8,便可来到OEP:
100098CA 55 PUSH EBP <======OEP
100098CB 8BEC MOV EBP, ESP
100098CD 53 PUSH EBX
100098CE 8B5D 08 MOV EBX, DWORD PTR [EBP+8]
100098D1 56 PUSH ESI
100098D2 8B75 0C MOV ESI, DWORD PTR [EBP+C]
100098D5 57 PUSH EDI
100098D6 8B7D 10 MOV EDI, DWORD PTR [EBP+10]
100098D9 85F6 TEST ESI, ESI
100098DB 75 09 JNZ SHORT 100098E6
100098DD 833D 24F90010 0>CMP DWORD PTR [1000F924], 0
100098E4 EB 26 JMP SHORT 1000990C
100098E6 83FE 01 CMP ESI, 1
100098E9 74 05 JE SHORT 100098F0
100098EB 83FE 02 CMP ESI, 2
100098EE 75 22 JNZ SHORT 10009912
100098F0 A1 18E70010 MOV EAX, DWORD PTR [1000E718]
100098F5 85C0 TEST EAX, EAX
100098F7 74 09 JE SHORT 10009902
100098F9 57 PUSH EDI
100098FA 56 PUSH ESI
100098FB 53 PUSH EBX
100098FC FFD0 CALL EAX
用LordPE,选择Loaddll.exe,然后再在下方Path窗口选择TUserComm.dll,然后Dump出来。
再用ImportREC修复输入表:
附加进程:Loaddll.exe,再按“选取dll”钮,选择“TUserComm.dll”
输入表RVA:98CA,然后按“自动查找IAT”,再按“获取输入表”,最后“修复转存文件”,选择刚才Dump.dll文件,
即生成Dump_.dll文件。
说明,我们把该Dump_.dll文件更名后放入安装文件下,发现运行不起来。因此接下去我们需要进行重定位
二、重定位
我们建立一个文件夹:未脱壳 把未脱壳的TUserComm.dll文件复制到该文件夹下,并更名为TUserCommA.dll,然后再复制一个
未脱壳TUserComm.dll文件到该文件夹下。注意,你还需要把安装文件夹下的SECURE.DLL也复制到该文件夹下(因要调试TUserComm.dll
需要此文件)
运行Dll_LoadEx.exe 分别加载 未脱壳 文件夹下的TUserCommA.dll和TUserComm.dll,(如图),不要关闭Dll_LoadEx窗口。
然后再运行LordPE,选中Loaddll.exe,然后再选中下窗口中的TUserCommA.dll,并dump,文件命名为:1.dll
同样方法 再选中TUserComm.dll,并dump 文件命名为:2.dll
然后我们在LordPE窗口仔细观察
一个TUserComm.dll ImageBase为 10000000
另一个TUserCommA.dll ImageBase为 2800000
注意不要关闭LordPE窗口
好,我们现在运行ReloX.exe
分别载入1.dll和2.dll 并在右侧空格填入ImageBase:2800000 一个ImageBase:10000000
然后按COMPARE,最后按Fix PE Module ,并选择上面那个dump_.dll,生成dump__.dll
现在你可以把dump__.dll更名为TUserComm.dl,然后复制到安装文件下,运行主程序,一切正常
至此脱壳成功
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [求助]我用WinLicense V2.0.6.0给文件加了壳,急求脱壳 2299
- [求助]急求EXE Encryptor 2288
- [原创]急需一款多层次加壳的软件! 1035
- [原创]ACProtect 1.4x DLL脱壳 1320
- [分享]Safeguard脱壳探究 1379
赞赏
雪币:
留言: