-
-
脱一个没见过的壳遇到的问题..[求助]
-
发表于:
2006-8-20 14:06
3847
-
拿到一个软件.检测不出来用什么加的壳.
它多加了一个.Packer!的段上去
进OD调试先下代码然后下数据段的断点.只能断下代码段的修改 没有修改数据段直接跑飞了.是直接解压缩以后JMP OEP吧.
重新开始然后在代码段下硬件执行,断下来以后我用比较笨的方法试了一下,居然试出了vb5!.
00401290 56 42 35 21 VB5!
然后搜索PUSH 401290,没有搜索到.
可能是还没修改完.我试着找了几个点断.后来找到了应该是OEP的地方
0040122E .- FF25 B0104000 JMP DWORD PTR DS:[<&msvbvm60.PutMemEvent>; msvbvm60.PutMemEvent
00401234 .- FF25 B8104000 JMP DWORD PTR DS:[<&msvbvm60.SetMemEvent>; msvbvm60.SetMemEvent
0040123A $- FF25 A4104000 JMP DWORD PTR DS:[<&msvbvm60.ThunRTMain>>; msvbvm60.ThunRTMain
00401240 > $ 68 90124000 PUSH YB_Hunte.00401290
00401245 . E8 F0FFFFFF CALL <JMP.&msvbvm60.ThunRTMain>
我想他直接写完代码段就了OEP应该没有太大的问题就直接DUMP,打开ImprotREC输入OPE为1240.此时能找到msvbvm60.dll一个库 有几十个函数
然后LORDPE修复后重新载入
载入后发现卡在某个地方读空内存.而且原来的程序也是如此. 由于我很菜.可能不是很清楚 但是估计是SEH的问题.就补了一个区段.程序能够进行.但是到最后出现窗口后会报错 无法定位GETDC于USER32.DLL 而且通过PE查看工具看到的输入函数也是一片乱码
在调试的时候我发现这个程序里面好象还包含的有另外一个程序.放到内存1000000开始的地方.而且OD也会提示说该模块是有壳的.并且每次异常都是从这里抛出来
我有几个疑惑 希望高手们能指点迷津.
1这个模块和主程序是什么关系?
2输入函数的问题该如何解决?
[课程]FART 脱壳王!加量不加价!FART作者讲授!