Crackme025

Crackme025 的逆向分析 

1.程序观察

 

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

2.简单查壳

 

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

3.程序分析

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

 

有一个叫做 Form_Load 的程序块,我们可以看到,该程序块反编译的代码只有3行

 

很明显就可以看出来这就是控制窗体是否显示的关键代码。
 
使用 OD 载入程序,转到对应代码处

在调用第一个函数前,程序在栈中压入了两个参数

 第一个参数是0,第二个参数不知道是什么,但猜测是相应窗口的名字之类的东西。

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

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

 

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

函数的两个参数

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

 

相关文件在我的 Github

原文地址:https://www.cnblogs.com/white-album2/p/11676298.html