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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: Godbach
打印 上一主題 下一主題

Linux內(nèi)核發(fā)送構(gòu)造數(shù)據(jù)包的方式 [復(fù)制鏈接]

論壇徽章:
0
41 [報(bào)告]
發(fā)表于 2009-09-03 11:42 |只看該作者
我看的2.6.28內(nèi)核里面協(xié)議棧中的路由選擇是在NF_IP_LOCAL_OUT之前啊,在ip_queue_xmit或者udp_sendmsg里面
就是說這里必須自己來選擇路由

只要路由選定了,它對(duì)應(yīng)的neighbour也就定了,需不需要arp請(qǐng)求那就是neighbour子系統(tǒng)的事情了

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
42 [報(bào)告]
發(fā)表于 2009-09-03 13:28 |只看該作者
如果是在FORWARD點(diǎn)上修改了數(shù)據(jù)包,應(yīng)該也需要查路由吧,之后發(fā)送的時(shí)候應(yīng)該走那個(gè)hook點(diǎn)呢。

論壇徽章:
0
43 [報(bào)告]
發(fā)表于 2009-09-03 20:06 |只看該作者
原帖由 Godbach 于 2009-9-3 13:28 發(fā)表
如果是在FORWARD點(diǎn)上修改了數(shù)據(jù)包,應(yīng)該也需要查路由吧,之后發(fā)送的時(shí)候應(yīng)該走那個(gè)hook點(diǎn)呢。


看代碼的話整個(gè)forward流程似乎只在ip_rcv_finish中調(diào)用ip_route_input查了一次路由
這么說來如果在forward中修改了數(shù)據(jù)包的目的地址,那么是否可以這樣:
假如目的地址改成本地的,交給dst_input處理,走ip_local_deliver
假如目的地址非本地,直接返回NF_ACCEPT繼續(xù)按原路走下去,也就是被forward

本人沒什么修改數(shù)據(jù)包的經(jīng)驗(yàn),純粹憑想象瞎說。

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
44 [報(bào)告]
發(fā)表于 2009-09-03 20:38 |只看該作者
假如目的地址改成本地的,交給dst_input處理,走ip_local_deliver

那就相當(dāng)于讓包會(huì)退到PREROUTING之后,查路由之前了

論壇徽章:
0
45 [報(bào)告]
發(fā)表于 2009-09-05 08:35 |只看該作者
(2),oldskb的由誰進(jìn)行釋放了?

這個(gè)問題好解答
static unsigned int reject(struct sk_buff **pskb,
                           const struct net_device *in,
                           const struct net_device *out,
                           unsigned int hooknum,
                           const void *targinfo,
                           void *userinfo)
{


      。。。。。。。。。


        case IPT_TCP_RESET:
                send_reset(*pskb, hooknum);
        case IPT_ICMP_ECHOREPLY:
                /* Doesn't happen. */
                break;
        }

        return NF_DROP;
}


當(dāng)reject 函數(shù)返回值為NF_DROP, 上一層函數(shù)自動(dòng)會(huì)free skb

論壇徽章:
36
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-10 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-16 06:20:0015-16賽季CBA聯(lián)賽之廣東
日期:2016-04-16 19:59:32IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-19 06:20:00每日論壇發(fā)貼之星
日期:2016-04-19 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-08 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00每日論壇發(fā)貼之星
日期:2016-05-28 06:20:00
46 [報(bào)告]
發(fā)表于 2009-09-05 10:54 |只看該作者

回復(fù) #45 xduser 的帖子

是的,多謝LS的。一直光記著分析send_reset,忘了它其實(shí)只是REJECT模塊的子函數(shù)。返回DROP正好。

論壇徽章:
0
47 [報(bào)告]
發(fā)表于 2009-10-02 00:44 |只看該作者
我是菜鳥 我不懂

論壇徽章:
0
48 [報(bào)告]
發(fā)表于 2009-10-06 03:18 |只看該作者
學(xué)習(xí)

論壇徽章:
2
巨蟹座
日期:2014-03-09 21:37:25射手座
日期:2014-04-16 16:23:03
49 [報(bào)告]
發(fā)表于 2009-10-08 23:58 |只看該作者
留個(gè)名,有空再看!以前曾經(jīng)仿照send_reset寫過一個(gè)HTTP劫持模塊,從未想過系統(tǒng)地去分析總結(jié),Godbach強(qiáng)!

論壇徽章:
0
50 [報(bào)告]
發(fā)表于 2009-11-06 17:41 |只看該作者
send_reset()實(shí)現(xiàn)的路由基本是由       
        fl.fl_ip_sport = otcph.dest;
        fl.fl_ip_dport = otcph.source;
        dst = ip6_route_output(NULL, &fl);
來實(shí)現(xiàn)的,最后,NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, nskb, NULL, nskb->dst->dev,dst_output);過程去節(jié)間調(diào)用dev_queue_xmit()來把封裝好的幀發(fā)送出去。

現(xiàn)在,有點(diǎn)疑惑,如果我直接在hook中去實(shí)現(xiàn)封裝發(fā)送數(shù)據(jù)包。對(duì)數(shù)據(jù)包的封裝,最后調(diào)用dev_queue_xmit()來發(fā)送,但,前提是,我沒有手動(dòng)去封裝MAC頭,這是不是,我要手動(dòng)去路由一次,才行?

是不是也是通過fl.fl_ip_sport = otcph.dest;
        fl.fl_ip_dport = otcph.source;
        dst = ip6_route_output(NULL, &fl);來實(shí)現(xiàn)?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP