-
-
[原创]第二题解题过程
-
发表于: 2017-10-27 21:22 2933
-
1.正常流程跟踪,发现有个全局变量置为2,然后后面有两个函数,每个符合下面的条件的话,就能每次减1;
5 * (v1 - v0) + v1 == 0x8F503A42 3
13 * (v1 - v0) + v0 == 0xEF503A42 4
17 * (v1 - v0) + v1 == 0xF3A94883 1
7 * (v1 - v0) + v0 == 0x33A94883 2
4-3得到
7 * (v1 - v0) = 0x60000000
带入计算发现低3个字节必须相等为 503A42
1-2得到
11 * (v1 - v0) = 0xC0000000
0xB * (v1 - v0) = 0x2C0 00 00 00
带入计算发现低3个字节必须相等为 50
A94883
因此,暴力神马的对于此题无效。这是一条思路。
测试的时候我们发现输入比较长的字符串会死掉,od跟了下就会发现有堆栈溢出,我们可以控制返回地址。
那么直接调用下面的地址( 0040102F )就可以了。
0040102F 68 5CB04100 push 0041B05C ; you get it!\n
00401034 E8 092D0100 call 00413D42 ;
00401039 83C4 04 add esp, 4
0040103C 33C0 xor eax, eax
由于没有仔细看说明,陷入了一个误区,第一题太简单了,没把第二题想复杂。
于是输入 "111122223333/^P@", /P 是0x10,(覆盖了返回地址为0x40101F),就能在输入框成功得到正确提示。(然而无法正确提交,还发了个求助帖,进群了才看到要求,哎!!!)
小插曲,接下来就来到一个特殊的返回地址了。
最后么,抱着试一试的态度,
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [求助]在浏览器渲染进程中,messagebox不会弹框,直接就步过了,什么原理。 5686
- [原创]第一题,签到题。答案 2075
- [建议]论坛能不能加个不看此人发言功能 3519
- [原创]一款pc端unity游戏的研究 4561
- [求职]杭州有没有招人的企业啊,请看过来。 21938