新手巧用ESP定律脱Xtreme-Protector v1.05壳
本帖最后由 yiyi110 于 2010-11-27 09:19 编辑昨天到手一软件,peid一查壳,壳为Xtreme-Protector v1.05,哈,以前没见过这样的壳,试试手吧
俺用的小生工具包,首先打开OD,载入程序,汗,自动关闭。。。。
不怕,继续,打开小生专用版---小生我怕怕,载入程序,嘿嘿,不敢自动关闭了吧
00481993 >E8 21000000 call 请脱壳我.004819B9(F7步入,别问我为啥F7,你按下F8就知道了)
00481998 53 push ebx
00481999 61 popad
0048199A 66:65:6E outs dx,byte ptr es:
0048199D 67:696E 65 204C>imul ebp,dword ptr ss:,63694C20
004819A5 65:6E outs dx,byte ptr es:
004819A7 73 6F jnb short 请脱壳我.00481A18
004819A9 72 20 jb short 请脱壳我.004819CB
004819AB 44 inc esp
004819AC 65:6D ins dword ptr es:,dx
004819AE 6F outs dx,dword ptr es:
004819AF 2076 31 and byte ptr ds:,dh
004819B2 2E:382E cmp byte ptr cs:,ch
004819B5 302E xor byte ptr ds:,ch
004819B7 3000 xor byte ptr ds:,al
004819B9 8D6424 04 lea esp,dword ptr ss: (程序走到这里,看了下ESp数值,变动了,哈,试试ESP定律看看)
004819BD 60 pushad
进入时代码如上代码,后面跟有步骤
俺给新手讲讲ESP定律步骤,老手别嫌我烦:查看右边寄存器里面的ESP---点右键--数据窗口中跟随---左下窗口--下断点--硬件访问---word
下了断点,俺按F9执行,一直按一直按一直按,注意代码,走到这里
0040FC92 6A 58 push 58 (是不是好像很熟悉,OEP?咱试试看,脱壳)
0040FC94 68 B8614100 push 请脱壳我.004161B8
0040FC99 E8 D6030000 call 请脱壳我.00410074
0040FC9E 33DB xor ebx,ebx
0040FCA0 895D E4 mov dword ptr ss:,ebx
0040FCA3 895D FC mov dword ptr ss:,ebx
0040FCA6 8D45 98 lea eax,dword ptr ss:
0040FCA9 50 push eax
0040FCAA FF15 38204100 call dword ptr ds: ; kernel32.GetStartupInfoA
0040FCB0 C745 FC FEFFFFF>mov dword ptr ss:,-2
0040FCB7 C745 FC 0100000>mov dword ptr ss:,1
0040FCBE 64:A1 18000000mov eax,dword ptr fs:
0040FCC4 8B70 04 mov esi,dword ptr ds:
0040FCC7 BF 78B94100 mov edi,请脱壳我.0041B978
0040FCCC 6A 00 push 0
0040FCCE 56 push esi
0040FCCF 57 push edi
右键使用插件脱壳,入口点地址修正为FC92--点脱壳,运行一下,运行不了,查下壳Microsoft Visual C++ v7.0,恩,已经没壳了,试着修复下先
进入OD,
0040FC92 6A 58 push 58
0040FC94 68 B8614100 push 请脱壳我.004161B8
0040FC99 E8 D6030000 call 请脱壳我.00410074 (F8走到这里,右键数据窗口跟随--选择)
注意左下框里面的数据,调整为HEX数据,查看ASCII值,拉动滚动条,一直拉,拉到HEX数据全部是00的地方,和有数据的交接处
俺这个软件直接拉到地址401000了,呵呵,看不到00 00 00
现在开始修复了,打开IMportREc,附加到一个活动进程里面选择你要脱壳的程序,输入刚才的OEP:FC92,点自动查找IAT,呵呵俺顺手点的
看是不是和我找到的一样,如果是俺就不用输入了不是(懒人。。),汗,不对,手动输入RVA数值:1000,大小28000,再点获取输入表
点--显示无效函数---然后剪切指针-----修复转存文件---找到刚才脱壳出来的程序---搞定
打开程序----哈哈,运行起来了--查下壳---壳没有了
新手第一次发帖,各位大大多多指导,谢谢
以下内容回复可见(更绝密的东西,嘿嘿)
**************************
俺上传个文件吧 牛人,膜拜啊 跟着26后面,继续膜拜。。 学习一下! 不错哦 建议楼主以后贴代码记得用code那个标签,这样代码很乱看不清楚。 回复 6# yjd333
OK,第一次发脱壳贴,呵呵 能脱这壳的人不多 附件是脱壳的还是没脱的?
我看到的这个是什么?