一道很骚的CrackMe

这个题目是 10年看雪的一个大佬出的crackme

 我一个伙计不知道怎么就拔出来 让我看了,。。。。

 

其实这个题目本身并不难,,  这两天打比赛打的太累了,,, 感觉自己不太在状态,,,

CrackMe的链接

https://bbs.pediy.com/thread-111995.htm

然后  这个crackme 的大致情况就是如此

我一开始是用 sub 0xa 来找 按钮事件,

 然后我发现 这个程序逻辑点 还要很长  直接下一个 内存访问断点  然后发现了这里的算法

一道很骚的CrackMe_第1张图片

其实到这基本就可以了

然后就是分析硬核的算法了

这里我整理了一下   大概就是 

name 长度大于5
serial 长度大于19

然后 每第五位 是  -   

然后循环5次

然后 就是 sum  += sum (name[(name_len-i)])

然后就是

一道很骚的CrackMe_第2张图片

 

一道很骚的CrackMe_第3张图片

 

 然后再往下看  进入关键函数看

一道很骚的CrackMe_第4张图片

发现了我们上面说的那个点,

 

然后我们写出注册机。

 

table="zouzhiyong"
name="pipixia"

flag=""
count=0
for i in range(0,5):
	temp=ord(name[i])
	for j in range(1,len(name)-i):
		temp+=ord(name[j])

	while temp<10000:
		temp*=3
	temp = temp / 3
	while temp:
		dnum=temp%10
		temp=int((temp-dnum)/10)
		strs=ord(table[dnum])
		strs=strs-32-(strs%5)-(strs%2)
		if count%5==4:
			count+=2
			flag+='-'+chr(strs)
		else:
			count+=1
			flag+=chr(strs)

	

print(flag)


 

你可能感兴趣的:(逆向之旅)