首页
社区
课程
招聘
[旧帖] [原创]ACProtect 1.4x DLL脱壳 0.00雪花
发表于: 2010-4-10 09:40 1273

[旧帖] [原创]ACProtect 1.4x DLL脱壳 0.00雪花

2010-4-10 09:40
1273
设置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,然后复制到安装文件下,运行主程序,一切正常
至此脱壳成功

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//