运行分析
- 需破解Name和Code
PE分析
- C++程序,32位,无壳
静态分析&动态调试
- ida找到关键字符串,双击进入函数
- 主函数静态分析,注释如上,还需要了解sub_401000函数
- 对sub_401000函数进行分析,注释如上,得到以下结论:
- 1、Name和Code第一个字符相等,Name长度大于4,Code第二个字符为’-’
- 2、Name每个字符相加得到v2,v4 = v2 + 24676
- 3、Code = Name[0] + ‘-’ + str(v4) + ‘-’ + str(v4 + 24676)
算法分析
Name = 'concealbear'
Code = ''
v2 = 0
for i in range(len(Name)):
v2 += ord(Name[i])
v4 = v2 + 24676
str_hex1 = str(v4)
str_hex2 = str(v4+24676)
Code = Name[0] + '-' + Name[-1].upper() + str_hex1 + '-' + str_hex2
print(Name + '的Code为:\n' + Code)
- 验证成功