手脱PESpin壳【06.exe】
1.查壳


2.LoradPE工具检查

3.查找OEP
①未发现pushad

②使用ESP定律

③开启异常处理

④插件忽略异常

⑤异常断点






⑥确定反调试位置

| 次数 | 执行点 | 结果 |
| 第一次异常 | 0043864D |
成功命中 |
| 第二次异常 |
00438863 |
成功命中 |
| 第三次异常 |
0043AF42 |
成功命中 |
| 第四次异常 |
0043AF77 |
程序执行 |
| 第五次异常 |
0043AF92 |
程序执行 |
| 第六次异常 |
00438863 |
程序执行 |

⑦再次查找OEP


4.查看IAT表(43CFCD=IAT被加密之一)


5.脱壳信息查找
| 作用 | 地址 |
| 异常处理函数的入口点 | 43AF42 |
| OEP | 409486 |
| IAT被加密的一个地址 | 43CFCD |




6.编写脱壳脚本
设置断点地址:
| 地址 | 作用 | |
| 1 | 00409486 | OEP |
| 2 | 0043AF59 | 函数内反硬件断点的位置 |
| 3 | 438F9F | 返回正确函数地址的位置 |
| 4 | 43918C | 写入IAT的位置 |
脚本思路:
脚本实现:
MOV dwSEHAddr,0043AF59
MOV dwGetProcAddress,438F9F
MOV dwWriteIAT,43918C
MOV dwOEP,00409486
MOV dwEAX,0
//清除断点
BPHWCALL//硬件断点
BPMC//内存断点
//异常处理函数,清除硬件断点的位置
BPHWS dwSEHAddr,"x"
//下断点
BPHWS dwGetProcAddress,"x"//GetProcAddress后面,保存EAX
BPHWS dwWriteIAT,"x"//填充IAT后面,将保存的EAX写入到[EDI]
//在OEP处下硬件执行断点
BPHWS dwOEP,"x"//OEP,弹出信息框,成功到达OEP
LOOP0:
RUN
CMP eip,dwSEHAddr
JNZ LOOP0
FILL dwSEHAddr,1A,90
LOOP1:
RUN
CMP eip,dwGetProcAddress
JNZ JMP1
MOV dwEAX,eax
JMP LOOP1
JMP1:
CMP eip,dwWriteIAT
JNZ JMP2
MOV [edi],dwEAX
JMP LOOP1
JMP2:
CMP eip,dwOEP
JNZ LOOP1
MSG "成功到达OEP!!!"
MOV dwSEHAddr,0043AF59
MOV dwGetProcAddress,438F9F
MOV dwWriteIAT,43918C
MOV dwOEP,00409486
MOV dwEAX,0
//清除断点
BPHWCALL//硬件断点
BPMC//内存断点
//异常处理函数,清除硬件断点的位置
BPHWS dwSEHAddr,"x"
//下断点
BPHWS dwGetProcAddress,"x"//GetProcAddress后面,保存EAX
BPHWS dwWriteIAT,"x"//填充IAT后面,将保存的EAX写入到[EDI]
//在OEP处下硬件执行断点
BPHWS dwOEP,"x"//OEP,弹出信息框,成功到达OEP
LOOP0:
RUN
CMP eip,dwSEHAddr
JNZ LOOP0
FILL dwSEHAddr,1A,90
LOOP1:
RUN
CMP eip,dwGetProcAddress
JNZ JMP1
MOV dwEAX,eax
JMP LOOP1
JMP1:
CMP eip,dwWriteIAT
JNZ JMP2
MOV [edi],dwEAX
JMP LOOP1
JMP2:
CMP eip,dwOEP
JNZ LOOP1
MSG "成功到达OEP!!!"
脚本运行:

7.修复IAT



Process ID----->所要脱壳的程序进程ID,可在任务管理器中查看,因为ID是十进制,所以取消勾选Hex
Code Start----->代码起始于地址
Code End------->代码终止于地址
New IAT VA----->新的IAT偏移
x
Process ID----->所要脱壳的程序进程ID,可在任务管理器中查看,因为ID是十进制,所以取消勾选Hex
Code Start----->代码起始于地址
Code End------->代码终止于地址
New IAT VA----->新的IAT偏移







手脱PESpin壳【06.exe】的更多相关文章
- 简单脱壳教程笔记(2)---手脱UPX壳(1)
本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...
- 【个人笔记】ximo早期发的脱壳教程——手脱UPX壳
[个人笔记]ximo早期发的脱壳教程--手脱UPX壳 壳分为两种:压缩壳和加密壳,UPX是一种很简单的压缩壳. 手脱UPX壳: 工具:ExeinfoPE.OD 对象:rmvbfix 方法1:单 ...
- 填坑专记-手脱FSG壳
妈呀,脱FGS壳真的是坎坷颇多,多亏吾爱破解前辈们的帮忙.我一定要记录下来,省的以后再无法解决. 已经查看是FSG壳了.找到入口也容易了.重点就是脱壳并修复好它. 脱壳 OEP为: 使 ...
- 手脱NsPacK壳
1.查壳 使用PEiD未能检测到壳信息,这时,我们更换其他工具 从图中可以看到壳的信息为[NsPacK(3.x)[-]] 2.百度壳信息 北斗程序压缩(Nspack)是一款压缩壳.主要的选项是:压缩资 ...
- 深入底层逆向分析TDC‘s keygenme(手脱压缩壳)
系统 : Windows xp 程序 : TDC‘s keygenme 程序下载地址 :http://pan.baidu.com/s/1gdWyt6z 要求 : 脱壳 & 注册机编写 使用工具 ...
- 简单脱壳教程笔记(8)---手脱EZIP壳
本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EZIP壳 : ...
- 手脱UPX壳的方法
0X00 了解 upx UPX作为一款元老级PE加密壳,在以前的那个年代盛行,著名病毒[熊猫烧香]就是使用这款加密壳. 0X01 单步跟踪法 就是使用ollydbg加载程序后,按F8进行单 ...
- 手脱无名壳tslgame_rl
1.使用Detect It Easy查壳,该壳未显示出壳信息,至于为何有壳,我们使用IDA打开,查看其的导入表,其中没有太多函数使用: 2.我们使用x32dbg打开,运行至入口点,此处没有pushad ...
- 手脱Aspack变形壳1
1.载入PEID Aspack v2.12 -> www.aspack.com 2.载入OD,不管是看查壳信息还是看入口特征都跟我上一次发的一个手脱Aspack v2.12的帖子相同http:/ ...
随机推荐
- js获取元素本身相关值
Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置. getClientRects() 方法返回的一组矩形的集合, 即:是与该元素相关的CSS 边框集 ...
- APScheduler定时任务框架
1.简介 APScheduler是一个Python**定时任务框架**,提供了**基于日期**.**固定时间间隔**以及**crontab**类型的任务,并且可以**持久化任务**.基于这些功能,我们 ...
- 攻防世界 ics-06
ics-06 进入题目有点吓人,不过我都点了一下发现只有报表中心可以进去 进入报表中心在url中发现?id=1,一开始以为是sql注入结果啥也没探测到,这题脑洞有点,没有任何提示直接爆破id即可获得f ...
- GoLang数组切片
1. 数组1.1 如何定义数组同java数组一样,数组是一组内存连续且类型相同的数据组成 //不初始化初始值默认为0 var arr1 = [5]int{} var arr2 = [5]int{1,2 ...
- 老版本的Spring应用该如何应对CVE-2022-22965漏洞?
昨天,在发布了<Spring官宣承认网传大漏洞,并提供解决方案>之后.群里就有几个小伙伴问了这样的问题:我们的Spring版本比较老,该怎么办?这是一个好问题,所以DD今天单独拿出来说说. ...
- idea 启动微服务 设置 run dashboard
微服务如果很多,启动时如果在run窗口,会不是很方便,所以idea中配置了rundashboard,有时不自动出现时,需要进行配置: 配置操作如下: 我的idea版本2020.2 1.在父工程的.id ...
- 大数据学习之路之ambari配置(三)
添加了虚拟机内存空间 重装ambari
- java的命令行参数到底怎么用,请给截图和实际的例子
8.2 命令行参数示例(实验) public class Test { public static void main(String[] args){ if(args.length ...
- 在tomcat布置项目
1.将项目打成war包复制到tomcat-webapps 2.修改tomcat端口号 3.指定jdk 一.找到tomcat目录/bin 文件夹下的 catalina.bat文件 二.在文件中找到 ec ...
- Typora 设置图片自动上传
使用 PicGo-Core(command line) 下载 PicGo-Core 依次点击 文件 -> 偏好设置 -> 图像 来到下图所示界面: 点击①位置选择 PicGo-Gore(c ...