我在这里有输出,当我在GDB disas属于比较程序输入到'密码短语'的功能。我知道真正的'口令'在$ eax中,但是当我试图检查$ eax时,我得到地址超出范围的错误。我能做些什么来检查$ eax?
Dump of assembler code for function s:
0x08048444 <+0>: push %ebp
0x08048445 <+1>: mov %esp,%ebp
0x08048447 <+3>: mov 0x8(%ebp),%edx
0x0804844a <+6>: mov $0x0,%eax
0x0804844f <+11>: cmpb $0x0,(%edx)
0x08048452 <+14>: je 0x804845d <s+25>
0x08048454 <+16>: add $0x1,%eax
=> 0x08048457 <+19>: cmpb $0x0,(%edx,%eax,1)
0x0804845b <+23>: jne 0x8048454 <s+16>
0x0804845d <+25>: pop %ebp
0x0804845e <+26>: ret
你的意思是你使用'x $ edx'? “p $ edx”是什么意思? – 2013-03-08 03:28:05
糟糕,重写了这个问题。对于那个很抱歉。问题实际上是关于$ eax。 – theman 2013-03-08 03:34:29
,我正在使用x $ eax。它给了我这个输出: '0x1:<地址0x1越界>' – theman 2013-03-08 03:38:15