记录一个小程序的破解

最近有在吾爱破解的论坛上看见这样一个帖子。上面有个exe文件。一看到这,一下子就激起了我的兴趣。就想这破解了来试试。也来练练手。

没破解前:

在不知道密码的情况下,我们随便输入一个信息会显示搞错了啦。这样子我们就进不去了。

开始破解

1.将程序放入x64dbg

2.然后呢,根据按照流程来的话,应该是搜索字符串。

搜索完了字符串,想在里面找到"搞错了"的字符串。但是没有找到。但是还是找到了密码这样的敏感词汇。那么我就进入密码的那行。打上一行断点。然后运行程序。

很幸运,一次就断住了。

3.按住F8一步一步走

走到这个call 422D0A就会弹出弹窗告诉搞错了。那就说明这个call说不定有问题。

4.进入call 422D0A查看

这种程序一般都会有一个分支,一边是正确,一边是错误。进入这个call后,就按住G来查看流程图

和我的猜想一样,果然有个分支。那就在jne那里打一个断点。再来运行程序。看看他会走那一边。

发现他是走入了这个左边的call

5.进入call 00422EA6看看

当我进入了这个call 00422EA6的时候。发现他还是有个分支

那按照老样子,打一个断点。

发现他走向的右边。这两个分支的前面一个call都是一样的。都是call 00422CF9这个地址。主要就后面两个call。一个是00422E00,一个是422F12。那继续走一下看看。

当程序走到call 00422E00的时候。弹窗就出来了。那样我们进00422E00这个地址看看。

发现这个函数并没有分支。就一条路。那么这个就可能是弹出搞错了的弹窗。

那这样的话,我们是不是只要将前面的call 00422E00换成call 00422CF9就行了呢?我们进入00422CF9看看,是不是也是一条路径,没有分支

发现有好几条分支。其中动不动就让你返回00422E00这个错误的地址。我们要躲过这些陷阱。还得在这个call继续分析。

但是我想这个call 00422E00就是弹出一个弹窗的作用。这个正确的密码出来。还是弹出一个弹窗。其中处理显示的字符不同。其他都相同。那么找一下和call 00422E00一样的call。试一下看看行不行

6.找call

按住ctrl加F寻找

寻找call 00422E84。因为前面的push ebp和mov结果有点多

只有两条结果。到下一条地址去看看去

到了这个地址。

让我们把这个call 00422E00换成call 00429631看看行不行。会不会破解成功?

看来是修改成功了。

整个过程就如上了。

猜你喜欢

转载自blog.csdn.net/qq_59848320/article/details/122674834