我目前正在尝试完成我的二进制炸弹项目。我目前处于第二阶段。
我已经检查过,发现可以使炸弹处于此阶段的密码需要3次输入才能通过,并且它以字节格式比较它们(因此它正在检查字符)。我的问题是实际上输入密码。简而言之,我很确定我知道要传递的正确代码,但是大多数情况下,它会导致我调用炸弹爆炸功能。
08048bab <phase_2>:
8048bab: 55 push %ebp
8048bac: 89 e5 mov %esp,%ebp
8048bae: 83 ec 08 sub $0x8,%esp
8048bb1: 8b 45 08 mov 0x8(%ebp),%eax
8048bb4: 80 38 6c cmpb $0x6c,(%eax)
8048bb7: 75 0c jne 8048bc5 <phase_1+0x1a>
8048bb9: 80 78 01 3c cmpb $0x3c,0x1(%eax)
8048bbd: 75 06 jne 8048bc5 <phase_1+0x1a>
8048bbf: 80 78 02 37 cmpb $0x37,0x2(%eax)
8048bc3: 74 05 je 8048bca <phase_1+0x1f>
8048bc5: e8 3e 02 00 00 call 8048e08 <blow_up_bomb>
8048bca: c9 leave
8048bcb: c3 ret
他们在这种情况下比较的值(据我所知)是字母“ l”,符号“
我尝试的输入是:
l<7
7<l
7 < l
l < 7
我真的很困惑。我到底在做错什么导致“炸弹”功能?还有另一种编写输入的方式吗?
最佳答案
我到底在做错什么导致“炸弹”功能?
我们无法告知您提供的信息。
如果您使用指向字符phase_2
的指针调用"l<7"
,炸弹将不会爆炸(至少不在phase_2
中,它可能仍会在其他地方爆炸)。
由于您声称尝试过该输入,因此您的问题必须在其他地方。也许您的输入不能使phase_2
毫不费力?