Linux下的網路HOOK實現以及使用方法

2021-06-04 23:41:21 字數 2058 閱讀 6100

最近瘋狂的研究linux的種種功能,也頗有心得,這裡講述一下linux下的net的hook,使用net的hook可以實現很多很多非常底層的功能,比如過濾報文,做防火牆,做**等等。

now,let's go!

使用的是linux 2.6.19.1的核心**。

首先是 在./source/net/netfilter/core.c檔案中的函式 nf_register_hook:

static define_spinlock(nf_hook_lock);

int nf_register_hook(struct nf_hook_ops *reg)

list_add_rcu(®->list, i->prev);

spin_unlock_bh(&nf_hook_lock);

synchronize_net();

return 0;

}export_symbol(nf_register_hook);

void nf_unregister_hook(struct nf_hook_ops *reg)

export_symbol(nf_unregister_hook);

int nf_register_hooks(struct nf_hook_ops *reg, unsigned int n)

export_symbol(nf_register_hooks);

void nf_unregister_hooks(struct nf_hook_ops *reg, unsigned int n)

status=nf_accept;

}return(status);

}下面是初始化一些引數的函式

static int arpstar_init(void)

下面是函式結束時候的清理工作

static void arpstar_exit(void)

list_add_rcu(®->list, i->prev);

spin_unlock_bh(&nf_hook_lock);

synchronize_net();

return 0;

}export_symbol(nf_register_hook);

void nf_unregister_hook(struct nf_hook_ops *reg)

export_symbol(nf_unregister_hook);

int nf_register_hooks(struct nf_hook_ops *reg, unsigned int n)

export_symbol(nf_register_hooks);

void nf_unregister_hooks(struct nf_hook_ops *reg, unsigned int n)

status=nf_accept;

}return(status);

}下面是初始化一些引數的函式

static int arpstar_init(void)

下面是函式結束時候的清理工作

static void arpstar_exit(void)

我們知道windows下面也有hook的功能,但是要hook到net的底層,一般是使用ndis來實現,但是linux就提供了如此強大的功能,讓我們不得不佩服linux的偉大。幾天的研究讓我越來越對linux的推崇!而且我想linux在嵌入式方面的應用會更加廣泛!

這幾天也在看一些嵌入式的資料,想想,這個世界真的可以因為linux的改變而改變,相對來說windows的**保密性會失去很多嵌入式方面的開發者的!

cv);

del_timer(&watimer);

free_list();

kfree(tmac);

}我們知道windows下面也有hook的功能,但是要hook到net的底層,一般是使用ndis來實現,但是linux就提供了如此強大的功能,讓我們不得不佩服linux的偉大。幾天的研究讓我越來越對linux的推崇!而且我想linux在嵌入式方面的應用會更加廣泛!

這幾天也在看一些嵌入式的資料,想想,這個世界真的可以因為linux的改變而改變,相對來說windows的**保密性會失去很多嵌入式方面的開發者的!

C 實現svn server端的hook

目標 要做的東東呢,就是在向svn提交檔案的時候,可以再server端讀到所有提交檔案的內容,並根據某些規則驗證檔案的合法性,如果驗證失敗,則終止提交,並在svn的客戶端上顯示錯誤資訊。準備工作 1,安裝svn server,本文例子使用的是collabnetsubversion server 1....

linux下的網路設定

第一步 網絡卡ip配置 vim etc network inte ces 檔案內容如下 auto eth0 iface eth0 inet static address 192.168.1.162 netmask 255.255.255.0 geteway 192.168.1.1 第二步 配置dns...

linux下的網路管理

圖形化管理介面 指令setup 修改允許訪問埠1100 第一步 修改配置檔案 vi etc sysconfig iptables a rh firewall 1 input m state state new m tcp p tcp dport 1100 j accept 第二步 重啟生效 serv...