首页
社区
课程
招聘
菜鸟初次脱壳,惨遭失败,高手能否给些意见?(ASProtect 2.1x SKE )
发表于: 2006-8-29 15:13 4655

菜鸟初次脱壳,惨遭失败,高手能否给些意见?(ASProtect 2.1x SKE )

2006-8-29 15:13
4655
用PEiDv0.94查壳,结果是:
    ASProtect 2.1x SKE -> Alexey Solodovnikov

于是打算尝试使用脚本 Aspr2.XX_IATfixer_v1.02.osc 来脱壳。
(这个脚本真是太适合我这样的初学者使用了。在此我向该脚本的作者表示感谢!)

遗憾的是,最终还是没有顺利脱壳,
我实在是没有思路了,高手们请给些意见吧……

以下是我尝试脱壳的整个过程。

首先运行脚本,出现
    There are stolen code after API and the address of the call xxxxxxxx are saved in the file named SCafAPI.bin

继续运行脚本,出现
    Import table is fixed, you can dump the file now or later. check the address and size of IAT in log window

继续运行脚本,出现
    Stolen codes start, press OK button to add comments

选择OK,出现
    Commands are added

记下伪OEP的地址,IAT的地址和大小

用LoadPE full-dump。

使用ImportREC,取IAT,发现有一个函数未找到。
在未找到的函数上右键, Disassmble/Hex View,显示

00BA7290    push ebp
00BA7291    mov ebp,esp
00BA7293    mov edx,[ebp+C]
00BA7296    mov eax,[ebp+8]
00BA7299    cmp eax,[BB9458]    // DWORD value: FFFFFFFF
00BA729F    jnz short 00BA72AA
00BA72A1    mov eax,[edx*4+BB9458]    // DWORD value: FFFFFFFF
00BA72A8    jmp short 00BA72B1
00BA72AA    push edx
00BA72AB    push eax
00BA72AC    call 00B9577C    // = kernel32.dll/0198/GetProcAddress
00BA72B1    pop ebp
00BA72B2    retn 8

于是我双击这个函数,直接选择了kernel32.dll的GetProcAddress (不知道这一步我做得对不对?),然后保存IAT。

在所有有可能的内存区段下断点,从伪OEP处运行程序,一开始很正常,每在一区段停下,我就记录下该区段。
但在我记录了数个区段之后,程序停止运行。OD下方的状态栏显示“调试的程序无法处理异常”。

抱着尝试一下的心理,我把刚才记录下的几个区段dump下来,加到dump.exe,RebuildPE,然后用ImportREC导入刚才保存的IAT,fixdump。

然后是改Route Check(因为参考了一些相关帖子,所以我改的是0x58而不是0x34)

运行改好程序的程序,报错。用OD调,发现和记录区段出错时停在相同的地方,也是“调试的程序无法处理异常”。

于是我开始(在我极其有限的能力范围内)考虑解决的办法。

发现:

用OD直接加载原程序可以运行。
用OD加载原程序以后,运行脚本Aspr2.XX_IATfixer_v1.02.osc,在停在
    There are stolen code after API and the address of the call xxxxxxxx are saved in the file named SCafAPI.bin
这个地方以后,再按F9的话,就会出现“调试的程序无法处理异常” (等脚本停在伪OEP处再按F9也同样无法正常运行)

于是我不使用脚本Aspr2.XX_IATfixer_v1.02.osc,想办法断在脚本告诉我的伪OEP处。
程序停在伪OEP处以后,再按F9,发现是可以正常运行的。

这样一来,稍微给了我一点信心。

我就不使用脚本,自己停在伪OEP处,然后再内存区段上下断点,这次顺利取完了19个区段。

然后,同样是dump区段,增加section,RebuildPE,导入IAT(用的还是脚本帮我找到的IAT,没问题吧?),fixdump,改Route Check。

可惜,我千辛万苦改好的程序还是无法正常运行,用OD调试,OD的状态栏显示:

访问违规,正在写入[FFF....], 用shift+f7/f8/f9来忽略异常。

看来就凭我似乎是搞不定的了……

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼上的,能提供你的例子不?
2006-8-29 17:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
正如FLY大侠所说,脚本并不适我们这些初学者,所以我选择手工,最重要的是要弄懂壳的原理
2006-8-29 18:37
0
雪    币: 174
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上说得不错~

晚上继续研究,有展了。

换了台机器,发现伪OEP的地址变了,用到的内存段也变成了18个。

现在运行没有修改过Route Check的程序,会显示:

[Protection Error] Error:111

的对话框了。

正在继续研究,为什么修改过Route Check程序会非法退出了呢……
2006-8-29 21:07
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
5
最初由 knightprf 发布
楼上说得不错~

晚上继续研究,有展了。

换了台机器,发现伪OEP的地址变了,用到的内存段也变成了18个。
........


不同机器,伪oep的地址是不一样的。
无法调试与Route Check的修改无关,可能是CRC验证,也可能是Stolen code After API没有修复引起的。
根据你的调试结果,高度怀疑Stolen code After API引起的错。
2006-8-29 22:31
0
雪    币: 174
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我确实没有修复Stolen code After API……暂时还不会,汗

dump下来的 SCafAPI.bin 也不知道怎么用。

不过这样一来,总算有方向了,准备明天继续努力……
2006-8-29 22:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那换个Asprotect 2.XX SKE IAT Fixer v1.02s看看会不会发生同样的问题?
2006-8-30 17:54
0
雪    币: 174
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
v1.02s的脚本的话,我没看到哪有啊……楼上大哥能否给个链接?

其实我还是不太明白,用补区段的办法的话,被偷的代码应该也在保存下来的区段里面吧,为什么还是不能解决 Stolen code的问题呢?
2006-8-30 18:30
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
9
最初由 knightprf 发布
v1.02s的脚本的话,我没看到哪有啊……楼上大哥能否给个链接?

其实我还是不太明白,用补区段的办法的话,被偷的代码应该也在保存下来的区段里面吧,为什么还是不能解决 Stolen code的问题呢?


Stolen code After API的stolen code跟一般的不一样,它只是在API函数下一行偷几个字节而已,补区段并没有补上这个。
2006-8-30 19:49
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
正如楼主说的SCafAPI.bin生成这个文件不知道是做什么用的,那们老大说说,指点一下~!~!!
2006-9-19 21:35
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
11
最初由 邪秀才 发布
正如楼主说的SCafAPI.bin生成这个文件不知道是做什么用的,那们老大说说,指点一下~!~!!


里面保存的就是Stolen Code After API的地址。
2006-9-20 09:54
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
请cyto大哥指点一下,这个文件如何用,还有就是改Route Check之后,软件还是不能用,一直在一个循环里。
2006-9-21 08:37
0
游客
登录 | 注册 方可回帖
返回
//