创新路
我们一直在努力

学习 -脱壳 (手脱UPX壳)

使用工具:PEID 与OD

环境 : windows

方法:1.单步跟踪法

          2.ESP定律法

          3.二次内存镜像法

          4.一步直达法

首先我们对软件进行PEID  查看他的壳

image.png

我们可以看到他这款软件rmvbfix是一个upx 的壳

这时我们用OD打开这款软件

image.png

在使用单步跟踪法的时候 允许他的向下跳转禁止他的向上跳转  选择pushad 这是一个进栈口  鼠标左键点击选定他再按F8 挨个查看

在EB 10 时有一个向下跳转至8B1E这种我们不用处理他继续按F8

image.png

当我看到向上跳转的时候 我们选择它的下一行点击右键 选择断点 再选择F4

image.png

我们顺着往下走 这时我们遇到了 向上跳转的下一行也是跳转行时  我们选择跳过这一行处理  选择再下一行执行断点操作

image.png

POPad 出栈口  我们下面的跳转会进入到OEP 

image.png

image.png

现在我们进入到了OEP

接下来使用脱壳工具的插件OllyDump(两个方式)  Lord PE      ImportrREC

image.png

先记录下来他的入口地址7738c  再点击脱壳  另存为一个桌面文件  再用PEID 打开查看它的壳  发现upx的壳已经被脱去 

image.png

双击已经被脱去壳的软件  也能正常打开  单步跟踪法成功

image.png

方法二:ESP定律法(寄存器定律法)

image.png

ESP右键选择数据窗口内跟随

这时左下角会有命令行出现  我们在命令行 中输入DD +ESP 的值 或者hr +ESP 的值  我们这里是0012FFA4

image.png

image.png

对它进行硬件断点  选择word 和Dword 是一样的 点击运行 

就跳转到

image.png

在跳转后我们在调试里边将硬件断点删除

我们先F8一下 就跳到OEP了 接下来的操作就和上面一样了 选择工具进行脱壳

image.png

image.png

脱壳成功

三 ;二次内存映像法

ALt+M 进入内存映像  找到程序段的第一个.rsrc (资源文件)点击他的宿主右键 设置中断(F2) 再运行  

第二次Alt +M 进入内存映像找到UPX 0 对应地址 下段运行再下跳  又看到了POPad 再如上操作脱壳

image.png

image.png

四 ;一步直达法 (此方法有局限性 一般只可在UPX 和  uspeck)使用

在一开始 我们可以看到pushad 右键他 查找》命令   输入  popad (注意取消勾选整个块  默认是给你勾上的)直接到popad  转到OEP  脱壳   

image.png

image.png

全部脱壳成功  以上就是我本周初次学习脱壳的过程  

未经允许不得转载:天府数据港官方信息博客 » 学习 -脱壳 (手脱UPX壳)

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机