+ -
当前位置:首页 → 问答吧 → 谁说一下怎么用0x80编程

谁说一下怎么用0x80编程

时间:2003-03-18

来源:互联网

作者: cuicn_21   发布时间: 2003-03-18

用 google 去 search 一下吧

作者: viper   发布时间: 2003-03-26

給你個Linux System Call Table網址,good luck!
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