运行分析
- 打开程序,标题显示Unreg未注册
- 点击Try it,让我们选择一个文件,若选择文件无反应,不选择文件之后弹出错误提示
PE分析
- Delphi程序,32位,无壳
静态分析&动态调试
- ida找到已注册字符串,双击进入函数
- 进行动态调试,发现Buffer就是文件data每个字符的值
- 选择的文件data每个字符串相加要等于8361
算法分析
data_length = 8361 // 122
last_data = 8361 % 122
data = ['z'] * data_length
data.append(chr(last_data))
print("文件data为:\n" + "".join(data))
- 假设文件data前面都为z,写出相关脚本,得到zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzA
- 创建1.txt文件,将上面data保存进1.txt
- 打开程序,选择1.txt文件,发现标题为已注册