链接:百度云盘 密码:23l0
我这里和大家声明一下 我这个是文件 是来自吾爱破解的creakme 160 导航链接 帖子里面有更厉害的思路
本帖是编号为51的creakme
好久没有怎么动过creakme 因为已经开学了 有很多课程需要学习 自己还想深入学习一下数据结构 还有密码学什么的课程 比较多 然后 一些毛概什么课也逃不掉。。。。。看见比较好的书 还想一口气读完 因为自己 好久没有练习了 所以发了这一篇文章
程序页面是这样的 然后我随便输入一下 然后点一下check 出现了这个窗口
我们拖进od 查找字符串 发现了
然后点进去
这个call是关键call 在经历这个call后 如果eax是1的话 那么我们就是注册成功了 如果 不是1的话 那么就失败了 我们进入这个call观察一下
这里面这算法其实很简单 但是写出注册机还是比较难的 具体算法 我在下面的od截图里面的注释里面
这是4-8位
这里可以看出 只要能够写出前四位的注册码 那么4-8位的注册码也是小菜一碟
可惜 真的可惜 我没有做出来这个注册机 我还是一个菜鸡 然后就参考了吾爱破解大神的注册机 代码 果然是巨佬(注册机用c+汇编内嵌 这个思想我还是有的 但是在写的时候还是出现了问题)
//所有的操作都相反而且次序也相反
#include "stdafx.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
int ans = 0;
_asm {
mov eax, 0x04071885
xor ecx, ecx
LOOP_ :
inc ecx
sub al, cl
xor ah, al
ror eax, 6
cmp eax, 0x36455544
jnz LOOP_
cmp ecx, 0x0DBD76F6
je LOOP_ //这个是情况要去掉 因为不是我们要的值
mov ans, ecx
}
printf("%0.4s", &ans);//限制输出字符个数 0-4
_asm {
xor ecx,ecx
mov eax, 0x4b00d127
loop1:
inc ecx
sub al,cl
xor ah,al
ror eax,6
cmp eax,0x43534952
jnz loop1
mov ans,ecx
}
printf("%0.4s", &ans);
getchar();
return 0;
}
感谢大神的思路!!!!!