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