一、工具及壳介绍

使用工具:Ollydbg,PEID,ImportREC,LoadPE

ASPack壳:

二、脱壳

1.ESP定律

ASPack壳明显多了两个区段:

开头是pushad,可以采用ESP定律脱壳。

esp下硬件断点:

断下来的地方单步几步,来到OEP。

第一个call是VC特征初始化安全Cookie,确认是OEP。

查看模块基址,exe基址,用OllydbgDump Dump下进程内存。

使用ImportREC修复IAT

完成后双击运行。

2.逆向重定位加密

双击发现运行不起来,推测是随机基址的问题。PEID查看重定位表数据。

重定位表被破坏:

目标:找到加密重定位表的代码块,进行逆向分析。

操作:通过重定位表数据 顺藤摘瓜。

加壳的区段信息脱壳后的区段信息对比:

可见重定位表的映射内存RVA是一样的。

OD重新加载原程序。获取加载基址。

0x12F000+16000 == 0x1306000。

此处是重定位表,下硬件访问断点:

首先断下处,根据内存框的数据一直在变动,判定解压数据的地方:

跳过解压循环:

F9后,接着断下。

查看内存框内 重定位表内存数据 已解压完毕,但明显不是重定位表数据。

根据ECX,推测此行代码是 把修改完成后重定位表 覆盖进来。

查看 重定位表内存数据 正确。

继续F9,接下来就是修复exe重定位的代码块了:

步过发现此代码块还进行加密重定位表数据

所以推测 exe代码的重定位修复加密重定位表 的操作都在此代码块。

跟踪分析,解析代码的流程。

操作:NOP掉这条指令,再重复以上脱壳步骤。

查看重定位表数据:正常

双击运行发现还有错误。

显而易见,PE加载器并没有修复重定位,用LoadPE查看数据目录表信息。

重定位RVA并不是0x1600,可见APSack壳并不是采取自我代码修复重定位,

而是自己构造重定位表,让PE加载器修复自我,再另行修复exe的重定位。

修改回来即可。

成功运行:

个人总结:相比前面的ESP定律脱壳,感觉后面的重定位比较关键。

附件:

ASPack.exe

KID

转载于:https://www.cnblogs.com/KIDofot/p/8597000.html

手工脱壳之 ASPack压缩壳【随机基址】【重定位表加密】相关推荐

  1. 手工脱壳之AsPack压缩脱壳-随机基址

    一.工具及壳介绍 二.脱壳 1.ESP定律脱壳 2.单步跟踪脱壳 3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查 ...

  2. PE结构基址重定位表

    PE体系 PE结构&整体叙述 PE结构&导入表 PE结构&导出表 PE结构&基址重定位表 PE结构&绑定导入实现 PE结构&延迟加载导入表 重定位表定位 ...

  3. 手工脱壳之 FSG压缩壳【IAT反修复】

    一.工具及壳介绍 使用工具:Ollydbg,PEID,ImportREC,LoadPE FSG壳 2.0: 二.脱壳 1.追踪 修复IAT表代码 入口处,没有pushad特征,无法使用ESP定律. 查 ...

  4. 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)

    系列汇总 写一个PE的壳_Part 1:加载PE文件到内存 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc) 写一个PE的壳_Part 3:Section里实 ...

  5. 24. PE结构-PE详解之基址重定位详解

    问题一:什么是基址重定位? 答:重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你霸占,你必须转移到别的地址,这就需要基址重定位.打个比方:例如你现在计划在某某地方建 ...

  6. PE文件-手工修改重定位表-WinHex-CFF Explorer

    文章目录 1.CFF Explorer 2.计算添加后的重定位大小 3.作者答疑 1.CFF Explorer   如果需要修改exe,dll等的二进制代码,遇到添加绝对地址时,需要将绝对地址的位置添 ...

  7. 逆向破解程序脱壳篇-压缩壳

    一.普及 What?壳 所谓"壳"就是专门压缩的工具. 这里的压缩并不是我们平时使用的RAR.ZIP这些工具的压缩,壳的压缩指的是针对exe.com.和dll等程序文件进行压缩,在 ...

  8. 35. 脱壳篇-UPX和WinUpack压缩壳的使用和脱法

    UPX官网:http;//upx.sourceforge.net UPX加壳 通过cmd窗口执行,进入upx目录,执行: upx.exe fishc.exe 或者直接将exe拖至upx.exe上即可 ...

  9. 脱壳入门初级教学(第四课 常见压缩壳与加密壳)

    转自:http://bestmk.cn/thread-491.htm 加壳软件按照其加壳目的和作用,可分为两类:一是压缩(Packers),二是保护(Protectors).压缩这类壳主要目的是减小程 ...

  10. 脱壳入门(三)之UPX压缩壳

    脱壳入门(三)之UPX压缩壳 一.找OEP 查壳:UPX壳.链接器版本2.25(可能是Delphi程序).区段信息 根据ESP定律寻找OEP OEP定律原理:壳代码就像一个函数,进入时会开辟堆栈.保存 ...

最新文章

  1. Python查询MySQL进行远程采集图片实例
  2. 从Windows计算机上完全删除iTunes和其他Apple软件
  3. 此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程
  4. html验证用户名长度,JQuery表单字符串长度验证
  5. javascript 类的创建1
  6. 摄像机跟随以及注视旋转和角度变化
  7. 20180602_Eclipse配置Maven的本地仓库和阿里云镜像
  8. C语言题目:从键盘输入三个数,求三角形面积和周长
  9. ubuntu五笔输入法安装_打造最强Windows 10微软拼音输入法 + 600万词库下载
  10. 【CDAS峰会】吴喜之:数据科学的未来发展
  11. Linux:进程间的相互作用(模拟两个进程,一个存钱,另一个取钱),进程共享内存,进程的互斥,进程加锁,c++和c实现
  12. qt 实现MVC Api控制器开发 web api接口-连载【5】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)
  13. 千锋深圳Java培训分享:MySQL详细知识点
  14. NginxWebUI--强大的nginx可视化配置工具
  15. 欧拉图论定理 公式及证明
  16. EMNLP-21-Learning from Noisy Labels for Entity-Centric Information Extraction-noise label
  17. 计算机视觉——特征检测
  18. IGDATaiwan上Unity 优化讲座III
  19. 【antd】报错:ResizeObserver loop limit exceeded
  20. 教你如何实现一步完成线上线下一体化的购物体验

热门文章

  1. 触发onblur事件alert死循环问题
  2. 【BZOJ2037】Sue的小球(动态规划)
  3. 青年大学习自动名单核对程序
  4. 中国计算机学会推荐国际学术会议和期刊(A类)2019年
  5. 空间统计之点数据分析
  6. Unity3D中玻璃、金属材质制作
  7. python 3 5的值_杨桃Python基础教程第5章:Python数据类型(3)列表s[M:n]值,的,三,smn,取值...
  8. android wear 2.0 表盘开发,android wear手表开发如何获取所有的表盘(动态)以及切换表盘...
  9. 输入汉语星期几输出英文c语言程序,c输入1234567,输出英语星期日期
  10. c语言黑熊,BLACK BRUIN黑熊扭矩马达C5510000AA