发布网友 发布时间: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注意这段代码,依次检测这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)看这里比较了0x18(%esp)和0,只是说了0x18(%esp)大于0,也就是n>0。
还有一些细节就不知道了啊!调用本函数时的压栈信息不知道。
热心网友 时间:7分钟前
没看出来,但是8位二进制ASCII码翻译是WeAreMS6Cer
大写分割 应该是:We Are MS 6 Cer
没看懂,具体还要看看你在什么情况下看到这个。