简单去除exe自校验方式
2024-08-29 17:54:07
简单去除exe自校验方式
一、 自校验定义:
这些程序会检查自己有没有被修改,如果发现被修改的话,便会离开或进行其它动作。基本的校检方法包括 checksum, 检查大小, 检查跳转代码,等等。
对于我们而言,如果脱壳后的程序运行起来跟脱壳前的程序运行起来不一样,基本上就可以断定为程序增加了自校验机制
二、 自校验示例:
三、如何去除自校验:
1. 先进行OD脱壳
注:脱壳完毕后停留在脱壳界面,不要把OD关闭
2. 再开启一个OD,打开脱壳后的程序
3. 两个程序同时下断点 bp CreateFileA然后分别点击运行(F9)
注:在win7环境下无法OD无法使用这个命令进行断点,只要Ctrl+G, 输入"kernel32.CreateFileA",我们就可以定位到kernel32的CreateFileA了
4. 两个OD都点击【Alt+F9】执行到用户代码
5. 两边同时单步(F8)往下走,查看两个程序是否有不一样的跳转(比如一个实现了一个没实现)
6. 接下来我们要做的就是把脱壳后的文件的跳转让它不实现就可以了
① 最简单的方法就是直接把脱壳后的程序那里的跳转给NOP掉
②观察跳转的上一行汇编代码cmpeax,dword prt ss:[ebp-8],这是汇编代码,意思是eax和dwort进行比较,如果不相等就跳转,相等就不跳转,不懂可以百度,把它改成cmp eax,eax就可以了
③或者把jnz改成je或jz也可以,具体的意思可以去百度一下
7. 然后保存退出OD
8. 再次执行脱壳后的文件,OK,成功了
最新文章
- java使用split切割字符串的时候,注意转义字符
- OPENGL学习之路(0)--安装
- 07 day 2
- PHP+redis实现超迷你全文检索
- 学习OpenCV——鼠标事件(画框)
- css清除浮动的处理方法
- python中列表,元组,字符串如何互相转换
- 五指cms筛选功能的实现:
- 线段树—Lazy_Tag
- Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册";Microsoft.Jet.OLEDB.4.0"; 提供程序";
- sqlserver 学习
- PolarDB · 新品介绍 · 深入了解阿里云新一代产品 PolarDB
- flask中jinjia2模板引擎详解4
- Spark集群部署(standLone)模式
- iUAP云运维平台v3.0全面支持基于K8s的微服务架构
- node note
- CodeForces 719A. Vitya in the Countryside
- python之路--网络通信协议
- MySQL数据库优化小建议
热门文章
- 无法找到 ContextLoaderListener 类
- how to update product listing price sale price and sale date using mobile App
- windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)
- 2017软工第十周个人PSP
- “Hello World!”团队第五周第一次会议
- mysql+linux 忘记密码
- 静默调用ShellContextMenu 实现QQ文件共享
- lintcode-391-数飞机
- 安装DHCP 服务器 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码
- Objective - C 之延展