boom二进制 解出该密码,密码为6个整数,题目如下,请大神帮忙解一下...

发布网友 发布时间:2024-09-27 08:06

我来回答

2个回答

热心网友 时间:5分钟前

看到你说是6个整数,虽然不知道<read_six_numbers>函数的代码,看下面这段代码是比较了7个4 bytes的整数,它们分别存储在0x18(%esp)、0x1C(%esp)、0x20(%esp)、0x24(%esp)、0x28(%esp)、0x2C(%esp)、0x30(%esp),所以猜测这其中前6个就是你说的6个整数!不过仅仅是猜测,因为“没看到<read_six_numbers>函数的代码”,其中是怎么样不知道。

8048bda: d8             mov %ebx,%eax
8048bdc:03 44 9c 14       add 0x14(%esp,%ebx,4),%eax 
8048be0:39 44 9c 18       cmp %eax,0x18(%esp,%ebx,4) 
8048be4:74 05             je 8048beb <phase_2+0x37>
8048be6:e8 2a 05 00 00    call 8049115 <explode_bomb> 
8048beb:83 c3 01          add $0x1,%ebx 
8048bee:83 fb 06          cmp $0x6,%ebx 
8048bf1:75 e7             jne 8048bda <phase_2+0x26>

注意这段代码,依次检测这7个4 bytes的整数,可以看出这7个数字的关系。假设第一个数字是n,那么这7个数字必须为:n、n+1、n+3、n+6、n+10、n+15、n+21才不会爆炸。

这7个数字中,只有确定了其中一个,那么其余6个数字随之确定。

8048bcc:83 7c 24 18 00    cmpl $0x0,0x18(%esp)
8048bd1:79 22             jns 8048bf5 <phase_2+0x41>
8048bd3:e8 3d 05 00 00    call 8049115 <explode_bomb>

看这里比较了0x18(%esp)和0,只是说了0x18(%esp)大于0,也就是n>0。

还有一些细节就不知道了啊!调用本函数时的压栈信息不知道。

热心网友 时间:7分钟前

没看出来,但是8位二进制ASCII码翻译是WeAreMS6Cer
大写分割 应该是:We Are MS 6 Cer
没看懂,具体还要看看你在什么情况下看到这个。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com