运行分析
- 解压出来4个文件
- 运行程序发现要破解Name和Serial
PE分析
- 32位,petite壳
手动脱壳
- 使用windows XP虚拟机OD打开程序
- 按2下F8,发现ESP变红,根据ESP定律,在该地址右键 -> HW break下断点
- 继续按2下F9,来到灰色代码处
- 右键 -> 分析 -> 分析代码
- 向上发现401000疑似OEP
- 右键 -> 用OllyDump脱壳调试进程
- 将修正为:改为1000,点击脱壳,保存为1.exe
- 脱壳成功,是ASM程序
静态分析&动态调试
- ida找到关键字符串,双击进入
- ida静态分析,注释如上,得到以下结论:
- 第一个循环:将Name倒序
- 第二个循环:Name每个字符与0x30亦或
- 第三个循环:Serial每个字符与0x20亦或
- 第四个循环:比较Name和Serial亦或后的每个字符,全部相等则弹窗成功
算法分析
Name = 'cOncealbear'
Serial = ''
Names = Name[::-1]
for i in Names:
Serial += chr(ord(i) ^ 0x30 ^ 0x20)
print(Name + '的Serial为:\n' + Serial)
- 结果可能存在不可见字符,多试几次就可以排除