运行分析
- 提示需要注册
PE分析
- 32位,ASP壳
脱壳
- x32dbg打开程序
- 按一下F8发现ESP变红,根据ESP定律在此处下硬件断点
- 将ESP地址处右键 -> 在转储中跟随
- 转储选中该地址处右键 -> 断点 -> 硬件,存储 -> 双字 -> 成功下断点
- 按一下F9,来到004283AB,继续往下跟
- 按3下F8,来到疑似OEP处
- 打开Scylla,点击转储,保存文件为BCG_dump.exe
- 保存转储后还无法运行,需要IAT修复,步骤如下:
- 点击IAT自动搜索
- 点击获取导入
- 点击修复转储,选择刚才导出的BCG_dump.exe文件
- 文件中多出了BCG_dump_SCY.exe,这个就是IAT修复后的文件
- 双击运行正常
- PEiD检测,发现是ASM程序
静态分析&动态调试
- IDA找到成功字符串,双击进入函数
- 动调程序,发现key文件名为[BCG].key
- 同目录下创建[BCG].key,内容输入12345678901234567890,保存
- 重新动调程序,发现在两个ReadFile函数读取String1和String2后,String2为[BCG].key文件前10为,String2为[BCG].key文件后10位
- 继续往下动调,发现下面循环处,会将String2和String1每一位字符与0x58进行亦或
- lstrcmpA函数比较字符串时,是以0x0作为字符串结束,因此String2和String1最后一位与0x58亦或后应为0
- 即[BCG].key前10位和后10位相等,且最后一位为0x58时,弹出成功
- 将[BCG].key输入key = str_9位 + ‘X’ + str_9位 + ‘X’
- 验证成功