我是低级攻击的初学者。我正在练习简单的缓冲区溢出(基于堆栈)。我使用的是Kali Linux,因此当我$objdump -d <program>
并返回(例如)时:
================================================ ===
0000000000400590:主要
400590推...
400600 xor ...
400610呼叫...
...
================================================ ===
我知道这是一个不好的例子,但是我的问题是地址400590
永远坚持push ...
,地址400600
永远坚持xor ...
并与400610
?程序的特定指令会永远保留地址吗?
答案 0 :(得分:0)
是的,编译器/链接器分配代码地址,因此除非重新编译(或修补)应用程序,否则代码地址不会更改。