其他分享
首页 > 其他分享> > ximo脱壳4-手脱FSG壳

ximo脱壳4-手脱FSG壳

作者:互联网

基础脱壳教程4:手脱FSG壳

FSG 2.0 -> bart/xt

重点为修复

手动、查找IAT

一、单步跟踪法

单步跟踪就是和之前一样的套路,直接单步向下,遇到向上跳转直接用F4跳过就可以了,主要是在单步的时候注意一些跳转,可能跳转到的地方就是程序的OEP

也有可能跳转到OEP的指令会被略过,所以要仔细观察,比如这次的壳

 

 

 这里我们还是进行单步跟踪,当我们遇到一些比较特殊的跳转时,就要注意了,比如一些比较大幅度的JMP,或者是jmp+寄存器的值,这种也有可能是跳转到OEP,因为可能会讲偏移存放到寄存器里

 

 

 比如这里我们就遇到了三个跳转,第三个JMP就是跳转到OEP(说实话,我也不知道为啥,也没看出来他有很大程度的跳转,但是视频里是这么讲的),而且这一条语句如果是顺序向下的话,会跳过这条语句,所以我们要直接右键运行到这条语句,然后跟进去就可以了

 

 

 

 

 

这里就是OEP,然后我们进行脱壳

打开LordPE,选中我们调试的程序

 

 

 先右键选中修正镜像大小,然后完整转存

转存完之后打开ImpRec,选中我们调试的程序,将OEP的地址减去基址,填到OEP里

 

 

 

 然后点击自动查找IAT和获取输入表

 

 

 

点击无效函数,正常是没有,如果有右键把无效函数剪切掉就可以了,,然后点击转储到文件,存到我们用lordPE dump的文件里,就完成了之前的ASPACK壳和UPS壳都是到这里就结束了,但是FSG壳需要其他步骤

接下来我们进行剩余步骤

我们在OEP之后的程序里随便找到一个函数

 

 

 

比如这里这个函数的地址是0x425210,我们在命令行窗口输入d 425210

 

 

 在左下方的窗口里,出现一堆函数,我们翻到最上面和最下面,记录下两个地址

最上面

 

 

 最下面

 

 

 

 然后再ImpRec里找到

将开始的地址减去基址填到Rva里,整个的长度填到size里

 

 然后点击获取输入表,注意,这里size可以直接填1000,只不过要点一下无效函数,把空指针剪切到就可以了,比较方便

然后我们再点击转储就可以了

二、esp寻址法

普通的esp寻址法,和之前一样,找到一条只改变esp的指令就可以使用,这里介绍一种比较特殊的方法,只适合FSG壳,就是找到一条改变所有寄存器的指令

 

 比如这里,我们继续右键esp点击数据窗口跟随,

 

 不过这里我们要看堆栈

 

 我们右键最后一个压栈的地址,选择反汇编窗口中跟随

 

 右键第一句选择硬件执行,然后按shift+F9,就可以直接跳转到OEP

 

标签:ximo,FSG,OEP,手脱,右键,跳转,单步,我们
来源: https://www.cnblogs.com/polang19/p/15934031.html