0 - 前言 1 - 绪论 2 - 介绍 2.1 - 什么是中断(interrupt)? 2.2 - 中断和异常(exception) 2.3 - 中断向量 2.4 - 什么是IDT? 3 - 异常 3.1 - 异常列表 3.2 - 当异常出现时会发生什么 ? 3.3 - 中断钩子(hooking) by mammon 3.4 - 一般中断钩子 3.5 - profit钩子 : 我们第一个后门 3.6 - fun钩子 4 - 硬件中断 4.1 - 它是如何工作的 ? 4.2 - 初始化和半底(bottom half)激活过程 4.3 - 键盘中断钩子 5 - 为系统调用安排的异常 5.1 -...
by Powerone - Linux文档专区 - 2006-03-06 14:53:04 阅读(3562) 回复(0)
hook API是一个永恒的话题,如果没有hook,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠hook TextOut()或ExtTextOut()这两个函数实现的,在操作系统用这两个函数输出文本之前,就把相应的英文替换成中文而达到即时翻译;IFS和NDIS过滤也是如此,在读写磁盘和收发数据之前,系统会调用第三方提供的回...
hook API是一个永恒的话题,如果没有hook,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠hook TextOut()或ExtTextOut()这两个函数实现的,在操作系统用这两个函数输出文本之前,就把相应的英文替换成中文而达到即时翻译;IFS和NDIS过滤也是如此,在读写磁盘和收发数据之前,系统会调用第三方提供的回...
关键字:linux系统调用劫持 在linux内核2.4.18之前,sys_call_table符号是导出的。在这种情况下,要添加自己定义的系统调用函数或者修改相应的调用函数都是非常的简单。只要修改一下sys_call_table[__NR_xxxx]就行了。 但是处于安全性的考虑,在linux2.4.18之后,已经不再导出sys_call_table符号了。 在这种情况下,如果要修改系统调用函数,就必须首先要获得sys_call_table这个符号地址。 方法一、 也是最简单的一种方法,但...
本章主要说明两个问题: 1. 挂载点的数据结构以及如何挂载; 2. 如何从网络协议栈经挂载点到hook函数; 挂载点的数据结构: /* In this code, we can be waiting indefinitely for userspace to * service a packet if a hook returns NF_QUEUE. We could keep a count * of skbuffs queued for userspace, and not deregister a hook unless * this is zero, but that sucks. Now, we simply check whe...
linux下inline hook怎么实现? 在windows下的实现,就是流程进入到自己写的函数中执行完,然后调用另一个自己写的函数fun,跳转到原函数中继续执行。 fun函数都是类似这样定义的 void _declspec(naked) fun(int a, int b) { //汇编代码 跳转到原函数中继续执行 } _declspec(naked)关键字用来防止重新为fun()开辟堆栈空间,liunx系统下有没有相似的关键字来实现? 用什么方法来实现同样的功能呢?
专业的人做专业的事情,弓虽病毒AV终结者又有了新的变种!而且似乎弓虽到了逆天!居然可以Ring3级技术来删除AV软件的关键程序,汗颜。不过俗话说“魔高一尺,道高一丈”,金山的病毒专家铁军还是找到了对付的办法,下面演示给大家哈。 截获最新的AV终结者,该变种采用ring3级hook技术直接删除杀毒软件,劫持众多网站,阻止杀毒软件更新。专杀程序紧张制作中,测试通过会及时发布,老版本AV终结者专杀运行后会自动升级。 以下是详...
目前有需求要实现中断处理函数的hook,基本思路如下: 1:通过对文件/proc/kallsyms的处理,找到中断处理函数的函数地址,比如键盘中断gpio_keys_isr的函数地址是0xc02c7cec。 2:修改该函数地址的前三条指令为0xe59ff000, 0xe1a08008, (int)funchook,实现函数跳转,跳到我的自定义函数funchook。 3:在我的自定义函数里边: asmlinkage void hook_IRQ() { printk("debug here\r\n"); // 下边三行是恢复中断处理函数的...