Re-脱壳技术 脱壳实战(3): 脱壳及修复IAT
题目:
链接: https://pan.baidu.com/s/1wQIwaCu99mYHX8gyqMfMMQ 提取码: qwcm
脱壳最好在windows XP环境中
使用工具:
- OD
- lordPE
- ImportREC
第一题:IT修复
1.查壳
UPX的壳,无难度
2.寻找OEP
用OD载入
先F8单步运行一步
发现ESP寄存器被改变,可以使用ESP定律
右键数据窗口跟随,|| 或者直接点HW break[ESP],此插件会自动帮忙下好硬件断点
数据窗口设置
从最开始的数据开始选,(别选太少就行)然后右键→断点→硬件访问→这里的三个随便选一个都可以,我一般选word
此时菜单栏→调试→硬件断点 已经有了我们下的断点
然后F9运行程序,来到这里,此时可以删除硬件断点了
然后F8单步往下
如果遇到向上图这样的,向上的代码,则在下一行代码(上图中的为地址0x004052E8)右键→断点→运行到选定位置(快捷键F4)
删除图中的灰色代码(db 00)可以选择右键→分析→从模块中删除分析
分析完的模样
然后继续F8,此时出现了一个jmp大跳转(说明离OEP很近了)我们继续F8向下。
此时我们来到了OEP
脱壳的话,可以右键→用OllyDump脱壳调试进程,点脱壳就好
而此时我们练习手动修复IAT
3.使用lordPE进行dump
不要关闭OD,打开lordPE
然后将进程的浮块滑到最底部(lordPE的进程,最新的进程在最底部)
然后点击要附加的程序
右键→修正镜像大小
然后继续右键→完整转存
4.使用Import REC进行IAT修复
OD还是不能关
先打开ImportREC附加没有脱壳的已经到达OEP的进程(新的进程在最上面)
我们要记住OD脱壳插件中显示的OEP地址
或者记住OEP前面的地址也行
importREC有几个参数
- OEP栏:这里填写OEP的相对偏移地址就行,上面401000-400000=1000(也就是OD脱壳插件显示的那个OEP)
- RVA:虚拟内存地址,这里填IAT的起始位置
- 大小:填写导入表大小,需要用IAT的末地址减去首地址。(大小可以写大,但绝不能写小)
相对地址则为实际地址减去基址(基址在OD中e窗口中查看)
如果自动搜索IAT的话,用如下步骤
获取导入表之后,点按钮【显示无效的】,如果有导入表函数,右键删除即可
无效函数删除之后,再点【修正转储】
点击后会弹出一个窗口选择一个PE文件,我们选择之前lordPEdump出来的文件
然后脱壳完成。
5.手动查找IAT并修复
- 在OD中 右键→查找→所有模块间的调用
然后双击一个程序本身的函数不要选系统函数
来到函数调用处
右键→跟随,进入函数(快捷键:回车)
来到这里
然后再右键→数据窗口中跟随→内存地址
为了便于查看, 可以更改一下数据窗口的显示方式
右键→长型→地址
或者在下面的窗口里输入d xxx
,其中xxx为jmp后的地址
IAT段是连续的,向上找到开头,向下找到结尾
可以知道
起始:0x00402000
结束:0x0040200C
RVA:0x00402000 - 0x00400000 = 0x00002000(相对偏移地址)
大小:0x0040200C - 0x00402000 = 0xC
填入
然后获取导入表,删除无效函数(此程序没有无效函数),【修正转储】,选择之前用lordPE软件dump出的文件,确定。
可以正常打开,成功。
另一种寻找函数的方法:
用ImportREC进行IAT自动搜索,获取导入表,在导入表中找到一个函数,记录此函数的相对偏移
然后0x00002004 + 0x0040000 = 0x00402004得到此函数的地址,然后在od底部的命令框中输入d xxx
,其中xxx为jmp后的地址,来达到找到IAT段的目的
第二题:脱壳练习2
步骤同第一题
Re-脱壳技术 脱壳实战(3): 脱壳及修复IAT相关推荐
- 2022CTF培训(一)脱壳技术Hook入门
附件下载链接 脱壳技术 寻找 OEP 根据跨段指令寻找 OEP 绝大多数加壳程序会在被加密的程序中加上一个或多个段(Section),在最后跳转至 OEP 时一般都是通过一个跨段跳转指令进行转移,所以 ...
- 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思?
什么是加壳和脱壳技术?加壳和脱壳技术是什么意思? 加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩.加密驱动程序),以达到缩小文件体积或加密 ...
- 逆向基础:软件手动脱壳技术入门
前言: 大家好,我是周杰伦 这里整合了一下之前自己学习软件手工脱壳的一些笔记和脱文,希望能给新学软件逆向和脱壳的童鞋们一点帮助. 1 一些概念 1.1 加壳 加壳的全称应该是可执行程序资源压缩,是保护 ...
- 脱壳--03.exe OD脚本脱壳
和02程序类似 但是我们换一种方式脱壳 就是利用OD脚本脱壳 我们通过02程序知道壳代码在获取真正的api地址以后 会对api地址做一些处理 然后在填写到iat表中 在我们调用api的时候 并没有直接 ...
- 脱壳小子-java anti-decompiler保护脱壳
前言 有一天,脚本小子想开发一个工具,但脚本小子又不想从头构思设计代码框架,就找找业界有没有好的工具能不能抄抄.终于在脚本小子快乐星球里,找到一个看起来还不错的工具.但存在一个问题,这个工具有代码保护 ...
- 重磅!《Apache Flink 十大技术难点实战》发布
简介:总结生产环境十大常见难点,10篇技术实战文章帮你完成故障识别.问题定位.性能优化等全链路过程,实现从基础概念的准确理解到上手实操的精准熟练,从容应对生产环境中的技术难题! <Apache ...
- 重磅福利!《Apache Flink 十大技术难点实战》发布,帮你从容应对生产环境中的技术难题...
精选30+云产品,助力企业轻松上云!>>> 简介: 总结生产环境十大常见难点,10篇技术实战文章帮你完成故障识别.问题定位.性能优化等全链路过程,实现从基础概念的准确理解到上手实操的 ...
- kali 安装volatility_电子取证技术之实战Volatility工具
原标题:电子取证技术之实战Volatility工具 本文转载自公众号:安全龙 作者:beswing Volatility 的安装 这次讲的是在linux下的取证,所以我安装的也是linux平台下的Vo ...
- “音”你而来,“视”而可见 腾讯云+社区音视频技术开发实战沙龙圆满结束...
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云技术沙龙团队发布于腾讯云云+社区 近年来,得益于移动互联网的普及和智能终端设备的广泛应用,短视频.直播.在线教学等音视频通信模式 ...
最新文章
- mysql中union all的order by问题
- Bitwise Exclusive-OR Sequence 异或,dfs,菊花图(2021.11.沈阳)
- 2019.03.29 NOIP训练 友好国度(点分治+容斥)
- c# 读取 txt 文件中数据(int)
- 《北大学科》第一季:数学篇
- 【转】FluentAPI详细用法
- leetcode 198 动态规划
- utm坐标和经纬度转换_【技术】经纬度WGS84地理坐标系转换成CGCS2000坐标系步骤...
- 物联网建设,智慧城市道路智能交通解决方案
- MAC地址-集线器-ARP
- js如何区分单击与双击(如何避免双击的时候触发单击事件)
- 中国船舶制造行业市场运行动态及发展前景分析报告2022-2028年
- 职业体育与同性恋:假宽容与真偏见
- 两大Mac内存清理方法,嫌麻烦的就直接使用第二种
- jadx-gui-1.4.4 反编译工具使用教程
- bcdedit用法详解
- 扫地机器人水箱背景_一种扫地机器人用水箱及扫地机器人的制作方法
- Linux中vmstat命令详解
- Charles的功能介绍与使用教程,一学就会,不信就来试试?
- 2.4 javascript2