新160个crackme -090-tc.12
运行分析
- 需要破解注册码
PE分析
- Delphi程序,32位,无壳
静态分析&动态调试
- ida搜不到字符串,根据Deiphi程序的结构,直接打开来到start函数,找到CreateForm函数的参数off_445FC4,双击
- 逐个查找偏移,找到word_44614F,双击
- 发现register1Click,这个就是关键函数,双击进入
- 进行动态调试,逻辑如上
- 再对func_1和func_2进行分析,逻辑如上,是简单的亦或、加减乘法运算
- 查看密文0x3A, 0xD9, 0xC4, 0xC9, 0xBA, 0xBF, 0xDE, 0x7D, 0x44, 0xCF, 0xE2, 0xD9, 0xEA, 0x49, 0xD2, 0xDD, 0xDE, 0x8F
算法分析
- 对密文反转,再逆向func_1和func_2,可以得到Serial
enc = [0x3A, 0xD9,0xC4, 0xC9, 0xBA, 0xBF, 0xDE, 0x7D, 0x44, 0xCF, 0xE2, 0xD9,0xEA, 0x49, 0xD2, 0xDD, 0xDE, 0x8F]enc = enc[::-1]Serial = [0] * len(enc)# 逆向func_1和func_2
for i in range(len(enc)):Serial[i] = enc[i] + (i+1) - 8Serial[i] = (Serial[i] // 2) ^ 3print("".join([chr(i)for i in Serial]))
- 验证成功