我试图基于利用缓冲区溢出漏洞(在x86-32 linux机器上)自动化返回libc攻击。 我需要一种方法在不使用gdb的情况下在libc中找到execve函数的地址:
(gdb)p execve
$ 1 = {} 0xf7ec1b30
禁用ASLR保护以允许此技术。
有没有办法让libc中的函数地址为execve?使用程序或任何其他可自动化的方式? (没有gdb,因为在bash脚本或C程序中不能自动化。)
欢迎任何建议。
答案 0 :(得分:1)
这是一个技巧问题还是这样做不起作用:
#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);
}
在这里工作。
答案 1 :(得分:0)
如果您正在尝试获取脚本的此信息,那么nm实用程序可能有帮助吗?
示例:nm {libraryPath} | grep execve