亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 內(nèi)核如何實現(xiàn)實現(xiàn)替換下載 [打印本頁]

作者: mkshtk    時間: 2012-09-04 16:47
標題: 內(nèi)核如何實現(xiàn)實現(xiàn)替換下載
如題,論壇里關于修改數(shù)據(jù)包的帖子也都看了,最后云里來霧里去,完全沒思路了。本人小白,所以只能求助了。

a<->b, b<->c。b代理轉發(fā),現(xiàn)在需要在b在a和c之間通信時判斷a與b之間是否有exe或者zip的下載請求,若發(fā)現(xiàn)下載請求則將a請求的下載內(nèi)容替換成b本機上的下載內(nèi)容,偽造成a請求的文件格式發(fā)送給a。

我的思路:在a發(fā)送的請求中判斷是否有“.exe”“.zip”之類的關鍵字,如果有則b將本地的數(shù)據(jù)包偽造成a想要下載的文件發(fā)送給c。
疑問:1、在什么時候進行判斷比較好,是根據(jù)a的請求判斷還是c返回的數(shù)據(jù)包?
        2、內(nèi)核中去sk_buff判斷其中的關鍵字如:“.exe”“.zip”是否可行?ip_input.c,ip_output.c,ip_foward.c在哪里修改更好?
        3、判斷有下載請求偽造數(shù)據(jù)包后是否需要斷開a與c之間的連接?
        4、判斷有下載請求后如何讓b偽造數(shù)據(jù)包并發(fā)送?用內(nèi)核從新構建數(shù)據(jù)包?


不知道我的思路是否可行,因為是給的任務,又是小白,加上之前也沒研究過內(nèi)核,所以求助大牛們。如果思路不對,希望能給個思路,在此先謝過了。
作者: 瀚海書香    時間: 2012-09-04 17:12
回復 1# mkshtk
a<->b, b<->c。b代理轉發(fā),現(xiàn)在需要在b在a和c之間通信時判斷a與b之間是否有exe或者zip的下載請求,若發(fā)現(xiàn)下載請求則將a請求的下載內(nèi)容替換成b本機上的下載內(nèi)容,偽造成a請求的文件格式發(fā)送給a。

我的思路:在a發(fā)送的請求中判斷是否有“.exe”“.zip”之類的關鍵字,如果有則b將本地的數(shù)據(jù)包偽造成a想要下載的文件發(fā)送給c。

這樣做是可以的,但是工作量有點大啊。

如果只是實現(xiàn)這個需求,大約只需要300行左右的內(nèi)核代碼就完全可以了。
提個醒:利用http協(xié)議的redirect特點。

   
作者: Godbach    時間: 2012-09-04 17:18
本帖最后由 Godbach 于 2012-09-04 17:19 編輯

回復 1# mkshtk

這個需求修改應用層代理好了,別在內(nèi)核態(tài)折騰了,太費勁了

   
作者: mkshtk    時間: 2012-09-04 17:19
回復 2# 瀚海書香


    不太明白,斑竹能否說的明白點。空垓v一天了,到現(xiàn)在也只想出一個思路.....還有如果可以麻煩幫我解答下上面我的疑問,萬分感謝斑竹!
作者: Godbach    時間: 2012-09-04 17:20
本帖最后由 Godbach 于 2012-09-04 17:21 編輯

回復 2# 瀚海書香
好主意,Redirect 是個好方法,這樣的話,斷開連接是否還有內(nèi)核態(tài)主動完成呢。


   
作者: mkshtk    時間: 2012-09-04 17:21
回復 3# Godbach


    能說的詳細點么?我上司說內(nèi)核實現(xiàn)起來比較簡單,讓我從內(nèi)核搞.....
作者: Godbach    時間: 2012-09-04 17:21
回復 6# mkshtk
看 瀚海版主 的提醒吧


   
作者: hk2305621    時間: 2012-09-04 18:06
學習了. 兩位斑竹到了.
作者: 瀚海書香    時間: 2012-09-05 07:24
回復 5# Godbach
斷開連接是否還有內(nèi)核態(tài)主動完成呢

其實這個工作讓內(nèi)核自己做就可以了。因為應用層收到后,一般會主動來關閉的,當然有些瀏覽器沒有處理,就只能等超時了。

   
作者: 瀚海書香    時間: 2012-09-05 07:26
本帖最后由 瀚海書香 于 2012-09-05 07:27 編輯

回復 6# mkshtk
能說的詳細點么?我上司說內(nèi)核實現(xiàn)起來比較簡單,讓我從內(nèi)核搞.....

呵呵,在上司眼里,只要工作不是自己做,哪怕是讓你重寫一個unix,都認為很簡單的
   
作者: 瀚海書香    時間: 2012-09-05 07:48
回復 4# mkshtk
不太明白,斑竹能否說的明白點?折騰一天了,到現(xiàn)在也只想出一個思路.....還有如果可以麻煩幫我解答下上面我的疑問,萬分感謝斑竹!

1、在什么時候進行判斷比較好,是根據(jù)a的請求判斷還是c返回的數(shù)據(jù)包?
當然是請求包了、
2、內(nèi)核中去sk_buff判斷其中的關鍵字如:“.exe”“.zip”是否可行?ip_input.c,ip_output.c,ip_foward.c在哪里修改更好?
可行。哪里修改都不好,添加一個hook操作
3、判斷有下載請求偽造數(shù)據(jù)包后是否需要斷開a與c之間的連接?
不需要的。操作系統(tǒng)會自己斷掉的
4、判斷有下載請求后如何讓b偽造數(shù)據(jù)包并發(fā)送?用內(nèi)核從新構建數(shù)據(jù)包?
既可以alloc一個新的skb,然后復制相應的內(nèi)容;也可以直接修改原來的skb   
作者: Godbach    時間: 2012-09-05 10:05
回復 10# 瀚海書香
瀚海兄一般不這么給下屬安排工作吧 :wink:


   
作者: mkshtk    時間: 2012-09-05 17:49
回復 11# 瀚海書香


    首先謝謝兩位版主的指點,因為是編程小白也從來沒接觸過內(nèi)核,花了一天時間看了netfilter方面的資料,現(xiàn)在會hook然后判斷,但是版主說的替換原來的數(shù)據(jù)部分就不懂怎么實現(xiàn)了。是不是說我還要接受c發(fā)過來的下載文件的數(shù)據(jù)包,替換里面的data部分呢?還有就是版主說的redirect應該在哪一步去實現(xiàn)呢?能不能這樣:b接收到a的下載請求,直接根據(jù)a請求包的syn值構造一個合適的構造數(shù)據(jù)包發(fā)送給a呢?個人剛接觸編程,能力有限,公司也沒有人弄這塊,可能問題過于小白,希望版主多多見諒~~~
作者: 瀚海書香    時間: 2012-09-05 19:29
回復 12# Godbach
現(xiàn)在在新單位,沒有下屬了

在老單位的時候,也不會給大家分配不熟悉的領域作為主要工作的。

   
作者: Godbach    時間: 2012-09-05 23:35
回復 13# mkshtk

skb 這個核心的的數(shù)據(jù)結構你要了解。這是前提。

瀚海版主的建議就是修改你截獲到的 GET 請求,構造一個 Redirect 應答。GET 請求和應答不再在于 7 層的內(nèi)容不一樣,而且數(shù)據(jù)包的發(fā)送方和接收方也不一樣,這些都是修改數(shù)據(jù)包時要考慮的地方。

   
作者: mkshtk    時間: 2012-09-08 16:12
回復 15# Godbach


    謝謝版主的提醒,這兩天看了版主以前寫的關于構造數(shù)據(jù)包的帖子,試著修改get請求,然后發(fā)送回去。由于本人太笨,在構造redirect包的時候遇到問題解決不了。ack_seq的值怎么弄?是在get請求包的基礎上+1?redirect到其他的地址后能直接下載么?tcp不是三次握手的么?redirect的結構是不是這樣的:HTTP/1.1 302 Found   Date:....  Server:....  Location:.... Content-type:...  ?  還有就是不知道版主有沒有關于redirect的結構方面的文章推薦下,謝謝~
作者: Godbach    時間: 2012-09-09 01:40
回復 16# mkshtk

你的問題都說明了一些基礎知識的欠缺,比如 TCP 協(xié)議號的維護、HTTP 協(xié)議的 Redirect 應答等。建議你系統(tǒng)的加強一下。

   
作者: mkshtk    時間: 2012-09-12 15:58
回復 17# Godbach


    感謝版主,TCP序列號的維護已經(jīng)解決,單關于redirect方面的真心沒找到合適的資料,能否推薦下關于內(nèi)核構建http重定向方面的資料,謝謝
作者: hmsghnh    時間: 2012-09-13 10:10
兩位版主不要好心做壞事啊!
樓主這不是想掛載木馬的吧?
掛馬的人的不得好死。
作者: mkshtk    時間: 2012-09-13 10:24
回復 19# hmsghnh


    不是掛馬,工作需要。而且樓上你說話很幼稚~~~
作者: hmsghnh    時間: 2012-09-13 10:40
反正不管什么用途,這都是一個很齷齪的做法回復 20# mkshtk


   
作者: jzwxh77    時間: 2012-09-13 15:00
本帖最后由 jzwxh77 于 2012-09-13 15:12 編輯

使用端口重定向吧,這樣簡單,應用層就能解決!
1先配置一個防火墻規(guī)則,將所有的http或ftp請求都從定向到代理服務軟件的端口。
2 實現(xiàn)代理服務軟件,開個socket接收通過重定向發(fā)到端口的請求,判斷請求是否轉發(fā),如果是zip,就不轉發(fā),讀取文件,將文件內(nèi)容通過socket傳回。如果是需要轉發(fā)的請求,再開一個socket轉發(fā)出去。最后接收將所有的轉發(fā)回應包,并通過前一個socket原樣轉發(fā)給客戶端。

作者: cquyx    時間: 2012-09-20 14:57
SQUID  非常容易實現(xiàn)的




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2