gpt4 book ai didi

glibc 中的更改不起作用

转载 作者:太空狗 更新时间:2023-10-29 11:20:09 28 4
gpt4 key购买 nike

我已经下载了glibc,这样我就可以修改它的代码然后使用它。所以只是为了玩玩它,我更改了 glibcstdio-common 目录中的 printf 函数,以便它打印“你可以看到我吗?”。

int
__printf (const char *format, ...)
{
va_list arg;
int done;

va_start (arg, format);
done = vfprintf (stdout, "Can you see me?", arg);
va_end (arg);

return done;
}

进行更改后,我编译了 glibc,然后将 LD_PRELOAD 与此 glibc 目录中的 libc.so 一起使用来运行示例使用 printf 的程序。但是,我仍然看到printf打印正常,也就是我所做的更改没有反射(reflect)出来。我在这里犯了什么错误?

最佳答案

这可能有几个原因,最简单的是你使用了一个没有真正格式的字符串,并且编译器将调用从 printf 更改为 puts:

printf("hello\n");
// becomes:
puts("hello");

尝试添加一个参数:

char ex = '!';
printf("Hello %c\n", ex);

关于glibc 中的更改不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10418612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com