-
-
[旧帖] [原创]脱壳UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 0.00雪花
-
发表于: 2010-8-27 10:33 1640
-
【文章标题】: 各种方法脱掉UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
【文章作者】: bbchylml
【作者邮箱】: 472006938@qq.com
【作者QQ号】: 472006938
【软件名称】: QQ牧夫2.78
【软件大小】: 384KB
【下载地址】: 自己搜索下载
【加壳方式】: UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
【使用工具】: PEiD、OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1.用PEiD侦壳
我们也可以用FI来进行侦壳
2.用OD载入
方法一:ESP定律手脱法
(1)F8单步,同时观察寄存器ESP值的变化;单步一次后,ESP的值变为0012FFA4,左键选中ESP的值,
右键数据窗口跟随。
(2)在数据窗口找到地址0012FFA4 ,选中要下断点的地址,右键下硬件访问断点到word,
(3)F9,运行程序。来到了lea eax, dword ptr [esp-80]处,
(4)继续F8单步,遇到一个jnz,我们F4跳过,马上到了OEP,如图:我的OEP005BFCDC
(5)下一步脱壳,我们用OD自带的插件脱(两种方式),当然我们可以用LordPE脱。
(6)脱完壳我们发现第一种正常打开,是Borland Delphi 6.0 - 7.0。但第二种方式脱就无法运行,
用ImportREC进行修复,记下新的OEP:1BFCDC,脱壳完毕
方法二:单步跟踪法
我们一直按F8进行单步跟踪,遇到往回的跳转就F4跳过。
来到这里00706BDD 61 POPAD
看到popad,就说明快到出口了。
005BFCDC 55 push ebp
哈哈很快就出现了,下一步脱壳我就不说了。
方法三:内存镜像法
ALT+M打开内存镜像,找到.rsrc
Memory map, 条目 37
地址=5D1E5000
大小=00020000 (131072.)
属主=comctl32 5D170000
区段=.rsrc
包含=资源
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,F9运行
ALT+M打开内存镜像,找到.text
Memory map, 条目 35
地址=5D171000
大小=00071000 (462848.)
属主=comctl32 5D170000
区段=.text
包含=代码,输入表,输出表
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,F9运行
跳到00706BE4 39C4 cmp esp, eax
然后单步,很快就到了OEP
--------------------------------------------------------------------------------
【经验总结】
以上三种方法希望大家能够学会,以后可以用在其他脱壳方面,我们一起努力一起进步!!!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于bbchylml, 转载请注明作者并保持文章的完整, 谢谢!
2010年08月27日 AM 10:31:24
【文章作者】: bbchylml
【作者邮箱】: 472006938@qq.com
【作者QQ号】: 472006938
【软件名称】: QQ牧夫2.78
【软件大小】: 384KB
【下载地址】: 自己搜索下载
【加壳方式】: UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
【使用工具】: PEiD、OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1.用PEiD侦壳
我们也可以用FI来进行侦壳
2.用OD载入
方法一:ESP定律手脱法
(1)F8单步,同时观察寄存器ESP值的变化;单步一次后,ESP的值变为0012FFA4,左键选中ESP的值,
右键数据窗口跟随。
(2)在数据窗口找到地址0012FFA4 ,选中要下断点的地址,右键下硬件访问断点到word,
(3)F9,运行程序。来到了lea eax, dword ptr [esp-80]处,
(4)继续F8单步,遇到一个jnz,我们F4跳过,马上到了OEP,如图:我的OEP005BFCDC
(5)下一步脱壳,我们用OD自带的插件脱(两种方式),当然我们可以用LordPE脱。
(6)脱完壳我们发现第一种正常打开,是Borland Delphi 6.0 - 7.0。但第二种方式脱就无法运行,
用ImportREC进行修复,记下新的OEP:1BFCDC,脱壳完毕
方法二:单步跟踪法
我们一直按F8进行单步跟踪,遇到往回的跳转就F4跳过。
来到这里00706BDD 61 POPAD
看到popad,就说明快到出口了。
005BFCDC 55 push ebp
哈哈很快就出现了,下一步脱壳我就不说了。
方法三:内存镜像法
ALT+M打开内存镜像,找到.rsrc
Memory map, 条目 37
地址=5D1E5000
大小=00020000 (131072.)
属主=comctl32 5D170000
区段=.rsrc
包含=资源
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,F9运行
ALT+M打开内存镜像,找到.text
Memory map, 条目 35
地址=5D171000
大小=00071000 (462848.)
属主=comctl32 5D170000
区段=.text
包含=代码,输入表,输出表
类型=Imag 01001002
访问=R
初始访问=RWE
F2下断,F9运行
跳到00706BE4 39C4 cmp esp, eax
然后单步,很快就到了OEP
--------------------------------------------------------------------------------
【经验总结】
以上三种方法希望大家能够学会,以后可以用在其他脱壳方面,我们一起努力一起进步!!!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于bbchylml, 转载请注明作者并保持文章的完整, 谢谢!
2010年08月27日 AM 10:31:24
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: