菜鸟尝试,老鸟们请指教 PeiD扫描壳
查壳
结果没显示,再留意一下EP区段竟然出现UPX1,看起来应该是UPX壳了。现在我们试试脱壳…… OD载入,出现分析提示,我们直接点否
首址
首行是:PUSHAD 现在我们大概可以知道是UPX壳了 试试常用脱UPX壳的方法 这里我用ESP定律:先记住寄存器里的ESP :0012FFC4 开始F8单步,直到ESP改变为止……这里一步就出现改变了。
右键寄存器里ESP 0012FFA4 选择数据窗口跟随 在数据窗口(左下角那个窗口)第一行数值右键
3
或直接在命令那输入dd 0012FFA4 应该一样的。之后按F9运行就到了这如图:
4
正常情况下是一直按 F8单步直到跳转,但前面查壳的时候我们就猜应该是给修改过的 UPX壳,应该不会那么顺利的。
果然,在单步到 JNZ这里就回跳了,怎么办呢……我只是尝试一下把 JNZ直接改成 JZ,没想到一过了这里到下面的一个 JMP大跳就像到 OEP (程序入口 )
5
0046C08F 55 PUSH EBP 那我们尝试一下脱壳,再查一下壳
6
发现是VC++写的 好像是脱壳成功的样子,(EP区段显示UPX0...)我们试试运行它,可以运行…… 因为每次运行都会弹出一个网页,烦死人,那我们看看能不能把它去掉。再用OD载入 竟然出现入口点警告: 模块 'unpack' 入口点超出代码范围 (在 PE 文件头中指定). 可能这是一个自解压或自修改文件. 请在设置断点时记住这一点! 估计是没脱干净……汗,从上面PeiD查看时发现EP区段:UPX0 …… 由于本人新手,只能直接忽略这里试试能不能接着完成想要的工作à去弹窗 我们回到OD 选确定 再出现分析数据 点 否 直接用超级字串参考查找ASCII 再按 Ctrl+F 查找 http (一般弹网页应该查它没错吧) 果然出现了 还是两个
7
一般懒人来说直接全部NOP掉就算了,我也试过,结果发现点一下软件上的“更新”程序会报错退出,那么为了爽点,只好一个个试了,反正只有2个
先NOP掉上面那个,没想到一试就可以了。教程到这应该算结束了,如果哪位大侠告诉我怎么把这个壳脱干净就好了,万分感谢。
我尝试用脱壳机来脱,能脱干净而且大小竟然只有912KB,我手脱的达到1.14MB差好远啊! |