zoukankan      html  css  js  c++  java
  • 去除程序重启自效验的三种方式(上)

    程序自效验又称暗桩。为了使程序破解更加的困难,程序会使用假效验迷惑破解者,之后进行重启自效验。自效验的数据可能使MD5、文件的大小等等。

    0x01 准备

    OD
    52PJ实验程序

    0x02 OD载入,去自效验

    1.用户输入的数据将会储存在文件中,程序重启之后将取出文件中的数据来进行效验。
    2.首先看看可执行文件的内容
    在这里插入图片描述
    在这里插入图片描述
    3.既然使用文件储存必然会有文件的操作,输入123456,点击重启验证1看一下会发生什么
    在这里插入图片描述
    4.可以看到程序在桌面创建了一个52PoJie.txt文件,打开发现里面储存的123456
    在这里插入图片描述在这里插入图片描述
    5.重启程序,看看程序会不会读取这个52PoJie.txt文件
    在这里插入图片描述
    6.发现使用readfile这个API读取了这个文件
    在这里插入图片描述
    7.OD载入,对这个API下断点,文件名就是关键字
    在这里插入图片描述
    8.运行程序,在端点处断下,右下角可以发现调用了readfileAPI,这个API调用的特点是,调用API结束后,文件的内容会储存在buffer的地址中,记下buffer字段的地址是0012F348
    在这里插入图片描述
    9.F8向下运行直到跳出这个函数
    在这里插入图片描述
    10.运行完readfile这个API之后查看buffer所指向的地址,发现为123456,这个就是文件中储存的数据
    在这里插入图片描述
    11.下图中绿色部分就是strcmp函数,用于比较文件中的数据和目标数据是否相等,也就是自效验的内容
    在这里插入图片描述
    12.这里我打了注释,主要就是需要将我们的数据和自效验的数据(JXU2MjExJXU2)相等
    在这里插入图片描述
    13.修改程序自效验数据在这里插入图片描述
    在这里插入图片描述
    14.最后保存二进制数据,重启程序看看
    在这里插入图片描述

  • 相关阅读:
    mvc view返回值
    ASP.NET MVC Core的ViewComponent【视图组件】
    原型模型
    RabbitMQ学习
    SVN知识点总结
    微信开发遇到的问题(单页应用静态资源缓存策略设置)
    arm nfs 启动
    gdb exe control
    gdb take care of c macros
    gdb --- Convenience Variables
  • 原文地址:https://www.cnblogs.com/csnd/p/11800552.html
Copyright © 2011-2022 走看看