题目:
链接: https://pan.baidu.com/s/1wQIwaCu99mYHX8gyqMfMMQ 提取码: qwcm

脱壳最好在windows XP环境中

使用工具:

  1. OD
  2. lordPE
  3. 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有几个参数

  1. OEP栏:这里填写OEP的相对偏移地址就行,上面401000-400000=1000(也就是OD脱壳插件显示的那个OEP)
  2. RVA:虚拟内存地址,这里填IAT的起始位置
  3. 大小:填写导入表大小,需要用IAT的末地址减去首地址。(大小可以写大,但绝不能写小)
    相对地址则为实际地址减去基址(基址在OD中e窗口中查看)

如果自动搜索IAT的话,用如下步骤

获取导入表之后,点按钮【显示无效的】,如果有导入表函数,右键删除即可
无效函数删除之后,再点【修正转储】
点击后会弹出一个窗口选择一个PE文件,我们选择之前lordPEdump出来的文件
然后脱壳完成。

5.手动查找IAT并修复

  1. 在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相关推荐

  1. 2022CTF培训(一)脱壳技术Hook入门

    附件下载链接 脱壳技术 寻找 OEP 根据跨段指令寻找 OEP 绝大多数加壳程序会在被加密的程序中加上一个或多个段(Section),在最后跳转至 OEP 时一般都是通过一个跨段跳转指令进行转移,所以 ...

  2. 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思?

    什么是加壳和脱壳技术?加壳和脱壳技术是什么意思? 加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩.加密驱动程序),以达到缩小文件体积或加密 ...

  3. 逆向基础:软件手动脱壳技术入门

    前言: 大家好,我是周杰伦 这里整合了一下之前自己学习软件手工脱壳的一些笔记和脱文,希望能给新学软件逆向和脱壳的童鞋们一点帮助. 1 一些概念 1.1 加壳 加壳的全称应该是可执行程序资源压缩,是保护 ...

  4. 脱壳--03.exe OD脚本脱壳

    和02程序类似 但是我们换一种方式脱壳 就是利用OD脚本脱壳 我们通过02程序知道壳代码在获取真正的api地址以后 会对api地址做一些处理 然后在填写到iat表中 在我们调用api的时候 并没有直接 ...

  5. 脱壳小子-java anti-decompiler保护脱壳

    前言 有一天,脚本小子想开发一个工具,但脚本小子又不想从头构思设计代码框架,就找找业界有没有好的工具能不能抄抄.终于在脚本小子快乐星球里,找到一个看起来还不错的工具.但存在一个问题,这个工具有代码保护 ...

  6. 重磅!《Apache Flink 十大技术难点实战》发布

    简介:总结生产环境十大常见难点,10篇技术实战文章帮你完成故障识别.问题定位.性能优化等全链路过程,实现从基础概念的准确理解到上手实操的精准熟练,从容应对生产环境中的技术难题! <Apache ...

  7. 重磅福利!《Apache Flink 十大技术难点实战》发布,帮你从容应对生产环境中的技术难题...

    精选30+云产品,助力企业轻松上云!>>> 简介: 总结生产环境十大常见难点,10篇技术实战文章帮你完成故障识别.问题定位.性能优化等全链路过程,实现从基础概念的准确理解到上手实操的 ...

  8. kali 安装volatility_电子取证技术之实战Volatility工具

    原标题:电子取证技术之实战Volatility工具 本文转载自公众号:安全龙 作者:beswing Volatility 的安装 这次讲的是在linux下的取证,所以我安装的也是linux平台下的Vo ...

  9. “音”你而来,“视”而可见 腾讯云+社区音视频技术开发实战沙龙圆满结束...

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云技术沙龙团队发布于腾讯云云+社区 近年来,得益于移动互联网的普及和智能终端设备的广泛应用,短视频.直播.在线教学等音视频通信模式 ...

最新文章

  1. mysql中union all的order by问题
  2. Bitwise Exclusive-OR Sequence 异或,dfs,菊花图(2021.11.沈阳)
  3. 2019.03.29 NOIP训练 友好国度(点分治+容斥)
  4. c# 读取 txt 文件中数据(int)
  5. 《北大学科》第一季:数学篇
  6. 【转】FluentAPI详细用法
  7. leetcode 198 动态规划
  8. utm坐标和经纬度转换_【技术】经纬度WGS84地理坐标系转换成CGCS2000坐标系步骤...
  9. 物联网建设,智慧城市道路智能交通解决方案
  10. MAC地址-集线器-ARP
  11. js如何区分单击与双击(如何避免双击的时候触发单击事件)
  12. 中国船舶制造行业市场运行动态及发展前景分析报告2022-2028年
  13. 职业体育与同性恋:假宽容与真偏见
  14. 两大Mac内存清理方法,嫌麻烦的就直接使用第二种
  15. jadx-gui-1.4.4 反编译工具使用教程
  16. bcdedit用法详解
  17. 扫地机器人水箱背景_一种扫地机器人用水箱及扫地机器人的制作方法
  18. Linux中vmstat命令详解
  19. Charles的功能介绍与使用教程,一学就会,不信就来试试?
  20. 2.4 javascript2

热门文章

  1. 【Windows11来了】立刻安装Windows11预览版抢先体验(虚拟机 | 含详细安装步骤)
  2. 计算机丢失logmanager dll,修复logmanager.dll
  3. c语言-学生成绩查找系统
  4. 应用回归分析第五版电子书_应用回归分析(第5版)
  5. 如何更换光猫HS8145C含破解超管
  6. uni-app封装请求方法与api封装调用
  7. linux rootfs 编译,rootfs文件系统制作
  8. 【技巧】Edge浏览器更换chrome主题、选项卡悬浮预览(开启实验功能)
  9. 动态规划之背包问题——01背包
  10. 【MYSQL】大量数据入库方案