160个CrackMe之003

简介: 160个CrackMe之003

AfKayAs.2


新知识点:软件未注册或软件的试用版经常会弹出一些提示窗口要求注册,这些窗口被称为nag窗口。

概述

NAG窗口:在软件试用期过后,很可能屏蔽软件的正式窗口或某些具有重要功能的重要功能的窗口,从而使软件不能正常使用。NAG窗口可通过修改软件的窗体资源或者修改窗体所在代码来屏蔽窗体或强行跳过,使NAG窗口不再运行


三个学习的点:1、爆破 2、算法 3、取出NAG窗口


暴力破解

爆破的过程和之前的题是一样的,OD搜索字符串,然后找到关键跳转,nop掉它,保存成新文件即可。

算法的分析

开头下断位置:

image.png

第一部分,strlen(<注册名>) * 0x15B38 + ASCII(<注册名首字母>)

image.png

第二部分 转为整数,进行浮点数加减法,这里经过浮点数计算之后将之前的结果+2

image.png

第三部分 对结果*3 然后 -2

image.png

第四部分

image.png

第五部分

image.png

`def key(name) :
    strlen = len(name)
    s = (strlen*0X15B38+ord(name[0])+2)*3-2+15
    print(s)
name = input("name")
key(name)

这样我们就成功搞定了注册码

去除NAG窗口

在我们双击打开程序后,会出现一个窗口,然后才会进入输入注册码的环节

image.png

在下载程序时,我们看到作者给出的信息是VB5,VB程序都有一个特点。

image.png

入口点处都是一个PUSH指令,然后一个CALL指令,看JMP 后面跟的MSVBVM50,应该是VB5.0编写的。(如果不是这种情况的话,那么该程序可能被加过壳)

image.png

PUSH将要压入堆栈的是004067D4,现在我们在数据窗口中定位到这个地址

image.png

现在就要用至4C了,也就是从当前定位的地址往后偏移4C,数据窗口CRTL+G,输入4067d4+4c

image.png

数据窗口继续跟踪:00406820处的DWORD值,00406868,内容如下:

image.png

看到两块类似的数据,每块50(十六进制)个字节的长度,每块数据的第24(十六进制)个字节处都有一个标志(第一个是01,第二个是00)。该标志指定了每块代码(也就是程序启动后要加载的窗体)出现的顺序,先加载00,也就是我们要去的NAG窗口,再加载01,是主窗口。所以这里我们将各两个标志的值颠倒一下,01改00,00改01,二进制修改,保存文件,运行测试,NAG窗口去除了。

希望大家可以有所收获!

相关文章
|
2月前
|
存储 API
逆向学习crackme160题-003-Cruehead-CrackMe-3的 write up
逆向学习crackme160题-003-Cruehead-CrackMe-3的 write up
23 1
|
2月前
|
存储
逆向学习crackme160题-015-Brad Soblesky.1 的 write up
逆向学习crackme160题-015-Brad Soblesky.1 的 write up
39 1
|
2月前
|
API C++
逆向学习crackme160题-006-ArturDents-CrackMe#2 的 write up
逆向学习crackme160题-006-ArturDents-CrackMe#2 的 write up
26 0
|
2月前
|
算法
逆向学习crackme160题-016-fty_crkme3 的 weite up
逆向学习crackme160题-016-fty_crkme3 的 weite up
16 0
|
2月前
|
算法
逆向学习crackme160题-012-ACG-crcme1 的 write up
逆向学习crackme160题-012-ACG-crcme1 的 write up
17 0
|
2月前
逆向学习crackme160题-005-Andrnalin.1 的 write up
逆向学习crackme160题-005-Andrnalin.1 的 write up
14 0
|
7月前
|
网络协议 Shell Linux
安卓逆向 -- IDA动态调试
安卓逆向 -- IDA动态调试
100 0
|
存储 算法 C++
IDA*
复习acwing算法提高课的内容,本篇为讲解算法:IDA*,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
115 0
IDA*
|
数据安全/隐私保护
160个CrackMe之001
160个CrackMe之001
157 1
160个CrackMe之001
|
数据安全/隐私保护 Windows
160个CrackMe之004
160个CrackMe之004
123 0
160个CrackMe之004