ChinaUnix.net
相关文章推荐:

android hook控制函数调用

现在偶尔出现死掉的问题 但是我检查代码看不出问题 所以我觉得会不会是在hook调用printk不安全? 还有skb_linearize和skb_is_nonlinear 网上有些文章是解决内存不连续的问题是这样么? 和ip分片有关系么?

by 故哈 - 内核源码 - 2009-08-27 16:27:52 阅读(3109) 回复(14)

相关讨论

运行机制 1、钩子链表和钩子子程: 每一个hook都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。这个列表的指针指向指定的,应用程序定义的,被hook子程调用的回调函数,也就是该钩子的各个处理子程。当与指定的hook类型关联的消息发生时,系统就把这个消息传递到hook子程。一些hook子程可以只监视消息,或者修改消息,或者停止消息的前进,避免这些消息传递到下一个hook子程或者目的窗口。最近安装的钩子放在链的开...

by 杨竹青 - OpenAPI - 2008-07-28 15:52:17 阅读(2582) 回复(0)

请问在编写了一个hook程序之后如何运行它,好象一般的hook程序都没有主程序,我在网上下了一个验证ARP报文的代码,请问如何编译执行它? 代码如下: unsigned int arphook_snd(unsigned int hooknum,struct sk_buff **skb,const struct net_device *in, const struct net_device *out,int (*okfn)(struct sk_buff*)) { struct arphdr *arp; struct net_device *dev; unsigned char * arp_ptr; unsigned char *sha, *tha; ...

by leigaiting - 内核源码 - 2007-03-21 10:20:24 阅读(2178) 回复(0)

在同一个hook点上注册不同的两个表时,比如在LOCAL_IN这个点上注册filter和nat两个表,分别往这两个表里面添加规则。 当有数据经过LOCAL_IN时激活这个点上的hook函数,然后去匹配表的规则, 问题:因为是在同一个点注册了两个表,在hook函数被激活后去匹配规则的时候是两个表的规则都去匹配的吗? 是这样吗? --》先从优先级高的表开始匹配,然后是次高的表开始匹配?

by li_freedom - 内核源码 - 2014-03-05 22:56:24 阅读(1081) 回复(5)

我编写了一个hook函数,并且已经将其加入到模块之中了,但是怎样和我的应用文件联系起来呢? hook函数如下: static unsigned int receive_hook(unsigned int hooknum,struct sk_buff ** pskb,const struct net_device *in,const struct net_device *out,int (*okfn) (struct sk_buff *)) { return NF_ACCEPT; } struct nf_hook_ops user_hook_ops={ {NULL,NULL}, receive_hook, THIS_MODULE, PF_INET, NF_IP_PRE_ROUTING, ...

by mickey87214 - Linux环境编程 - 2007-12-06 14:42:21 阅读(2057) 回复(2)

在init函数里面注册了一个hook: struct nf_hook_ops nfho; void init(){ nfho.hook = intercept_pkts; nfho.pf = AF_INET; nfho.hooknum = NF_INET_FORWARD; nfho.priority = NF_IP_PRI_FIRSR; ret = nf_register(&nfho); ....... } initercept_pkts(unsigned int hooknum,struct sk_buff *_skb,.........) { printk("hooknum = %d\n",hooknum); ...

by li_freedom - Linux环境编程 - 2014-05-28 11:36:09 阅读(883) 回复(2)

android通过platform_frameworks_base下的WindowsManagerService来管理和分发系统触摸和按键等事件,如果想捕获系统所有事件,怎么才能实现?怎么可以调用InputManager,怎么才能将程序注册成接受所有事件的InputChannel? 如果调用了platform_frameworks_base下的类或方法,怎么才能与platform_frameworks_base一起编译呢? 有人知道么?非常感谢!

by sugelawa - 移动操作系统 - 2013-11-12 18:17:30 阅读(1123) 回复(0)

本帖最后由 wsgtrsys 于 2013-08-18 19:26 编辑 因为需要对内核中的一个函数劫持后,修改其中的一个变量 。 是参考这个篇文章的的做法。 http://jan.stancek.eu/mips_function_runtime_detour 原来曾经在2.6.16的内核上劫持成功,但最近在2.6.35的内核上就不行了。 2.6.35内核的代码部分仿佛是只读的,不能修改原来的函数的机器码。 有两个问题: 1、mips上是不是有类似于x86上的cr0寄存器? 2、如果不是用cr0进行保护,是不是...

by wsgtrsys - 内核源码 - 2013-08-19 11:00:08 阅读(1298) 回复(2)

能否在同一个hook点,同一个优先级上,注册多个hook函数。看了一下代码,MS支持。但是感觉这样意义不大。 net/netfilter/core.c中 [quote]int nf_register_hook(struct nf_hook_ops *reg) { struct list_head *i; spin_lock_bh(&nf_hook_lock); list_for_each(i, &nf_hooks[reg->pf][reg->hooknum]) { if (reg->priority < ((struct nf_hook_ops *)i)->priority) break; } list_add_rcu(®->list, i->prev); spin_un...

by Godbach - 内核源码 - 2008-11-26 15:40:40 阅读(2085) 回复(8)

在python 中可以对 import 进行hook, 不知道在php 能不能实现?

by junsi - PHP - 2006-11-20 18:40:12 阅读(1315) 回复(4)

  我自己做实验,在nf_register_hooks将自己定义的、包含了hook函数hook点的nf_hook_ops结构体注册到系统中后,一旦有符合条件的包出现,系统都会打印出相应的语句。   但是在看源码的时候,经常看到有如下的调用方法:     return NF_hook(PF_INET, NF_INET_PRE_ROUTING, skb, dev, NULL, ip_rcv_finish);   很不理解。难道 ip_rcv_finish 没有用 nf_register_hooks 注册进系统吗?   如果注册了,应该就直接...

by jiahehao01 - 内核源码 - 2012-08-20 09:48:27 阅读(2671) 回复(6)