yywx1314 发表于 2016-05-04 19:53

netfilter内核修改点东西,可以出钱,有能力的希望可以帮助下我

netfilter下要获取http请求的相关参数,从SKB里获取http的请求相关内容,不需要写什么勾子什么的,只要告诉我怎么从skb里获取到http的内容就行了,可以出钱请人帮写代码,有能力的希望留下联系方式,谢谢了。

Godbach 发表于 2016-05-04 22:08

回复 1# yywx1314

LZ 觉得难点在于什么。skb 都可以拿到,那就按照 skb->data 然后自己一点一点取数据就行了。

看一下置顶精华帖中构造 skb 的帖子,无非就是取出 iphdr,然后再取出 tcphdr,然后再解析出 tcp payload。然后解析出payload 中最开始的 GET /XXX 的数据就 OK 了。


   

yywx1314 发表于 2016-05-04 22:33

解析出 tcp payload这里是难点,我怎么都解析不出这里

yywx1314 发表于 2016-05-04 22:33

我是centos7,内核是3.10.0

yywx1314 发表于 2016-05-04 22:34

Godbach 发表于 2016-05-04 22:08 static/image/common/back.gif
回复 1# yywx1314

LZ 觉得难点在于什么。skb 都可以拿到,那就按照 skb->data 然后自己一点一点取数据就 ...

前辈可以给个具体的实现代码吗?

Godbach 发表于 2016-05-04 22:46

回复 5# yywx1314

解析 iphdr 你知道怎么获取吗?


   

yywx1314 发表于 2016-05-04 23:12

Godbach 发表于 2016-05-04 22:46 static/image/common/back.gif
回复 5# yywx1314

解析 iphdr 你知道怎么获取吗?
struct sk_buff *sk = NULL;
sk = skb_copy(skb, GFP_ATOMIC);
struct iphdr *iph = ip_hdr(sk);
struct tcphdr *tcph;
char * payload = NULL;
tcph = (void*)iph + iph->ihl * 4;
if (iph->protocol == IPPROTO_TCP)
        {

        int daddr = iph->daddr;
        int dport = tcph->dest;
        int port = ntohs(dport);
        if (likely(port == 80)) {
                if (0 != skb_linearize(skb)) {
                                return NF_ACCEPT;
                }

                payload = skb->data + 40
                pr_warn("plyload数据 %s\n", payload);//我这里输出的好像不对,是乱码,而且每次刷新都不一样

        }
}


我是这样的,你看对吗?

yywx1314 发表于 2016-05-04 23:13

Godbach 发表于 2016-05-04 22:46 static/image/common/back.gif
回复 5# yywx1314

解析 iphdr 你知道怎么获取吗?

前辈,加个Q吧,我的QQ:五八74九7

Godbach 发表于 2016-05-04 23:37

回复 7# yywx1314

                payload = skb->data + 40
                pr_warn("plyload数据 %s\n", payload);//我这里输出的好像不对,是乱码,而且每次刷新都不一样

通过 tcph 取出 payload,不要用 skb->data + 40。你怎么保证一定是 40 bytes 之后就是 payload 呢。

送你一行代码试试 {:qq28:}unsigned char *tcp_appdata = (unsigned char *) tcph + (tcph->doff << 2);

Godbach 发表于 2016-05-04 23:38

回复 8# yywx1314

六位 qq 号,很流弊的样子。{:qq11:}


   
页: [1] 2 3 4
查看完整版本: netfilter内核修改点东西,可以出钱,有能力的希望可以帮助下我