linux不同版本间驱动加载方法

linux不同版本间驱动加载方法

ID:1969724

大小:159.00 KB

页数:33页

时间:2017-11-14

linux不同版本间驱动加载方法_第1页
linux不同版本间驱动加载方法_第2页
linux不同版本间驱动加载方法_第3页
linux不同版本间驱动加载方法_第4页
linux不同版本间驱动加载方法_第5页
资源描述:

《linux不同版本间驱动加载方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、WebZine·Introduction----------byroot·Flashsky访谈----------byflashsky·Struts2框架安全缺陷----------bykxlzx·重谈IP欺骗技术----------bypapaya·Fuzz客户端存储对象,寻找clientddos----------bywoyigui·应用软件缺陷利用的一点心得(Webkit篇)----------bywushi·BypassingLinuxkernelmoduleversioncheck------

2、----bywzt·ACS-ActiveContentSignatures----------byEduardoVelaNava·卡巴虚拟机启发式查毒的绕过方法----------bydangdangBypassingLinuxkernelmoduleversioncheckBywzt1、为什么要突破模块验证2、内核是怎么实现的3、怎样去突破4、总结5、参考6、附录1、为什么要突破模块验证Linux内核版本很多,升级很快,2个小内核版本中内核函数的定义可能都不一样,为了确保不一致的驱动程序导致kerne

3、loops,开发者加入了模块验证机制。它在加载内核模块的时候对模块进行校验,如果模块与主机的一些环境不一致,就会加载不成功。看下面一个例子,它简单的输出当期系统中的模块列表:#include#include#include#include#include#includeMODULE_LICENSE("GPL");MODU

4、LE_AUTHOR("wzt");structmodule*m=&__this_module;intprint_module_test(void){structmodule*mod;list_for_each_entry(mod,&m->list,list){printk("%s",mod->name);}returnNULL;}staticintlist_print_init(void){printk("loadlist_printmodule.");print_module_test();r

5、eturn0;}staticvoidlist_print_exit(void){printk("unloadlist_printmodule.");}module_init(list_print_init);module_exit(list_print_exit);我们在centos5.3环境中编译一下:[root@localhostlist]#uname-aLinuxlocalhost.localdomain2.6.18-128.el5#1SMPWedJan2110:44:23EST2009i68

6、6i686i386GNU/Linux然后拷贝到另一台主机centos5.1xen上:[root@localhost~]#uname-aLinuxlocalhost.localdomain2.6.18-53.el5xen#1SMPMonNov1203:26:12EST2007i686i686i386GNU/Linux用insmod加载:[root@localhost~]#insmodlist.koinsmod:errorinserting'list.ko':-1Invalidmoduleformat报错了

7、,在看下dmesg的信息:[root@localhost~]#dmesg

8、tail-n1list:disagreesaboutversionofsymbolstruct_module先不管这是什么,总之我们的模块在另一台2.6.18的主机中加载失败。通常的做法是要在主机中对源代码进行编译,然后才能加载成功,但是如果主机中缺少内核编译环境的话,我们的rootkit就不能编译,也不能安装在主机之中,这是多么尴尬的事情:)。没错,这就是linuxkernel开发的特点,你别指望像windows驱动一样,编译一

9、个驱动,然后可以满世界去装^_^.一些rootkit开发者抛弃了lkm类型rk的开发,转而去打kmem,mem的注意,像sk,moodnt这样的rk大家都喜欢,可以在用户层下动态patch内核,不需要编译环境,wget下来,install即可。但是它也有很多缺点,比如很不稳定,而且在2.6.x后内核已经取消了kmem这个设备,mem文件也做了映射和读写的限制。rk开发者没法继续sk的神话了。反过来,如果我们的lkm后门不需要编译环境,也可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。