c - 在没有 gdb 的情况下获取 libc (execve) 中函数的地址

标签 c linux buffer-overflow libc

我正在尝试基于缓冲区溢出漏洞(在 x86-32 linux 机器上)的利用来自动执行 return-to-libc 攻击。 我需要一种在不使用 gdb 的情况下在 libc 中找到 execve 函数地址的方法:

(gdb) p 执行
$1 = {} 0xf7ec1b30

禁用 ASLR 保护以允许此技术。

有没有办法获取libc中函数的地址作为execve?使用程序或任何其他可自动化的方式? (没有 gdb,因为它在 bash 脚本或 C 程序中不可自动化)。

欢迎提出任何建议。

最佳答案

这是一个技巧问题还是做这样的事情不起作用:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main (int argc, char **argv)
{
  void *a = execv;
  printf ("execv is at %p\n", a);
  exit (0);
}

在这里工作。

关于c - 在没有 gdb 的情况下获取 libc (execve) 中函数的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992861/

相关文章:

c - LibUSB 驱动程序问题 : timeout

c - 如何使用 string.h 在 C 中将字符合并为字符串?

linux - Bash:对于文件中的每一行,设置变量

go - Go是否容易受到缓冲区溢出的影响

c - 是否可以将代码注入(inject) x86-64 上的堆栈

c - 重新定义;之前的定义是 'data variable'

c - 有没有办法用 MSVC 编译器输出定义宏的有效列表?

linux - 如何使用参数netcat url?

linux - 复制符号链接(symbolic link)但指向相同的文件(复制)但不同的目标基目录

c - 对缓冲区大小施加限制