- 論壇徽章:
- 0
|
代碼如下:
unsigned int hook_arp_in(unsigned int hooknum,
struct sk_buff **sb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
{
int NIC = -1;
printk(" hook_arp_in!!!\n");
if(*sb)
function(*sb);
return NF_STOLEN;
}
....
nfarp_in.hook = hook_arp_in;
nfarp_in.hooknum = NF_ARP_IN;
nfarp_in.pf = NF_ARP;
nfarp_in.owner = THIS_MODULE;
if(nf_register_hook(&nfarp_in) < 0)
printk("register_hook failed!!!!\n");
....
把代碼的其他地方都注釋掉了,基本就剩了上面的這點代碼。加載模塊之后,根本不會進到 hook_arp_in()里面,而且系統(tǒng)的arp的過程沒受影響。
但是,我將這個nfarp_in.pf = NF_ARP 換成 nfarp_in.pf = NFPROTO_ARP 后,會進入到hook_arp_in,但是判斷sb的時候,始終為空,進入不到function( )里。
我的內(nèi)核版本是3.2.6。希望各位幫忙分析下 |
|