老规矩,先熟悉程序。
只有一个验证的功能,错误提示You Get 。。。 关闭没有nag窗口
第一种,暴力破解
查找字符串,很少,直接双击进入
可以看到错误提示的跳转来自:
表示这应该是个重要的跳转,找到位置:
下面就是You Get It,很明显,就是这个跳转了,直接nop导出就行。
第二种 注册机
接上面,刚刚跳转的位置,向上面找找,看看整个函数,在这个位置能看到string,StrCat之类的注释,尝试这里下断,然后查看功能。发现这里有一些对密码的堆栈,和AKA-487704,唔。。。应该已经完成加密,这就是注册码了(第一个和第三个箭头都是我自己注释的)。注册码应该是“AKA-”+“加密的注册码”
说明加密的方式还在上面,这里是一个对应的结果。继续向上
看到这个位置:
这"ValueBstr" (?!) 和 “String” ,唔。。。。很像,下断看一下。 突然出现注册码,应该就是这段了。
分析一下,大概就是:输入的长度*0x17CFB +(第一个字符的十六进制) -》十进制输出,在加上下面的"AKA-"就是了
Num = input('输入: ') flag = '' test = hex(0x17CFB*len(Num)+ord(Num[0])) flag = 'AkA-'+ str(int(test.upper(), 16)) print(flag)
尝试一下:
Ok,成功