去除程序重启自效验的三种方式(上)

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_38924942/article/details/86499143

程序自效验又称暗桩。为了使程序破解更加的困难,程序会使用假效验迷惑破解者,之后进行重启自效验。自效验的数据可能使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.最后保存二进制数据,重启程序看看
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38924942/article/details/86499143