-
-
[原创]看雪.TSRC 2017CTF秋季赛第二题WriteUp
-
发表于: 2017-10-28 11:35 3341
-
2(A-B)+A-B+A + C- 0xE8F508C8 = 0
2(A-B)+A-B+A - C -0x0C0A3C68 = 0
首先两个验证函数有四个方程,写成C++代码大概就是
if (v1 && v0 && v1 != v0 && 17 * (v1 - v0) + v1 == -207009661 && 7 * (v1 - v0) + v0 == 866732163) if (v1 && v0 && v1 != v0 && 5 * (v1 - v0) + v1 == -1890567614 && 13 * (v1 - v0) + v0 == -279954878){ }
if (v1 && v0 && v1 != v0 && 17 * (v1 - v0) + v1 == -207009661 && 7 * (v1 - v0) + v0 == 866732163) if (v1 && v0 && v1 != v0 && 5 * (v1 - v0) + v1 == -1890567614 && 13 * (v1 - v0) + v0 == -279954878){ }
这实际上是个同余方程组,但是用
17 * (v1 - v0) + v1 == -20700966和
5 * (v1 - v0) + v1 == -1890567614作差,发现左边是偶数右边是奇数,无解。
接下来就要找实际验证位置,这里写一下我怎么注意到的。
1、在printf的时候可以看到上面有不少指令反汇编错了,猜测花指令/SMC。
2、在OD分析状态下中间突然冒出来一个retn,猜测下面可能是一个新的函数(虽然那个retn是有问题的)。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创]用麒麟框架深入分析实模式二进制文件 12349
- [求助]游戏保护怎么入门? 4413
- [原创]看雪CTF2017第三题另一种做题思路 3311
- [原创]看雪.TSRC 2017CTF秋季赛第一题 4410
- [原创]看雪.TSRC 2017CTF秋季赛第二题WriteUp 3342
看原图
赞赏
雪币:
留言: