C/C++知识点之脱PESpin0.3x壳总结
小标 2019-06-10 来源 : 阅读 1020 评论 0

摘要:本文主要向大家介绍了C/C++知识点之脱PESpin0.3x壳总结,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之脱PESpin0.3x壳总结,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之脱PESpin0.3x壳总结

总结 
1.有反调试去掉反调试 dump seh 回调函数出来用ida查看

2.找OEP  一般有esp定律,下断点法(如下断到BP GetVersion 运行到返回 再f7就返回上一层 就是OEP 在系统领空就不是)等
3.下IAT写入断点 (有可能要几次才到真正的写入IAT指令) 。
4.在写入断点处下软件断点(防止跑飞)
5.下断成功上下 看下指令 大部都是花指令 像下图在上一条指令要nop一条指令才能看出

6.找到后只能f7跟一圈 去掉花指令(ctrl 加方向键可以查看上下指令 会过掉花指令) 盯着寄存器  堆栈 它很定会匹配api 就会有api名称出现(有的可能不出现)这里可以直接自动单步(调试选项   打开run 跟踪 设置条件 然后在查看选项中 查看run跟踪)就能够快速定位到相应的位置)

进去就发现感觉都有可能 那就下断再人肉跟一圈

7.如果找到了api  盯着地址 盯着地址去向 (一般在eax里 因为一般是getxxxaddr())
8.找到三个关键点(找到OEP ,找到真正的api地址(一般是先获得相对虚拟地址 ,然后加上基地址)的指令,找到写入api地址的指令 )就可以写脚本了 。
下图是计算api的地址  

下图是代表匹配到了api



9。如果要修复IAT 就先修改再dump

脱壳脚本


MOV vOEP,00409486  //OPE地址
MOV vGetAPIAddr,438F9F //获取APT地址
MOV vWriteIAIAddr,43918c //写入IAT 地址
MOV vHardwarePointAddr,0043AF51 //清除硬件断点的地方
MOV vAPIaddr,0
BPHWC //清除所有硬件断点
BC //清除所有软件断点
BPHWS vHardwarePointAddr, "x"
BPHWS vOEP, "x"
BPHWS vGetAPIAddr,"x"
BPHWS vWriteIAIAddr,"x"
LOOP_1:
RUN
CMP eip,vHardwarePointAddr
JNZ SIGN_1
fill vHardwarePointAddr,22,90 //nop十个字节
SIGN_1:
CMP eip,vGetAPIAddr
JNZ SIGN_2
MOV vAPTaddr,eax
SIGN_2:
CMP eip,vWriteIAIAddr
JNZ SIGN_3
mov [edi],vAPTaddr
SIGN_3:
CMP eip,vOEP
JE EXIT_1
JMP LOOP_1
EXIT_1:
MSG "修复完毕"


两个问题,第一,在分析程序时不能修改了清除硬件断点代码然后保存程序,这样再调试程序,程序就会破坏,因为清除硬件断点的代码是动态解密出来的,修改了那段代码再运行壳执行解密时就会出错。第二,壳代码或是oep下断,在调试脱壳时尽可能使用硬件执行断点,这样防止动态解密把断点冲掉。

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程