[b77d0424] open(“etc / shadow”,0_RDONLY)= -1 EACCESS(权限被拒绝)
每次我将[b77d0424]改为另一个地址
我不能使用gdb b * 0xb77d0424然后c来查找lib64 / libc.so.6
在linux编程书中提到的似乎不一样
在虚拟框中运行ubuntu 13.04后
答案 0 :(得分:4)
每次我将[b77d0424]改为另一个地址
这是因为address space layout randomization而发生的,你可以使用setarch -R
命令禁用它。
GDB 也默认禁用地址随机化,但是你在GDB和strace
下获得的相同地址的可能性非常小,因为这两个工具下的执行环境是完全不同的。您实际上并不需要 来查找strace
下的地址,您可以在GDB中找到它:
catch syscall open
run
您现在正在查看您的程序执行的open
系统调用之一。使用continue
,直到您感兴趣的那个为止。现在使用info registers
查找第一个参数的地址,并在该地址上设置一个观察点。