hah*_*g65 0 system-calls linux-kernel
我正在尝试将 sys exit 调用设置为一个变量
extern void *sys_call_table[];
real_sys_exit = sys_call_table[__NR_exit]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试制作时,控制台给了我错误
error: ‘__NR_exit’ undeclared (first use in this function)
Run Code Online (Sandbox Code Playgroud)
任何提示将不胜感激:) 谢谢
由于您在内核 2.6.x 中,因此不再导出 sys_call_table 。如果您想避免编译错误,请尝试包含
#include<linux/unistd.h>
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用。因此,使用 sys_call_table 的解决方法是使用以下命令在 SystemXXXX.map(位于 /boot)中找到 sys_call_table 的地址:
grep sys_call System.map-2.6.X -i
Run Code Online (Sandbox Code Playgroud)
这将给出地址,然后此代码应允许您修改表:
unsigned long *sys_call_table;
sys_call_table = (unsigned long *) simple_strtoul("0xc0318500",NULL,16);
original_mkdir = sys_call_table[__NR_mkdir];
sys_call_table[__NR_mkdir] = mkdir_modificado;
Run Code Online (Sandbox Code Playgroud)
希望它对你有用,我刚刚在内核 2.6.24 下测试过,所以应该适用于 2.6.18
也在这里检查,它是一个非常好的 http://commons.oreilly.com/wiki/index.php/Network_Security_Tools/Modifying_and_Hacking_Security_Tools/Fun_with_Linux_Kernel_Modules
| 归档时间: |
|
| 查看次数: |
10094 次 |
| 最近记录: |