运行分析
- 需要破解Name和Serial
PE分析
- C++程序,32位,无壳
静态分析&动态调试
- ida找到关键字符串,双击进入函数
- 静态分析得到以下结论:
- 1、Name长度要大于4,小于50
- 2、v5 += Name[i] ^ (i + 1)
- 3、v7 = 最后一个Name[i] ^ (i + 1)
- 4、Serial = (v5<<7) + 6* v7 的16进制
算法分析
Name = 'concealbear'
v5 = 0
for i in range(len(Name)):
v7 = (i + 1) ^ ord(Name[i])
v5 += v7
Serial = hex((v5 << 7) + 6 * v7)[2:].upper()
print(Name + '的Serial为:\n' + Serial)
- 验证成功