上次看了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檔名即可。但我們想讓我們文章的標題顯示中文的,這樣如何...