phase_5

Hello world,hello blog!

Posted by 吴柚 on April 2, 2019

phase_5

1 题目分析

  • 调用string_length的字符串长度函数,测得的长度若不为6则引爆;

  • 做一个6次的循环,循环变量%eax从1到6,令%ecx <- (%ebx+%eaxx);

  • 只保留%ecx的低四位,并以此作为地址搜索变量,取出0x804a280+4*%ecx中的数加到%edx上,如此循环6次后跳出;

  • 比较总和%edx的值是否等于0x45(69),相等则返回进入下一关,不等则引爆。

2 解题思路

首先得知输入的字符串长度为6,然后通过p/x (0x804a280+4%ecx)的指令得到:

上述值分别对应%eax=0-4.因为字符在机器中是以ASCII码的形式存储,因此我们要寻找的一个6位字符串要满足其每个字符的ASCII码位数对应的值相加为0x45即69.

但尝试后发现组合出来的字符都无法通过此题,故需换别的思路