且行且远

做单纯的自己
渐行渐远 且行且歌

关于我

联系我





订阅本站

文章分类

最新文章

最近评论

给我留言

友情链接

我的豆瓣

我的饭否

饭否

统计信息

快速登陆

2007-2-24 17:21:00
补区段手脱大嘴日语V7.0
今天在PYG上面看到有人问大嘴日语7.0这个软件怎么脱壳,下载下来试着脱了一下。但这个软件在我自己电脑上运行一直就不是很正常,总是弹出提示说参数不正确,我也不知道怎么回事,而这个脱壳后的程序基本运行正常,至于具体有没有问题就不得而知了,hoho:)


首先,PEiD查壳,结果是EXEStealth 2.75a -> WebtoolMaster。用OD载入,设置忽略除“内存访问异常”所有异常。F9运行之后,再按四次Shift+F9后停在这儿(至于为什么要按四次Shift+F9就不说了):
007B8016    8908            mov     dword ptr [eax], ecx

观察堆栈:
0012FFBC   FFFFFFFF  SEH 链尾部
0012FFC0   00E27458  SE处理程序

在E27458处下断点,Shift+F9运行,断下后取消断点,运行至retn。再回到7B8016处,此时这里代码如下:
007B8016  - E9 60F46600     jmp     00E2747B

观察状态寄存器,如果此时TF寄存器的值是1的话就把它置为0,再F8,来到这里:
00E2747B    B8 DD61E2F0       mov     eax, F0E261DD
00E27480    64:8F05 00000000  pop     dword ptr fs:[0]
00E27487    83C4 04           add     esp, 4
00E2748A    55                push    ebp

Ctrl+F搜索jmp eax命令,F4到这里:
00E2751A    FFE0              jmp     eax

再按F8,跳到下一层壳了:
00BC0001    60                pushad
00BC0002    E8 03000000       call    00BC000A
00BC0007  - E9 EB045D45       jmp     461904F7

好像是AsPack的壳,用ESP定律:
00BC03BA    68 10D19500       push    0095D110
00BC03BF    C3                retn

再F8,又跳到一层壳:
0095D110    60                pushad
0095D111    BE 00807B00       mov     esi, 007B8000
0095D116    8DBE 0090C4FF     lea     edi, dword ptr [esi+FFC49000]
0095D11C    57                push    edi
0095D11D    83CD FF           or      ebp, FFFFFFFF
0095D120    EB 10             jmp     short 0095D132

好像是UPX的壳,仍然用ESP定律搞定之,最后来到OEP:
006AD3B0    55                push    ebp
006AD3B1    8BEC              mov     ebp, esp
006AD3B3    83C4 F0           add     esp, -10

这时可以用LordPE来Dump这个程序了,注意Dump之前要先修正一下镜像大小。但此时直接修复IAT不能运行,少一个Data.dat文件,在OD中按Alt+M观察内存,这个Data.dat竟然是一个DLL文件,这个文件在data目录下面,我们知道Windows检查导入的DLL文件是检查两个目录,一个是文件所在目录,另一个是%system32%目录,所以只要把data目录下面的data.dat文件拷贝到和文件一个目录就可以用这个DLL库了,不需要再自己写代码来调用LoadLibraryA进行定位。
此时用ImportRec来修复IAT的话会发现两个无效指针,但我没有仔细看,不知道这两个指针(实际上指向同一个地址)是干什么用的,所以直接用补区段的方法搞定之。在原来的程序中,按Alt+M进入内存窗口,对BmJapanese到data.dat之间的几个没有名的区段全按F2设置访问断点(不是所有的区段都能下),运行程序,发现1B50000、1B70000、1C10000三个区段被断下,用LordPE的区域转存功能Dump这几个区段,然后加到dumped.exe后面,注意要修正区段的相对地址,然后重建PE,再用ImportRec修正IAT即可,注意这时就不要剪切无效指针了。
2008-2-20 12:36:00
Re:补区段手脱大嘴日语V7.0
能不能发一个脱好壳的给小弟用
By HYHY738(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复
2007-4-2 18:22:00
Re:补区段手脱大嘴日语V7.0
我的序列号:1721240876
不知朋友能否帮我算一下注册码
期待!!谢谢!!!
By 游客(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复
2007-3-4 6:07:00
Re:补区段手脱大嘴日语V7.0
回来啦
By bo(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复
2007-2-26 10:47:00
Re:补区段手脱大嘴日语V7.0
啊....好久不见你了你哪天回北京啊?
By ssfighter | 个人主页 | 引用 | 返回 | 删除 | 回复
2007-2-26 1:35:00
Re:补区段手脱大嘴日语V7.0
最近的文章大都晦涩难懂...
By bo(游客) | 个人主页 | 引用 | 返回 | 删除 | 回复

发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题: