<逆向学习第三天>手动脱FSG壳,修复IAT。
其实对于简单的壳来说,脱壳常用的方法也无非是那几种,但是每种有每种的好处,具体使用那种方法视情况而定,我今天学习的这个壳很简单,但是重点在于修复IAT。
一、查壳:

FSG 2.0的壳。
二、脱壳:
上篇随笔所说的3种方法都可以使用,单步法,内存2次镜像,ESP,这里内存2次镜像我们发现没有.rsrc区段,所以我们可以直接从地址为00401000的地方下断点,运行。


脱壳过程这里就不再赘述,最后来到OEP进行脱壳。

看这个特征可以看得出,我们最近脱壳的程序的OEP特征全是这样,典型的VC++程序,我们需要记住这个特征,以及其他的编程软件的特征,在第一篇随笔有写过。
这里我将介绍第三种脱壳方式LordPE,以及修复软件ImportREC。
首先打开LordPE,选择进程,右键修复一下镜像大小,养成这个好习惯,再右键完整转存即可,就完成了脱壳。


然后我们用ImportREC来修复一下软件。
首先用REC选择一下进程,然后在OEP填写A860,可以看到我们OEP起始地址就是0040A860,所以我们只需要填写一下A86D,然后点击获取输入表他就可以自动获取。

看一下有没有无效函数,如果有无效函数删除指针后转存,没有的话直接转存修复。

我们再来查一下壳。

壳已经脱掉,VC++写的软件,我们发现脱完壳修复完竟然打不开。

好,本文的重点来了,手动修复IAT。
首先我们在OEP下随意找一个类似的CALL。

我们发现425210地址减去基址400000,25210在REC查找的函数里是存在的,一模一样,所以我们利用这个来修复IAT,

我们在输入命令 d 425210 在数据窗口跟随

向上寻找,一直找到没有指针或者地址全为0的地方。再向下寻找,找到指针结束,记录一下结束前的指针地址。


然后我们用ImportREC修复
选择进程——OEP A86D 自动查找IAT——获取输入表
接下来我们在RVA的位置输入开始的指针地址,00425000 减去 基址00400000 得到 25000,就在RVA的位置输入25000。
在Size位置输入范围,即结束指针地址减去开始指针地址,00425280 减去 00425000 得到280,就在Size位置输入280。然后获取输入表。

显示一下无效函数,然后剪切指针,转存到文件即可。
查一下壳,可以打开。

其实REC修复的时候Size可以直接填1000,然后剪切无效指针,都一样都一样。
<逆向学习第三天>手动脱FSG壳,修复IAT。的更多相关文章
- 手动脱FSG壳实战
		
作者:Fly2015 对于FSG壳.之前没有接触过是第一次接触.这次拿来脱壳的程序仍然是吾爱破解论坛破解培训的作业3的程序.对于这个壳折腾了一会儿,后来还是被搞定了. 1.查壳 首先对该程序(吾爱破解 ...
 - <逆向学习第二天>如何手动脱UPX、Aspack壳
		
UPS.AsPack压缩壳介绍: UPX .AsPack是一款先进的可执行程序文件压缩器.压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网络上传下载的时间和其它分布以及存储费用. ...
 - 手动脱WinUpack 壳实战
		
作者:Fly2015 吾爱破解培训第一课选修作业第6个练习演示样例程序.不得不反复那句话,没见过这样的壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些.特别是IAT表的修复问题上. 首先分别 ...
 - 手动脱RLPack壳实战
		
作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题. 这个壳没听说过.可是脱起来比較简单.依据ESP定律就可以直达光明,Dump出原来的程序. 老规矩.首先对须要脱壳的程序进行查壳处理. ...
 - 填坑专记-手脱FSG壳
		
妈呀,脱FGS壳真的是坎坷颇多,多亏吾爱破解前辈们的帮忙.我一定要记录下来,省的以后再无法解决. 已经查看是FSG壳了.找到入口也容易了.重点就是脱壳并修复好它. 脱壳 OEP为: 使 ...
 - 手动脱NsPacK壳实战
		
作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1略微要强一点,可是仅仅要掌握了脱壳的ESP定律,脱这个Nspack壳并不难.只是还是蛮有意思的. 1.使用查壳软件对加壳的程序进 ...
 - 手动脱UPX 壳实战
		
作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...
 - 手动脱ORiEN壳实战
		
作者:Fly2015 ORiEN这种壳之前没有接触,到底是压缩壳还是加密壳也不知道,只能试一试喽.需要脱壳的程序是吾爱破解脱壳练习第7期的题目. 首先对加壳程序进行查壳,这一步也是程序脱壳的必要的一步 ...
 - 手动脱UPX压缩壳
		
示例程序演示 样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的: 拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - ...
 
随机推荐
- win10 MySQL8.0 zip包安装及问题解决
			
1.在官网下载zip包 https://dev.mysql.com/downloads/mysql/ 2.将zip包解压到自己的工作目录中 3.配置环境变量 1)添加环境变量 MYSQL_HOME E ...
 - Maven学习篇一:eclipse构建运行maven web项目
			
1.new->other->maven project->next 2.选择创建简单项目(或者直接去掉勾,在后面选择maven-archetype-webapp) 3.设置坐标,名称 ...
 - 提交自己的包到 npm 中
			
npm npm全称Node Package Manager,是node.js的模块依赖管理工具.使用github管理NPM包的代码,并定期提交至NPM服务器:npm官网 提交自己开发的NPM包 创建p ...
 - 转:SQL Server附加数据库提示“版本为661,无法打开,支持655版本……”
			
在我们使用别人导出的数据库的时候,有时候我们会通过附加数据库的方法,把别人导出的数据库附加到我们的电脑中,这时,或许你会遇到这种问题,附加时,提示版本为XXX,无法打开,支持AAA版本. 这是怎么回事 ...
 - 【HTML5】HTML5 综合
			
HTML5教程: 视频教程:http://www.socss.cn/html5视频教程大集合/ DCloud关于HTML5:http://ask.dcloud.net.cn/docs 开发工具:HBu ...
 - 并发包java.util.concurrent.locks.Lock
			
** * * @描述: Lock比传统线程模型中的synchronized方式更加面向对象.与生活中的锁类似,锁本身也应该是一个对象,两个线程执行的代码片段要实现同步互排的效果 * 它们必须用同一个L ...
 - 服务器bios&raid管理
			
新服务器配置流程 https://github.com/alces-software/knowledgebase/wiki/server-dell-rseries-r630 dell DTK(sysc ...
 - 华为OJ-表示数字
			
要求:将一个字符中所有出现的数字前后加上符号"*",其他字符保持不变 #include<iostream> #include<string> using n ...
 - how to create folders in batches
			
you need be good at thinking when you see problem. Work experience:when you need to copy web chinese ...
 - 【图文详解】Zookeeper集群搭建(CentOs6.3)
			
Zookeeper简介: Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务的. A.zookeeper是为别的分布式程序服务的 B.Zookeeper本身就是一个分布式程 ...