运行分析
- 提示选择Keyfile,选择后弹出错误的Keyfile,需要先破解Keyfile
- 还需要破解Name和Serial
PE分析
静态分析&动态调试
- ida动态调试,找到关键判断,发现是选择文件和str_Runtime_Error__比较,相等则跳过错误弹窗
- 双击str_Runtime_Error__,发现值为Runtime Error: 12FF:024
- 同目录下创建1.txt
- 内容为Runtime Error: 12FF:024,保存
- 进入Gratulations字符串所在的函数
- 动态调试进行分析,得到如下结论:
- 1、对Name每个字符进行累加计算,得到v11
- 2、对v11进行循环累加计算
- 3、将v11转字符串,赋值给v27
- 4、v27第3、5位插入’-’
- 5、比较v27与Serial,相等弹窗成功
算法分析
Name = 'concealbear'
v10 = 0
v11 = 0
v25 = 0
for i in range(len(Name)):
v25 += 1
if v25 + v10 >= ord(Name[i]):
v10 = v25 + v10 - ord(Name[i])
else:
v10 = 0xff + 1 + v25 + v10 - ord(Name[i])
v11 += v10
while v11 < 17293:
v11 += 17894
v27 = str(v11)
Serial = v27[0:2] + '-' + v27[2:3] + '-' + v27[3:]
print(Name + '的Serial为:\n' + Serial)