It's our wits that make us men.

2019/3/10 二进制拆弹phase_4

Posted on By LuLu

​ 今天开始解决逆向工程拆除“二进制炸弹”的第四道题目,是一个递归的题目。

phase_4

  • 调试bomb,在phase_4设置一个断点。在前面发现一个明码地址,gdb进入0x804a307看看。

    img

  • 随便输入几个数字。

    img

  • gdb进入0x804a307看看,发现要输入两个数字。

img

  • 输入的数字减2之后,要小于2 ,所以推测出 可输入的数字为:2 、3、 4。 小于2的数输入之后会变成一个负数,但这里默认是无符号数字。

    img

  • func4返回的值与输入的值进行比较。

    img

  • 输入的两个数字要不一样,在2.3.4之间选两个,弄明白数字的顺序。

  • 用ni命令调试到8048d3e时,用info reg,看到eax的值为1 ,则原来的数字是3,第二个数字在这里比较。

img

  • 再去找第一个数字,用ni命令调试到8048d5c时,用info reg,返回了了36。

    img

  • 尝试一下,成功了!

img

小心得:

不必去在意func4函数具体是一个什么东西,要看懂它比较的数字是怎么来的。