科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux系统可卸载内核模块完全指南(下) (7)

Linux系统可卸载内核模块完全指南(下) (7)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这只不过是一个例子,是为了告诉你不管怎么样,你总是能够找到一些方法的。对于有堆栈执行权限的系统,你可以找堆栈溢出,或者跳到某些库函数(system(...)).会有很多方法……

作者:IHH 来源:Silversand.net 2007年11月6日

关键字: 模块 内核 卸载 Linux

  • 评论
  • 分享微博
  • 分享邮件
这只不过是一个例子,是为了告诉你不管怎么样,你总是能够找到一些方法的。对于有堆栈执行权限的系统,你可以找堆栈溢出,或者跳到某些库函数(system(...)).会有很多方法……

我希望这最后的一节可以给你一些如何继续的提示。

第五部分 最近的一些东西:2.2.x版本的内核

5.1 对于LKM作者来说,一些主要的不同点

Linux有了一个新的主版本:2.2在LKM编程上,他带给我们一些小的改变。这一部分将会帮助你适应这些变化,并且列出了大的一些变化。[注意:关于新的版本的内核,会有另一个发布版本]

我会向你介绍一些新的宏和函数来帮助你开发2.2版本的内核的LKM。要获得每一个确切的变化可以看新的头文件linux/module.h。这个文件在2.1.18版本的内核中被完全的重写了。首先让我们来看看一些可以帮助我们更方便的处理系统调用表的宏:

宏描述

EXPORT_NO_SYMBOLS:这一个相当于旧版本内核的register_symtab(NULL) 

EXPORT_SYMTAB:如果你想输出一些符号的话,必须在linux/module.h前面定义这个宏 

EXPORT_SYMBOL(name):输出名字叫'name'的宏 

EXPORT_SYMBOL_NOVERS(name):没有版本信息的输出符号

用户空间的存取函数也有很大的变化。因此我会在这里列出来(只要包含asm/uaccess.h来使用他们):

函数描述

int access_ok (int type, unsigned long addr, unsigned long size);

这个函数检查是否当前进程允许存取某个地址

unsigned long copy_from_user (unsigned long to, unsigned long from, 
unsigned long len);

这个是新的memcpy_tofs函数

unsigned long copy_to_user (unsigned long to, unsigned long from, unsigned 
long len);

这是相对应的copy_from_user(...)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章