-
-
2020-强网杯-QWBlogin
-
发表于:
2020-8-24 21:41
8067
-
两天只做了一道题,一道题目逆向逆了两天,还是对于程序的理解能力有欠缺。
贴一下数据结构
然后说一下思路:
先找password,前三次每次输入输入一个字符,第四次输入0x20长度字符串,0x20长度字符串按照8个一组的长度,分四次进行比对,按照比对条件结合异或操作求出passwd,第五次输入可以控制模拟的stack区域,可控长度为0x800操作,其中ret操作可以将stack+0x108赋值给模拟rip指针,至此我们可以控制程序流;然后是第二部分,我们需要找到test.bin读取到内存中的指令中控制对应的rax rdi rsi rdx部分寄存器在code段的偏移,以及syscall指令的偏移,找到之后可以进行orw得到flag;
举例:我们控制了stack区域,所以我们需要找到pop ,rax ; ret 这种指令,进而可以持续控制执行我们制定的指令。
自己逆向一下吧
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2020-8-28 10:40
被Seclusion编辑
,原因: