第三阶段


跳转查询地址



第三阶段首先找到输入格式是“%d %c %d”,输入的第一个数需要保证在2-7之间,并根据输入的这个数来进行跳转。然后需要保证输入的第三个数字等于0x38b即907,并进一步跳转,判断第二次输入的字符和al寄存器所存是否相等,相等即通关。最后结果是”3 l 907”

第四阶段



第四阶段最关键的递归调用程序我还有点迷糊,只看出来了如果第二个数是4,第一个数就是4的倍数,然后试出来的48和4。

第五阶段


第五阶段就是首先知道输入字符串的长度需要为6,然后进行一个循环,由ax寄存器的值当作循环变量,每次循环依次将输入的单个字符的ascII码的低四位存到cx寄存器中,并把0x804a260+4ecx里存的数值累次加到dx寄存器上。六次循环后判断dx里的值是否为52,如果相等则通关。
52=10+10+10+10+10+2,当ecx里的值为0,0x804a260+4
ecx即0x804a260里存的是2,当ecx里的值为1时,0x804a264里存的是10,所以就找二进制低四位为0000和0001的字符,找到q和p符合条件。最后结果为qqqqqp


二进制安全      拆弹

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!