zoukankan      html  css  js  c++  java
  • X86逆向12:内存补丁的制作

    本章我们将学习各种打补丁的方式,补丁在软件的破解过程中非常的重要,比如软件无法脱壳我们就只能通过打补丁的方式来破解程序,补丁原理就是当程序运行起来会被释放到内存并解码,然后补丁就通过地址或特征码定位到关键的位置,并替换关键的跳转。

    ------------------------------------------------------------
    本章难度:★☆☆☆☆☆☆☆☆☆
    课程课件:CM_12.zip
    ------------------------------------------------------------

    通过特征码打补丁

    1.首先OD附加,CM_12.vmp.exe 这个加过壳的程序,然后我们通过前期学过的内容找到关键跳转,并记录下它的特征码。

    根据上方我们可以提取出【0F 84 56 00 00 00 BB 06】这一段代码为特征码使用,我们需要将此处的代码替换成【90 90 90 90 90 90】。

    2.按下【Ctrl + B】然后搜索一下【0F 84 56 00 00 00 BB 06】看提取的特征码是否能够定位到关键位置。

    3.使用易语言编写一个小程序,然后写入以下代码,即可完成特征码的替换了。

    4.编译并生成可执行文件,我们运行程序让其完全加载,然后运行补丁程序,点击打补丁,如下程序会被完美破解。

    给DLL文件打补丁

    1.OD直接载入CM_12这个程序,该程序会调用check.dll 动态链接库来完成用户名密码的验证,所以我们需要给Dll打补丁。

    2.按下【Alt + E】观察发现这个check.dll 基地址是【00F90000】,我们双击这个模块跳转到模块中去。

    3.这个程序的破解非常的简单,我们需要将下图中的两个jnz 跳转取反就可以完成验证啦,这里我们记下他们两个的特征码。

    4.我们需要将上图中的【0F852F000000/ 0F850F000000】这两处全部替换成【90 90 90 90 90 90】,其补丁程序核心代码如下。

    5.运行源程序,并运行补丁,然后我们点击验证Dll ,程序被顺利的破解。

  • 相关阅读:
    Oracle SQL部分练习题
    Oracle 数据库和监听器开机自启动两种实现方法
    用Python连接SQLServer抓取分析数据、监控 (pymssql)
    Linux6.5 安装Python3.X(转载)
    SQLServer xp_instance_regread returned error 5,Access is denied(配置最小权限)
    [MySQL]存储过程
    [MySQL]触发器
    Linux 修改IP地址
    MySQL: InnoDB存储引擎
    mysql 重新添加主节点 (GTID)
  • 原文地址:https://www.cnblogs.com/LyShark/p/11185259.html
Copyright © 2011-2022 走看看