简单去除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,成功了

最新文章

  1. java使用split切割字符串的时候,注意转义字符
  2. OPENGL学习之路(0)--安装
  3. 07 day 2
  4. PHP+redis实现超迷你全文检索
  5. 学习OpenCV——鼠标事件(画框)
  6. css清除浮动的处理方法
  7. python中列表,元组,字符串如何互相转换
  8. 五指cms筛选功能的实现:
  9. 线段树—Lazy_Tag
  10. Spark RDD概念学习系列之rdd持久化、广播、累加器(十八)
  11. asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 提供程序"
  12. sqlserver 学习
  13. PolarDB · 新品介绍 · 深入了解阿里云新一代产品 PolarDB
  14. flask中jinjia2模板引擎详解4
  15. Spark集群部署(standLone)模式
  16. iUAP云运维平台v3.0全面支持基于K8s的微服务架构
  17. node note
  18. CodeForces 719A. Vitya in the Countryside
  19. python之路--网络通信协议
  20. MySQL数据库优化小建议

热门文章

  1. 无法找到 ContextLoaderListener 类
  2. how to update product listing price sale price and sale date using mobile App
  3. windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)
  4. 2017软工第十周个人PSP
  5. “Hello World!”团队第五周第一次会议
  6. mysql+linux 忘记密码
  7. 静默调用ShellContextMenu 实现QQ文件共享
  8. lintcode-391-数飞机
  9. 安装DHCP 服务器 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码
  10. Objective - C 之延展