谁说一下怎么用0x80编程
时间:2003-03-18
来源:互联网
作者: cuicn_21 发布时间: 2003-03-18
作者: viper 发布时间: 2003-03-26
http://quaff.port5.com/syscall_list.html
作者: cfchio 发布时间: 2003-04-06
作者: cuicn_21 发布时间: 2003-04-07
前面介绍了系统调用相关的数据结构以及在Linux中使用一个系统调用的过程中每一步是怎样处理的,下面将把前面的所有概念串起来,说明怎样在Linux中增加一个系统调用。
这里实现的系统调用hello仅仅是在控制台上打印一条语句,没有任何功能。
1.修改linux/include/i386/unistd.h,在里面增加一条语句:
#define __NR_hello ???(这个数字可能因为核心版本不同而不同)
2.在某个合适的目录中(如:linux/kernel)增加一个hello.c,修改该目录下的Makefile(把相映的.o文件列入Makefile中就可以了)。
3.编写hello.c
. . . . . .
asmlinkage int sys_hello(char * str)
{
printk(“My syscall: hello, I know what you say to me: %s ! \n”, str);
return 0;
}
4.修改linux/arch/i386/kernel/entry.S,在里面增加一条语句:
ENTRY(sys_call_table)
. . . . . .
.long SYMBOL_NAME(sys_hello)
并且修改:
.rept NR_syscalls-??? /* ??? = ??? +1 */
.long SYMBOL_NAME(sys_ni_syscall)
5.在linux/include/i386/中增加hello.h,里面至少应包括这样几条语句:
#include <linux/unistd.h>
#ifdef __KERNEL
#else
inline _syscall1(int, hello, char *, str);
#endif
这样就可以使用系统调用hello了
作者: gyb997 发布时间: 2003-04-17
作者: cuicn_21 发布时间: 2003-04-17
去这个网站吧。英语不好的话,那我就*_*了
http://www.Phrack.org 有你想找的东西
自己用google搜索一下
作者: gyb997 发布时间: 2003-04-18
作者: cuicn_21 发布时间: 2003-04-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28