- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《inux不同版本间驱动加载方法
WebZine Introduction ---------- by root Flashsky访谈 ---------- by flashsky Struts2框架安全缺陷 ---------- by kxlzx 重谈IP欺骗技术 ---------- by papaya Fuzz客户端存储对象,寻找client ddos ---------- by woyigui 应用软件缺陷利用的一点心得(Webkit篇) ---------- by wushi Bypassing Linux kernel module version check ---------- by wzt ACS - Active Content Signatures ---------- by Eduardo Vela Nava 卡巴虚拟机启发式查毒的绕过方法 ---------- by dangdang Bypassing Linux kernel module version check By wzt 1、 为什么要突破模块验证 2、 内核是怎么实现的 3、 怎样去突破 4、 总结 5、 参考 6、 附录 1、 为什么要突破模块验证 Linux内核版本很多,升级很快,2个小内核版本中内核函数的定义可能都不一样,为了确保不一致的驱动程序导致kernel oops, 开发者加入了模块验证机制。它在加载内核模块的时候对模块进行校验, 如果模块与主机的一些环境不一致,就会加载不成功。 看下面一个例子,它简单的输出当期系统中的模块列表: #include linux/kernel.h #include linux/module.h #include linux/init.h #include linux/version.h #include linux/string.h #include linux/list.h MODULE_LICENSE(GPL); MODULE_AUTHOR(wzt); struct module *m = __this_module; int print_module_test(void) { struct module *mod; list_for_each_entry(mod, m-list, list) { printk(%s\n, mod-name); } return NULL; } static int list_print_init(void) { printk(load list_print module.\n); print_module_test(); return 0; } static void list_print_exit(void) { printk(unload list_print module.\n); } module_init(list_print_init); module_exit(list_print_exit); 我们在centos5.3环境中编译一下: [root@localhost list]# uname -a Linux localhost.localdomain 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux 然后拷贝到另一台主机centos5.1xen上: [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.18-53.el5xen #1 SMP Mon Nov 12 03:26:12 EST 2007 i686 i686 i386 GNU/Linux 用insmod加载: [root@localhost ~]# insmod list.ko insmod: error inserting list.ko: -1 Invalid module format 报错了,在看下dmesg的信息: [root@localhost ~]# dmesg|tail -n 1 list: disagrees about version of symbol struct_module 先不管这是什么, 总之我们的模块在另一台2.6.18的主机中加载失败。 通常的做法是要在主机中对源代码进行编译, 然后才能加载成功, 但是如果主机中缺少内核编译环境的话, 我们的roo
文档评论(0)