首页
社区
课程
招聘
[求助]一个脱Overlay壳的问题请教!
发表于: 2004-12-29 23:08 6266

[求助]一个脱Overlay壳的问题请教!

2004-12-29 23:08
6266
我在脱一个ASPack 2.12 -> Alexey Solodovnikov [Overlay]加的壳,但是总是不能成功,请高手帮忙指点一下。

软件下载地址
http://www.wgdown.com/fsbwg.rar

ASPack 2.12 -> Alexey Solodovnikov这个壳我是成功脱过的,但是多了一个[Overlay]好像就不一样了。
下面是我的脱壳过程。
系统xp
软件od,impro
od载入
0067C001 > 60               PUSHAD ---〉od载入后,停在这里。
0067C002   E8 03000000      CALL fsbwg21.0067C00A  ---〉这里F7进入,要不就跑飞了。

0067C00A   5D               POP EBP                                  ; fsbwg21.0067C007 --->来到了这里
继续F8,直到
0067C00E   E8 01000000      CALL fsbwg21.0067C014 F7进入,要不就跑飞。
0067C014   5D               POP EBP                                  ; fsbwg21.0067C013---〉进入后,来到这里
继续F8
0067C140  ^EB EB            JMP SHORT fsbwg21.0067C12D --->这里,跳走
0067C142   8B06             MOV EAX,DWORD PTR DS:[ESI]---〉单击这里,F4,继续F8

0067C15D  ^EB CE            JMP SHORT fsbwg21.0067C12D--->这里,跳走
0067C15F   5B               POP EBX                                  ; fsbwg21.00401000---〉单击这里,F4,继续F8

0067C1A3  ^0F85 1EFFFFFF    JNZ fsbwg21.0067C0C7--->这里,跳走
0067C1A9   68 00800000      PUSH 8000---〉单击这里,F4,继续F8

0067C37F  ^E9 32FFFFFF      JMP fsbwg21.0067C2B6--->这里,跳走
0067C384   8906             MOV DWORD PTR DS:[ESI],EAX               ; fsbwg21.00628298---〉单击这里,F4,继续F8

0067C395  ^E9 EBFEFFFF      JMP fsbwg21.0067C285--->这里,跳走
0067C39A   B8 18E92100      MOV EAX,21E918---〉单击这里,F4,继续F8

0067C3AF   61               POPAD---〉看到这个,就知道入口接近了。努力,继续F8

0067C3BF   C3               RETN--->从这里,跨段跳了。

0061E918   55               PUSH EBP---〉到这里,我认为是程序的入口了,就用了dump

然后用import reconstructor 1.6来修复
OEP填入0001E918,然后 IAT autosearch,再Get  imports。
最后fixdump.

再次用PEiD v0.92检查
直接用od dump出的2.exe结果是Borland Delphi 6.0 - 7.0

通过import修复的结果是Nothing found *

而且两个都无法正确运行。

我怕我找的入口不对,从
0061E918   55               PUSH EBP这里继续F8

0061E925  ^75 F9            JNZ SHORT fsbwg21.0061E920--->这里,跳走
0061E927   53               PUSH EBX---〉单击这里,F4,继续F8

0061E92F   E8 6086DEFF      CALL fsbwg21.00406F94--->这里又是一个跨段跳,F7进入

00406F94   53               PUSH EBX---〉到了这里,感觉这个也像是个入口,就又dump了。
生成了3.exe文件,用PEiD检查,结果还是
Borland Delphi 6.0 - 7.0

然后用import修复
OEP填入00006F94,还是IAT autosearch
Get imports
fixdump
生成了3_.exe
用PEiD检查,结果Borland Delphi 6.0 - 7.0

本以为这次成功了,但是发现3.exe和3_.exe还是没有一个可以运行的。

希望高手给我点建议,多谢了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
试试stripper_v207f
脱壳后不行
再调试看哪里丢失数据
2004-12-29 23:16
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的大哥,我用stripper_v207f脱壳了,倒是提示成功了。
软件也从841k变成了2.28M
用PEiD v0.92检查结果
Borland Delphi 6.0 - 7.0

但是运行还是不正常,
一运行,就提示选择"搭建之星文件*.IPD"
截图在附件中。


还有,楼上的大哥,能不能帮我看看我手动脱壳的问题出在哪里?
我还是想学会手动脱壳。
我手动脱壳的时候,在后面认为的那个入口的地方,如果用LoadPE作dump的话,就和用stripper_v207f一样了,也是可以运行,提示选择搭建之星文件。

还望fly大哥多多指点,还有就是能不能尽量帮我看看怎么手动弄好?
我不想过多的依赖现成的脱壳工具,多谢了!
2004-12-30 08:14
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
先学脱正常的压缩壳
都搞定了再深入
2004-12-30 08:58
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我学着脱了一些壳,像
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
ASPack 1.08.03 -> Alexey Solodovnikov
ASPack 2.11 -> Alexey Solodovnikov
ASPack 2.12 -> Alexey Solodovnikov

这次的
ASPack 2.12 -> Alexey Solodovnikov[Overlay]
感觉和ASPack 2.12 -> Alexey Solodovnikov有很多相似的地方,但又不一样。所以想到这里来请教一下。
希望fly大哥花些时间帮小弟给看看,多谢了!
2004-12-30 10:02
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
2004-12-30 10:07
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
大哥的帖子我看了,我的水平看着很难!
还望fly大哥多多帮忙,多谢多谢
我也试着用od来载入原程序,在后下bp SetFilePointer断点(请教一下,SetFilePointer是个什么断点?)
结果如下
77E68618 > 55               PUSH EBP   --->断在了这里
77E68619   8BEC             MOV EBP,ESP
77E6861B   83EC 28          SUB ESP,28
77E6861E   8B45 08          MOV EAX,DWORD PTR SS:[EBP+8]
77E68621   53               PUSH EBX
77E68622   25 03000010      AND EAX,10000003
77E68627   56               PUSH ESI
77E68628   83F8 03          CMP EAX,3
77E6862B   57               PUSH EDI
77E6862C   0F84 9D500200    JE kernel32.77E8D6CF--->这里如果跳转就弹出那个选择*.IPD的窗口
77E68632   8B5D 10          MOV EBX,DWORD PTR SS:[EBP+10]
77E68635   85DB             TEST EBX,EBX
77E68637  ^0F85 4CDDFFFF    JNZ kernel32.77E66389--->这里默认向回跳
77E6863D   8B45 0C          MOV EAX,DWORD PTR SS:[EBP+C]--->如果点这里F4,就会到77E6E592   E9 C2B10200      JMP kernel32.77E99759
77E68640   99               CDQ
77E68641   8BF0             MOV ESI,EAX
77E68643   8BFA             MOV EDI,EDX
77E68645   8B45 14          MOV EAX,DWORD PTR SS:[EBP+14]
77E68648   83E8 00          SUB EAX,0
77E6864B   75 66            JNZ SHORT kernel32.77E686B3
77E6864D   8975 F8          MOV DWORD PTR SS:[EBP-8],ESI
77E68650   897D FC          MOV DWORD PTR SS:[EBP-4],EDI
77E68653   837D FC 00       CMP DWORD PTR SS:[EBP-4],0
77E68657   7F 10            JG SHORT kernel32.77E68669
77E68659   0F8C 7C500200    JL kernel32.77E8D6DB
77E6865F   837D F8 00       CMP DWORD PTR SS:[EBP-8],0
77E68663   0F82 72500200    JB kernel32.77E8D6DB
77E68669   85DB             TEST EBX,EBX
77E6866B   75 0D            JNZ SHORT kernel32.77E6867A
77E6866D   F745 FC FFFFFF7F TEST DWORD PTR SS:[EBP-4],7FFFFFFF
77E68674   0F85 73500200    JNZ kernel32.77E8D6ED
77E6867A   6A 0E            PUSH 0E
77E6867C   8D45 F8          LEA EAX,DWORD PTR SS:[EBP-8]
77E6867F   6A 08            PUSH 8
77E68681   50               PUSH EAX
77E68682   8D45 F0          LEA EAX,DWORD PTR SS:[EBP-10]
77E68685   50               PUSH EAX
77E68686   FF75 08          PUSH DWORD PTR SS:[EBP+8]
77E68689   FF15 3010E677    CALL DWORD PTR DS:[<&NTDLL.NtSetInformat>; ntdll.ZwSetInformationFile
77E6868F   85C0             TEST EAX,EAX
77E68691  ^0F8C 6E94FFFF    JL kernel32.77E61B05
77E68697   85DB             TEST EBX,EBX
77E68699  ^0F85 F4DCFFFF    JNZ kernel32.77E66393
77E6869F   837D F8 FF       CMP DWORD PTR SS:[EBP-8],-1

其他的我就很难看懂了,还望fly大哥给讲讲怎么才能知道
0058EB3D     E8 A21BE9FF           call VB函数速.004206E4
//094600处,即是附加数据的开始偏移地址 ★
//把094600修改为脱壳后的附加数据的开始偏移地址

0058EB51     8B45 F0               mov eax,dword ptr ss:[ebp-10]
//[0012FF58]=000CDC05  原版偏移0CDC1D处的数据 ★
//把000CDC05修正为脱壳后附加数据的相应偏移地址

我也用winhex看了原来的程序,末尾的情况见图
2004-12-30 12:03
0
雪    币: 221
活跃值: (2256)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
附加段开始000C2400到文件尾
偏移地址原000D265A改为附加后文件长度-36
2004-12-30 13:29
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
按照8楼的做了,但是好像不行。
下面是正常的没脱壳的文件


我改完后的文件



改完后,运行也不报错。但是一运行就没有反应了,什么都不出,后台的进程里面可以看到这个文件!

2004-12-30 13:36
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我用ASPack 2.12压了一个记事本,发现只要选上Preserve extra data后,压出来的文件用PEiD检查,就带Overlay。
但是我压出来的用stripper_v207f一脱就可以了,根本不用修复,也不提示找IPD文件呀??
2004-12-30 15:04
0
雪    币: 221
活跃值: (2256)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
1。将原文件的(附加段开始)000C2400到文件尾,粘贴到脱壳后的文件后
2。偏移地址原000D265A改为附加后文件长度-36
注意:36为十进制,即十六制24(h)
3.上图中00249800改为脱壳后(未粘贴)的文件长度
2004-12-30 20:25
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
楼上的大哥,我已经改了,还是不行
000D265A应该改为附加后文件长度-36
附加后的文件长度如上图是249817
减去24h后,结果是2497f3和我上图的修改结果一样
上图中00249800改为脱壳后(未粘贴)的文件长度
如果是未粘贴长度的话,就应该是002497ff

按照上面的结算,添加部分变成
FF 97 24 00 F3 97 24 00 20 20 20 20 46 53 4A 4D
20 49 50 44 20 57 33 32

可是还是不能正常运行。
不如这个大哥脱一下试试,写个脱文?多谢多谢。
还在努力。。。。。。
2004-12-30 22:19
0
雪    币: 221
活跃值: (2256)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
不如留个邮箱,我把脱完的发给你!
2004-12-31 21:01
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
多谢!
[email]babodx@yahoo.com.cn[/email]

我终于脱壳成功了。
也明白了要怎么修复附加文件了。

但发现这才是破解的开始,这个外挂好像根本用不了。
不过还是想把它给破了,现在正在学习如何才能用 od下个有用的断点。
如果楼上的大哥愿意教我,感激不尽!
2004-12-31 22:14
0
游客
登录 | 注册 方可回帖
返回
//