运行分析
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8e7c9973721b4df1997cc9a83e0ef2b6.png 500x)
- 点击注册无反应
PE分析
- Delphi程序,32位,无壳
静态分析&动态调试
- 使用DeDeDark进行分析,发现Register按钮事件地址入口为466580
- ida打开程序,按G键,定位到466580地址
- 进行动态调试,结果如上图注释
- 还需要分析sub_466230函数
- sub_466230函数作用:提取Name每个字符串进行计算,将计算结果拼接为res
- 其中str1为固定值,如上图
- str1_4 = 0x58BFCE6D(大小端存储需反转)
- str1_6 = 0x58BF(大小端存储需反转)
算法分析
Name = 'concealbear'
# sub_466230
int1 = 0x4de1
str1_4 = 0x58BFCE6D
str1_6 = 0x58BF
res = ''
for i in range(len(Name)):
v12_0 = (int1 >> 8) ^ ord(Name[i])
int1 = (str1_6 + str1_4 * (int1 + v12_0)) & 0xffff
res += hex(v12_0)[2:].zfill(2).upper()
Serial = res
print(Name + '的Serial为:\n' + Serial)
- 验证成功