在2 6 30上修改以及重構skb

2021-05-24 06:35:53 字數 1712 閱讀 8830

上次看了ubuntuer兄寫的教你修改以及重構skb ,受益匪淺,真是經典之作。

但ubuntuer兄的**是基於2.6.18的,比較舊。今天經過摸索,我終於讓其可以在2.6.30上執行了,**如下:

skb_diy.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

module_license("gpl");

module_author("[email protected]");

#define eth "eth0"

#define sip "192.168.238.180"

#define dip "192.168.1.101"

#define sport 39804

#define dport 80

unsigned char smac[eth_alen] = ;

unsigned char dmac[eth_alen] = ;

int cp_dev_xmit_tcp (char * eth, u_char * smac, u_char * dmac,

u_char * pkt, int pkt_len,

u_long sip, u_long dip,

u_short sport, u_short dport, u_long seq, u_long ack_seq, u_char psh, u_char fin)

skb->csum = skb_checksum (skb, iph->ihl*4, skb->len - iph->ihl * 4, 0);

tcph->check = csum_tcpudp_magic (sip, dip, skb->len - iph->ihl * 4, ipproto_tcp, skb->csum);

if (0 > dev_queue_xmit(skb)) goto out;

nret = 0;

out:

if (0 != nret && null != skb)

return (nret);

}static int __init init(void)

static void __exit fini(void)

module_init(init);

module_exit(fini);

makefile:

pwd:=$(shell pwd)

kernel_src = /lib/modules/`uname -r`/build

obj-m:=skb_diy.o

skb_diy-objs:=skb.o

all:

make -c $(kernel_src) m=$(pwd) modules

clean:

rm -f *.o

rm -f *.ko

rm -f .*.cmd

rm -rf .tmp_versions

rm -f *.mod.c

rm -f *.symvers

rm -f *.order

7 撤銷修改以及刪除檔案

撤銷修改以及刪除檔案 一 撤銷修改 場景一 當你改亂了工作區中的檔案內容時,想直接丟棄工作區的修改,我們可以使用 git checkout file命令完成,下面進行舉例說明 當然,我相信大家平時是不會報錯的,但是現在情況比較特殊,時間很趕,你要給boss提交乙份報告,現在是凌晨兩點鐘,你心裡有些不...

修改以及設計好的表

1.修改表字段 use entrancevista alter table ry stay info alter column wza nvarchar 50 alter table ry stay info alter column wzb nvarchar 50 2.新增主鍵 新增主鍵之前先要讓...

hexo的url路徑修改以及發布與修改時間

hexo預設url是年 月 日,這樣其實不利於seo。hexo生成新文章命令,hexo new layout 這個title最好是英文的,因為我們要把這個title放在url裡,如何修改這個title呢?那就是去source資料夾裡直接修改.md檔名即可。但我們想讓我們文章的標題顯示中文的,這樣如何...