CrackMe 001-002
CrackMe001
爆破分析
知道了这个 只要让程序强制跳转就好了,将je改成jmp强制跳转,或者
算法分析
往上翻我们可以发现到GetDlgItemTextA函数 用于检测我们输入的序列号
GetVolumeInformationA函数 用于获取该程序所在磁盘位置的名字
CrackMe002
算法分析
这里可以看出它将文件内的字符和从0x41(A)开始到0x4F(N)每次加一和后面的14个字符做异或 将异或的结果累加到地址0x4020F9
serial=14*'a' flag=[] sum=0 for i in range(18): flag.append(0) for i in range(len(serial)): sum+=+ord(serial[i])^(65+i) for i in range(14): flag[i]=serial[i] key=hex(sum^0x12345678).replace('0x','') print(key) flag[17] = chr(int(('0x'+key[0:2]),16)) #小端存储 flag[16] = chr(int(('0x'+key[2:4]),16)) flag[15] = chr(int(('0x'+key[4:6]),16)) flag[14] = chr(int(('0x'+key[6:8]),16)) out = ''.join(flag) print(out) with open("C:\CRACKME3.KEY", "wb+") as f: f.write(bytes(out.encode())) f.close()


























浙公网安备 33010602011771号