周末,做个Crackme开发一下智力吧。。

该Crackme为小白级别的玩意儿,明码,非压缩壳,算法也简单。

高手请自动绕行。

P.S.凑字数。凑日志数产品。

本文提到的Crackme小程序在文章后面会提供下载。

一、PEiD查壳

PEiD查了下壳,加壳了哦。

peid查壳

peid查壳

是EXECryptor这个壳,MS有脱壳机可以解决。

这个壳MS不会压缩代码。

大D脱壳渣渣,直接OD载入。

二、OllyDbg载入

1.爆破

直接OD载入,发现Crackme程序有侦测是否是Debug程序在加载Crackme程序自身。

直接提示了。

程序检测到了OD程序在进行debug

程序检测到了OD程序在进行debug

遇到这个问题的,请自行搜索下载隐藏OD标题和隐藏调试器插件并开启。

隐藏标题和调试器后,加载程序,程序顺利载入,运行程序。

首先使用填写假码尝试,出现错误提示了。

注册码错误提示

注册码错误提示

使用插件搜索字符串。模式随便选了,本例中都能看到字符串。

得到一些结果,在结果中查找“Wrong serial - try again”。

搜索字符串得到结果

搜索字符串得到结果

查找到后,双击或Enter键跟随,查看代码。

如下代码
[text]00401255 75 16 JNZ SHORT crackme2.0040126D[/text]
就是关键跳转了,JNZ跳转到地址0040126D,在代码中可以看到,跳转到0040126D在以后,紧接着就会弹出注册码错误的提示。
爆破点就在这里,将JNZ SHORT crackme2.0040126D修改成JZ SHORT crackme2.0040126D,然后保存程序就可以了。

2.查找注册码

继续分析代码,同时查看堆栈窗口,发现堆栈窗口中有如下内容。

0012F7B8 0040628B crackme2.0040628B
0012F7BC 00000003
0012F7C0 0012F7EC
0012F7C4 00401255 crackme2.00401255
0012F7C8 004062B6 ASCII "CM2-96D9-734975E4"
0012F7CC 004060B1 ASCII "123456"
0012F7D0 004062B6 ASCII "CM2-96D9-734975E4"
0012F7D4 004060E1 ASCII "CM2-%lX-%lX"

明码比较的Crackme,将正确的注册码和假码压进堆栈,然后进行比较。
且可以发现
CM2-%lX-%lX
这个应该是注册码的格式。

3.分析算法

找到注册码之后就是分析一下算法。继续向上查看代码,一个跳转一个跳转的查看,在跳转语句的附近,往往就会有一下关键的语句。
查找到上面的一个跳转,跳转到一个地址,该地址前面的语句加载了输入的用户名。

4.算法分析小结:

基本很简单的说。。嘿嘿。。
循环读取用户名的每一位,转换成ASCII码,分别存储为A和B。
A做左移4位运算。
B做右移5位运算。
A = A xor B
A = A + 26
A = A xor C
C = C + A
A = 0x0C0DEF
A = A - C
A = A * A

5.注册机

既然知道了算法,那么就可以写注册机了。
直接贴代码。。。
C语言写的,写的超级渣渣。

因左移运算类似于乘法运算。2^x(x为移动位数),得到的就乘的数字了。
右移运算类似出发运算。2^x(x为移动位数),得到的就是除的数字了。
左移四位就是:A*(2^4)
右移五位就是:B/(2^5)

最后放一个图片以证注册机可以运行并计算正确的注册码。

注册机运行和Crackme截图

注册机运行和Crackme截图(点击有大图)

咳咳。。约定好的下载地址。

文件信息

[www.dadclab.com]muckis Crackme#2.zip

大小: 13406 字节

MD5: 65AF80F2DEB99F6192C6D9CAC37018F9

SHA1: FF64B8E87566A33CBE931D60EFFC5A165C40D4DE

CRC32: 66AB152D

妖妖舞网盘 | 华为网盘 | 金山快盘

版权声明
转载保留版权: 大D技研室 | 《muckis Crackme#2破解分析》
本文链接地址:https://www.dadclab.com/archives/1114.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , 标签