运行分析
- 需破解用户名和注册码
- 点击注册无反应
PE分析
- Delphi程序,32位,无壳
静态分析&动态调试
- ida找到关键字符串,进入函数
- 动态调试关键函数,逻辑:对Names进行sub_408A68函数加密得到v14,若v14与Serial相等则弹窗成功
- 双击进入sub_408A68加密函数,发现有5个循环,逻辑如下:
- 1、循环1~4:提取Name每个字符串ascii,进行+1+2+3+4,得到v28
- 2、循环5:将字符串v28转换为hex字符串
算法分析
import binascii
Name = 'concealbear'
v28 = ''
for i in range(len(Name)):
v28 += chr(ord(Name[i]) + 1 + 2 + 3 + 4)
Serial = binascii.b2a_hex(v28.encode()).decode().upper()
print(Name + '的Serial为:\n' + Serial)
- 验证成功