<逆向学习第三天>手动脱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 - ...
随机推荐
- Django组件——forms组件
一.校验字段功能 通过注册用户这个实例来学习校验字段功能. 1.模型:models.py from django.db import models # Create your models here. ...
- SQL Server2008宝典 全书代码
-- ============================================= -- Create database template -- ==================== ...
- ArcMap没有工具条和菜单栏的解决方法
问题: 在安装ArcGIS10后,打开竟然没有菜单栏和工具栏,安装10.1又有,卸了重装10还是没有 解决办法: 在ArcMap的状态栏上双击,在弹出的自定义对话框中,在Toolbars工具栏选择Ma ...
- Python装饰器AOP 不定长参数 鸭子类型 重载(三)
1 可变长参数与关键字参数 *args代表任意长度可变参数 **kwargs代表关键字参数 用*args和**kwargs只是为了方便并没有强制使用它们. 缺省参数即是调用该函数时,缺省参数的值若未被 ...
- UIRecorder安装与使用
继vue单元测试,将进行vue的e2e测试学习. 学习点: 安装uirecorder 用工具(UI Recorder)录制测试脚本 测试脚本的回放 本文意在安装UI Recorder,并且利用该工具进 ...
- 原文:I don’t want to see another “using namespace xxx;” in a header file ever again
http://stackoverflow.com/questions/5849457/using-namespace-in-c-headers http://stackoverflow.com/que ...
- python25 python的三目运算符
其他语言的三目运算符大类似: 条件 ? 条件为真返回值: 条件为假返回值 python不一样: 条件为真的返回值 if 条件 else 条件为假的返回值 或者 ...
- Android(java)学习笔记29:泛型类的概述和使用
1. 泛型类的概述和使用 泛型类用法一: 下面我们首先定义泛型类: package cn.itcast_04; /* * 泛型类:把泛型定义在类上 */ public class ObjectTool ...
- [APIO/CTSC 2007]数据备份
嘟嘟嘟 这竟然是一道贪心题,然而我在不看题解之前一直以为是dp. 首先最优的配对一定是相邻两个建筑物配对,所以我们求出差分数组,就变成了在n - 1个数中选出不相邻的k个数,使这k个数的和最小. 贪心 ...
- caffe整体框架的学习的博客,这个博客山寨了一个caffe框架
http://www.cnblogs.com/neopenx/default.html?page=1 这个博主很牛逼,写的东西也很好,多学学,无论是对框架,还是对自己学习c++帮助都非常大