Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > 手动脱壳之UPX V1.01的壳
【标  题】:手动脱壳之UPX V1.01的壳
【关键字】:V1,01,UPX,V1,01
【来  源】:网络

手动脱壳之UPX V1.01的壳

Your Ad Here 2、UPX V1.01的壳

目标程序: 用 UPX V1.01压缩过的 Notepad.exe

方法一、使用TRW2000来脱壳

★ 使用工具

TRW2000
FileInfo

★确定壳的种 类

拿到这软件后,可用工具FileInfo、gtw、TYP32等侦测文件类型的工具来看看是何种软件压缩的,在这我们以FileInfo 为例,把目标文件复制到FileInfo目录下,在资源管理器下双击FileInfo,再按回车,你将看到报告出来:告诉你这是UPX1.01压缩的软件。

★入口点(Entry Point)确定

◇利用跟踪分析来确定入口点

决大多数 PE 加壳程序在被加密的程序中加上一个或多个段。 所以看到一个跨段的 JMP 就有可能是了。 UPX 用了一次跨段的 JMP 。 就是你一步步跟踪时会看到代码有一突跃,一般再跟据领空文件名的变化,就能确定入口点了。运行TRW2000并装载目标程序,然后LOAD,你将中断在主程序入口处:此时合理按F10、F7及F12一直向前走,注意此时领 空会是:NOTUPX!UPX1+2xxx.

在你跟踪过程中会出现如下代码:

该程序的具体情况如下:

XXX:XXXXXXXX 60 PUSHAD ;所有的寄存器进栈
XXX:XXXXXXXX BE2EFD4200 MOV ESI, XXXXXXXX ;将下一条指令送入进行解压
XXX:XXXXXXXX 8DBED21FFDFF LEA EDI, [ESI+XXXXXXXX]

.......
....... <---- 按F10跟踪 ;-P

XXX:XXXXXXXX FF96A8C90400 CALL [ESI+XXXXXXXX]
XXX:XXXXXXXX 61 POPAD ;所有寄存器出栈
XXX:XXXXXXXX E9A44AFBFF JMP 00401000 ;跳到程序真正入口点(OEP),文件完全解压。

0137:40ddbe popa
0137:40ddf jmp 00401000 <-此行己完全解压结束,将要跳到记事本程序入口点执行程序(注意此处的一个大的突跃)。
........................
0137:401000 push ebp <-完全解压后的记事本程序第一行

因此 入口点(Entry Point) 找到为:401000

◇ 利用TRW2000特有命令PNEWSEC

TRW2000也是一款优秀的脱壳工具,有许多特有的命令对脱壳很有帮助,在此时用PNEWSEC命令也可方便找到入口点。
运行TRW2000并装载目标程序,然后LOAD,你将中断在主程序入口处,下令:PNEWSEC
等上一段时间,程序将中断在入口点处。

◇ 用冲击波2000

冲击波2000是D.boy开发的一个专门查找加壳软件入口点的工具,先运行冲击波2000,点击Track按钮:开始进行跟踪,然后运行要跟踪的程序, 找到入口点后,会在Enter point 显示。可是用这个记事本程序却无效。

★dump取内存中己脱壳的文件

不管你用何种方法找到入口点,首先要来到入口点一行:

0137:401000 push ebp

执行命令makepe 路径/文件名或pedump 路径/文件名

就这样脱壳成功 。

注:TRW2000的makepe重建的PE文件可跨平台运行,pedump抓取的文件却不可。

方法二、用SOFTICE来脱壳

★ 使用工具

TRW2000
FileInfo
ProcDump

★入口点(Entry Point)确定

◇利用跟踪分析来确定入口点

方法同TRW2000。

★du mp取内存中己脱壳的文件

0137:40ddf jmp 00401000

现在这一行,键入以下命令:
a eip (然后按回车)
jmp eip (然后按回车)
按下F5

这样将改变0137:40ddf行的代码. 你会注意到在键入"jmp eip"并按下回车后,40ddf的指令现在是一个jmp.这将有效地使程序"暂停"(有点类似TRW2000的suspend命令). 按下F5使你回到window。

运行ProcDump,在Task的列表中的第一个list上点击鼠标右键,然后选择"Refresh list". 在Task列表中找到notepad.exe,在它的上面点击鼠标右键. 然后,选中"Dump (Full)",给脱壳的程序起名存盘. 再在notepad.exe上点击鼠标右键,然后选中"Kill Task".

注:用此方法抓取的文件不可跨平台运行。

★修正刚dump取的文件的入口点

脱壳的notepad.exe程序入口是00401000.
再次使用ProcDump的PE Editor功能, 打开已脱壳的notepad.exe.

在"Header Infos"一项, 你会看见程序Entry Point(入口值)是0000DC70,这当然是错误的. 如果你试着不改动这个入口值而运行脱壳后的notepad.exe,程序将无法运行.

在 Procdump可看到ImageBase =00400000,我们上面跟踪找到的入口值的RVA是00401000,因为:虚拟地址(RVA)=偏移地址+基址(ImageBase ),因此

Entry Poin=00401000-00400000=1000,改变入口值为1000,点击"OK".

现在, 运行脱壳后的notepad.exe吧,它应该正常运行了。

用OLLYDBG给Win设置大师 脱壳:【上一篇】
手动脱壳的基本技巧(2):【下一篇】
【相关文章】
  • 脱掉QSound Qmp3D V1.0的vbox壳
  • 对PECompact.exe v1.34的手动脱壳(1)
  • 对PECompact.exe v1.34的手动脱壳(2)
  • 小甜饼 --- 有关UPXPR处理后的程序脱壳的另一种思路
  • How to unpack PE file packed by UPX 0.72
  • 部份软件的脱壳(Upx 0.72-1.0x,PC Guard,Telock,PECompact)
  • FlashFXP v1.4.1 build 823 的脱壳与破解(2)
  • FlashFXP v1.4.1 build 823 的脱壳与破解(3)
  • 幻影v1.5b破解应注意的地方
  • bjfnt v1.3脱壳手记
  • 【随机文章】
  • MS SQL 2005中的系統表(System Base Tables)
  • 342342
  • 嵌套注释
  • 目标的框框和两个打勾的?项,?下面的就OK
  • 不要轻易在头文件中打开namespace
  • 一个被入侵网站分析报告
  • Fedora Jargon Buster
  • 使用继承机制要注意的一些问题
  • 写了一个package,可以自动生成"表的增删改的存储过程代码",要的留个email
  • [小函数]:随机产生N位字符串
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.