Crackme025的逆向分析


1.程序观察

20191015090300.png
20191015090311.png

程序刚打开时,会有一个弹窗,有5秒的倒计时。倒计时结束之后弹窗才可以关闭。我们可以看到弹窗的标题就是“Kill This Nag Screen”,意即让我们想办法去除这个弹窗。
弹窗时间结束之后,才是程序的本体。但只有一个输入框,看来这个程序应该只有一个正确的序列号。所以这个程序的主要目的应该是去除弹窗。

2.简单查壳

20191015091349.png

程序使用 VB5 编写,没有壳。

3.程序分析

先使用 VB Decompiler 打开程序。可以看到程序共有3个窗体
20191015092809.png

有一个叫做 Form_Load 的程序块,我们可以看到,该程序块反编译的代码只有3行
20191015093049.png
很明显就可以看出来这就是控制窗体是否显示的关键代码。

使用 OD 载入程序,转到对应代码处
20191015093512.png

在调用第一个函数前,程序在栈中压入了两个参数20191015093631.png
第一个参数是0,第二个参数不知道是什么,但猜测是相应窗口的名字之类的东西。

第二个函数的两个参数分别是-1和窗口的名字
20191015094059.png

当第一个参数为 -1 的时候,该窗口就会显示;当该参数为 0 的时候,该窗口就会消失。
只需要把第一个函数的参数改为 -1,第二个函数的参数改为 0即可去掉弹窗。

接下里该寻找正确的序列号
转到 check 按钮事件的代码处,向下看,可以看到一个比较函数
20191015104615.png

函数的两个参数
20191015104622.png
一个参数是字符串"55555",另一个字符串"123"是我们输入的。
所以 55555 一个就是正确的序列号。
20191015104945.png

相关文件在我的 Github


snow
4 声望0 粉丝

多么美好!


« 上一篇
Crackme024
下一篇 »
Crackme026