某游戏配置器脱壳疑惑
【文章标题】: 某游戏配置器脱壳疑惑【文章作者】: 给你阳光
【作者邮箱】: [email protected]
【作者主页】: 略
【作者QQ号】: 195018614
【软件名称】: XX配置器
【软件大小】: 522KB
【下载地址】: http://mail.qq.com/cgi-bin/ftnExs_download?k=0f653062d2f7c29b45daaf691335074b0250095a50020d531e0651515318010105511d00060c0049070307030002015450075657353d352f5a095c4c47544764&t=exs_ftn_download&code=3e0b555d
【加壳方式】: ASPack,VMP,
【保护方式】: KEY文件注册
【编写语言】: Delphi
【使用工具】: PEiD,OD
【操作平台】: xp
【软件介绍】: 某游戏登陆器配置工具
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1.查壳.
PEiD查壳信息为ASPack 2.12 -> Alexey Solodovnikov,查看区段内有信息为vmp0~2,怀疑为双层壳.
2.脱壳.
OD载入后停留在
004CD001 >60 PUSHAD ; //OD载入停在这里\
004CD002 E8 03000000 CALL 配置器.004CD00A ; //可以使用ESP定律
004CD007- E9 EB045D45 JMP 45A9D4F7
004CD00C 55 PUSH EBP
004CD00D C3 RETN
004CD00E E8 01000000 CALL 配置器.004CD014
004CD013 EB 5D JMP SHORT 配置器.004CD072
可以使用ESP定律来脱掉ASPack外衣,但测试过几次后,发现ESP定律好像并不合适,于是用内存镜像法进行脱壳:
Alt+M 在
Memory map, 项目 24
地址=0046A000
大小=00007000 (28672.)
属主=配置器 00400000
区段=.rsrc
包含=资源
类型=映像 01001002
访问=R
初始访问=RWE
处下断,Shift+F9运行,接着Alt+M打开内存窗口,在
Memory map, 项目 19
地址=00401000
大小=0005A000 (368640.)
属主=配置器 00400000
区段=CODE
包含=代码
类型=映像 01001002
访问=R
初始访问=RWE
处下断,并Shift+F9运行,来到0045A774 55 PUSH EBP ; //OEP
到达oep,LordPE脱壳.
3.修复.(到这里我被卡住了)
用ImportREC修复,OEP处填入:0005A774,自动搜索IAT,提示发现有效信息,但无法获取输入信息,
跟据提示修改RVA和大小后,可以发现输入信息,但是里面的指针小生我是搞了良久没有搞定,寻求给位坛友帮助!
致谢!!
--------------------------------------------------------------------------------
【经验总结】
如果用ESP定律脱的话,不用修复可以直接运行;用后者方法脱后无法运行,这个我搞不明白为什么.
另外这个小工具以前也接触过,那时候没有这么麻烦,估计是作者升级后加入了一些我没有接触过的代码,一时找不出解决思
路,望路过的各位朋友能伸手相助!
诚挚谢意!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2009年08月13日 17:29:39
QQ网盘好像有下载限制吧,提供RaySource下载地址:http://www.rayfile.com/files/fc5b866e-886d-11de-9abf-0014221b798a/
[ 本帖最后由 给你阳光 于 2009-8-14 09:01 编辑 ] 哪位坛友能指点下? 有热心朋友还望指点迷津! 高人都躲起来啦 实在是没辙了,求教高人! 修复的时候用的级别是几? 或者你可以用修复插件 我估计是双壳 第二个是VMP的 修复时就不行的 我下程序看看是这个原因
的确是的不要用你的方法来脱 直接在OD里面脱可以运行
用ESP来脱 脱了ASP的壳后修复
代码如下
004B42C0 68 106405D4 push D4056410
004B42C5 E8 89FD0000 call 004C4053
004B42CA 68 1064C620 push 20C66410
004B42CF E8 E6F90000 call 004C3CBA
004B42D4 8CFF mov di, seg? ; 不明确的段位寄存器
004B42D6 5D pop ebp
004B42D7 66:45 inc bp
004B42D9 E4 4B in al, 4B
004B42DB B8 929BC40E mov eax, 0EC49B92
004B42E0 55 push ebp
004B42E1 8F ??? ; 未知命令
004B42E2 CB retf
004B42E3 2B51 CE sub edx, dword ptr
004B42E6 B3 C7 mov bl, 0C7
就在这里用OD插件来脱 是可以运行的
这个是第二层壳是VMP1.8的本人不才 没能脱了
你用的办法是不能脱了第二层壳的 你看到的到达的OEP其实不是真的 连在OD里都无法运行
随便问下 坛友们 论坛有群吗进去大家研究研究
[ 本帖最后由 d78063346 于 2009-9-30 14:51 编辑 ] 我要看看呀,真的谢谢 原帖由 d78063346 于 2009-9-30 14:36 发表 https://www.chinapyg.com/images/common/back.gif
我估计是双壳 第二个是VMP的 修复时就不行的 我下程序看看是这个原因
的确是的不要用你的方法来脱 直接在OD里面脱可以运行
用ESP来脱 脱了ASP的壳后修复
代码如下
004B42C0 68 106405D4 push ...
思路差不多,不过因为时间关系也就一直没有再研究.
感谢解疑答惑!
页:
[1]