手工脱壳之 ASPack压缩壳【随机基址】【重定位表加密】
一、工具及壳介绍
使用工具: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压缩壳【随机基址】【重定位表加密】相关推荐
- 手工脱壳之AsPack压缩脱壳-随机基址
一.工具及壳介绍 二.脱壳 1.ESP定律脱壳 2.单步跟踪脱壳 3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查 ...
- PE结构基址重定位表
PE体系 PE结构&整体叙述 PE结构&导入表 PE结构&导出表 PE结构&基址重定位表 PE结构&绑定导入实现 PE结构&延迟加载导入表 重定位表定位 ...
- 手工脱壳之 FSG压缩壳【IAT反修复】
一.工具及壳介绍 使用工具:Ollydbg,PEID,ImportREC,LoadPE FSG壳 2.0: 二.脱壳 1.追踪 修复IAT表代码 入口处,没有pushad特征,无法使用ESP定律. 查 ...
- 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)
系列汇总 写一个PE的壳_Part 1:加载PE文件到内存 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc) 写一个PE的壳_Part 3:Section里实 ...
- 24. PE结构-PE详解之基址重定位详解
问题一:什么是基址重定位? 答:重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你霸占,你必须转移到别的地址,这就需要基址重定位.打个比方:例如你现在计划在某某地方建 ...
- PE文件-手工修改重定位表-WinHex-CFF Explorer
文章目录 1.CFF Explorer 2.计算添加后的重定位大小 3.作者答疑 1.CFF Explorer 如果需要修改exe,dll等的二进制代码,遇到添加绝对地址时,需要将绝对地址的位置添 ...
- 逆向破解程序脱壳篇-压缩壳
一.普及 What?壳 所谓"壳"就是专门压缩的工具. 这里的压缩并不是我们平时使用的RAR.ZIP这些工具的压缩,壳的压缩指的是针对exe.com.和dll等程序文件进行压缩,在 ...
- 35. 脱壳篇-UPX和WinUpack压缩壳的使用和脱法
UPX官网:http;//upx.sourceforge.net UPX加壳 通过cmd窗口执行,进入upx目录,执行: upx.exe fishc.exe 或者直接将exe拖至upx.exe上即可 ...
- 脱壳入门初级教学(第四课 常见压缩壳与加密壳)
转自:http://bestmk.cn/thread-491.htm 加壳软件按照其加壳目的和作用,可分为两类:一是压缩(Packers),二是保护(Protectors).压缩这类壳主要目的是减小程 ...
- 脱壳入门(三)之UPX压缩壳
脱壳入门(三)之UPX压缩壳 一.找OEP 查壳:UPX壳.链接器版本2.25(可能是Delphi程序).区段信息 根据ESP定律寻找OEP OEP定律原理:壳代码就像一个函数,进入时会开辟堆栈.保存 ...
最新文章
- Python查询MySQL进行远程采集图片实例
- 从Windows计算机上完全删除iTunes和其他Apple软件
- 此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程
- html验证用户名长度,JQuery表单字符串长度验证
- javascript 类的创建1
- 摄像机跟随以及注视旋转和角度变化
- 20180602_Eclipse配置Maven的本地仓库和阿里云镜像
- C语言题目:从键盘输入三个数,求三角形面积和周长
- ubuntu五笔输入法安装_打造最强Windows 10微软拼音输入法 + 600万词库下载
- 【CDAS峰会】吴喜之:数据科学的未来发展
- Linux:进程间的相互作用(模拟两个进程,一个存钱,另一个取钱),进程共享内存,进程的互斥,进程加锁,c++和c实现
- qt 实现MVC Api控制器开发 web api接口-连载【5】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)
- 千锋深圳Java培训分享:MySQL详细知识点
- NginxWebUI--强大的nginx可视化配置工具
- 欧拉图论定理 公式及证明
- EMNLP-21-Learning from Noisy Labels for Entity-Centric Information Extraction-noise label
- 计算机视觉——特征检测
- IGDATaiwan上Unity 优化讲座III
- 【antd】报错:ResizeObserver loop limit exceeded
- 教你如何实现一步完成线上线下一体化的购物体验
热门文章
- 触发onblur事件alert死循环问题
- 【BZOJ2037】Sue的小球(动态规划)
- 青年大学习自动名单核对程序
- 中国计算机学会推荐国际学术会议和期刊(A类)2019年
- 空间统计之点数据分析
- Unity3D中玻璃、金属材质制作
- python 3 5的值_杨桃Python基础教程第5章:Python数据类型(3)列表s[M:n]值,的,三,smn,取值...
- android wear 2.0 表盘开发,android wear手表开发如何获取所有的表盘(动态)以及切换表盘...
- 输入汉语星期几输出英文c语言程序,c输入1234567,输出英语星期日期
- c语言黑熊,BLACK BRUIN黑熊扭矩马达C5510000AA