要点:MessageBox, FPU及浮点数运算
工具:IDA, windbg
分析:
1. 试跑,随便输入,弹窗提示error错误。
2. IDA载入,只找到一个MessageBoxA的调用位于0x004012E1,且第二个参数字符串也在附近。
3. windbg载入,下断,随意输入字符,确定。断点断下,确定2.
4. 合法性验证:长度为4,所有字符都不是'0',第1个字符为'1',第2个字符为'5'。详细过程见IDA注释。
0x00401262处,IDA自动解析的有问题,手工重新解析。
5. 算法过程:将4位字符串表示为15xy,则合法输入需要满足('x' - 0x30 - 0.2f) * ('y' - 0x30) * 16.f = 384.f.

6. 综合4,5,几行代码穷举出所有x和y,得到以下答案:
x=0x2f, y=0x1c, 15/
x=0x31, y=0x4e, 151N
x=0x35, y=0x35, 1515
完。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课