脱RPoly主程序
【文章标题】: 脱RPoly主程序【文章作者】: iawen
【作者邮箱】: [email protected]
【作者QQ号】: 160193626
【软件名称】: RPoly
【下载地址】: 自己搜索下载
【保护方式】: 加壳
【编写语言】: VC++
【使用工具】: OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一款木马加壳程序,原文件名太长了,更改后居然提示出错,说文件名不可更改,烦了!
首先用PEid查壳,显示为:
Enigma Protector V1.1X-V1.3X -> Sukhov Vladimir & Serge N. Markin *
呵呵,没见过,不过没关系,拉出OD载入,先设置选项忽略所有异常,能运行。
重新设置忽略除“非法访问内存”之个的所有异常,并隐藏OD(因为试了一下,会侦测调试器)
载入后,程序停在:
004013CB R>55 push ebp
004013CC 8BEC mov ebp,esp
004013CE 83C4 F0 add esp,-10
004013D1 B8 00104000 mov eax,RPoly_ww.00401000
按Shift+F9运行,连续27次,程序运行了起来,重新来过,数次数,结果13次后就运行了起来,有时是17次,留意了一下堆栈,发现每当出现:
0012FE4C 0012FE54指向下一个 SEH 记录的指针
0012FE50 00BCBD85SE处理程序
0012FE54 0012FFE0指向下一个 SEH 记录的指针
0012FE58 00BCBEB1SE处理程序
0012FE5C 0012FF88
0012FE60 00BED12C
0012FE64 00BA0000ASCII "MZP"
ASCII "MZP"时,再按Shift+F9就会运行,这次吸取经验,不数了,就等这个!^@^……
出现后,Ctrl+G,跟随到:00BCBD85,F2下下断,Shift+F9运行:
00BCBD7E 3100 xor dword ptr ds:,eax
00BCBD80 ^ E9 1B4BFFFF jmp 00BC08A0
00BCBD85 8B4424 0C mov eax,dword ptr ss:
00BCBD89 8B4C24 04 mov ecx,dword ptr ss:
00BCBD8D C740 04 00000000 mov dword ptr ds:,0
00BCBD94 C740 08 00000000 mov dword ptr ds:,0
00BCBD9B C740 0C 00000000 mov dword ptr ds:,0
00BCBDA2 C740 10 00000000 mov dword ptr ds:,0
00BCBDA9 8160 14 F00FFFFF and dword ptr ds:,FFFF0FF0
00BCBDB0 8160 18 00DC0000 and dword ptr ds:,0DC00
00BCBDB7 C780 B8000000 C4BDB>mov dword ptr ds:,0BCBDC4
00BCBDC1 31C0 xor eax,eax
00BCBDC3 C3 retn //F4
取消断点后,在返回处“retn”,按F4运行到返回处,Alt+M打开内存镜像,找到代码段:
Memory map, 条目 22
地址=00401000
大小=00008000 (32768.)
属主=RPoly_ww 00400000
区段=
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,然后Shift+F9运行,程序直接停在OEP了:
004062F5 55 push ebp
004062F6 8BEC mov ebp,esp
004062F8 6A FF push -1
004062FA 68 48914000 push RPoly_ww.00409148
004062FF 68 2C6E4000 push RPoly_ww.00406E2C
00406304 64:A1 00000000 mov eax,dword ptr fs:
0040630A 50 push eax
0040630B 64:8925 00000000 mov dword ptr fs:,esp
00406312 83EC 58 sub esp,58
00406315 53 push ebx
00406316 56 push esi
00406317 57 push edi
00406318 8965 E8 mov dword ptr ss:,esp
0040631B FF15 CC904000 call dword ptr ds: ; kernel32.GetVersion
一看就知是VC了,呵呵,Dumped,然后修复,一切都顺顺溜溜,……没什么好补充的了!
加壳程序:
脱壳程序:
--------------------------------------------------------------------------------
【版权声明】: 本文原创于PYG技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年11月05日 22:21:41 呵呵 不错
学习了/:good
OEP ===62F5
[ 本帖最后由 baby520 于 2007-11-7 11:11 编辑 ] 谢谢,学学思路!
[ 本帖最后由 backboy 于 2007-11-15 15:32 编辑 ] 有点晕~~刚入门~以后慢慢看喽~ 为什么我这没这地址啊 ASCII "MZP"时,再按Shift+F9就会运行,这次吸取经验,不数了,就等这个!^@^……
出现后,Ctrl+G,跟随到:00BCBD85,F2下下断,Shift+F9运行:
页:
[1]