如何在glibc

时间:2016-02-22 16:27:35

标签: glibc

我使用https://tssurya.wordpress.com/2014/08/19/adding-a-hello-world-system-call-to-linux-kernel-3-16-0/.But向linux 4.4.2添加了一个hello_world系统调用,它只能通过使用其系统调用号来调用 例如: -

long int a = syscall(326);

其中326是系统呼叫号码。 现在我想用一个包装函数调用相同的系统调用函数,例如hello_world()而没有指定系统调用号。可以通过使用glibc建议我这样做的方法吗?。提前谢谢

1 个答案:

答案 0 :(得分:0)

您需要更新内核标头(例如与您的拱门匹配的/usr/include/asm*/*unistd*.h)以定义符号__NR_hello_world。那么你可以针对这些标题构建glibc。

获取glibc生成符号的最简单方法是编辑与您的拱门匹配的文件,如sysdeps/unix/sysv/linux/syscalls.list。 glibc使用它来动态生成符号列表。

请务必同时更新sysdeps/unix/sysv/linux/Versions,以便导出该符号。

所有这一切,使用syscall(326)是最好的答案,特别是当你只想做内核黑客攻击时。搞乱glibc并不常见。