• 简单去除exe自校验方式


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


  • 相关阅读:
    leetcode笔记--7 Find the Difference
    数据挖掘:概念与技术--笔记1--度量数据的相似性与相异性
    leetcode笔记--6 Add Digits
    leetcode 笔记5 single number
    数据挖掘导论笔记2 数据集的类型
    **leetcode笔记--4 Sum of Two Integers
    vs2015-Cordova开发安卓应用环境搭建
    c#一些常用的方法集合
    c#根据ip获取城市地址
    asp.net mvc 无刷新加载
  • 原文地址:https://www.cnblogs.com/JianXu/p/5158411.html
Copyright © 2020-2023  润新知