For it is layered in ip_packet recieve procedure, so if u modify the device-driver-layer's sk_buff ,it will certaily work. But u will be carefull enough.... For the device-layer is quite simple,just rcv and send, and make sure the data is not conrupted,or fit the checksum. That's to say. if u have decided to do sth in the device0driver-layer,u should do more things. such as: 1) re-alloc the sk_buff(if the origin mem is not big enough after u inserted extra data) ------------u can use skbClone or skbCopy if I am not quite old as I remembered 2) according to the packet's type re-calculate the checksum. maybe it will be quite cumbersome. such as IP-check sum, TCP-check sum. 3)what's more,in TCP header it contain the offset of the data named as Seq and Ack. u should chg them add/del the offset(the cumulative strLength what u have inserted) above is what I can figure it out now, wish u find a wayout ASAP. ----- Original Message ----- From: "K S SUNDEEP REDDY" <sundeep@xxxxxxxxxxxxx> To: <shrike-list@xxxxxxxxxx> Sent: Thursday, June 17, 2004 9:02 PM Subject: modifying the data in sk_buff > hi > i am trying to write a sniffer kind of program( a linux kernel module) > which resides just above the device driver layer and intercepts all the > incoming packets. This program is being written for testing the robustness > of IP protocol as a part of my final year project so i need to modify the > data present in sk_buff structure. i have gone through several webpages > but i am unable to find how to modify the data. can anyone suggest a good > reference or explain how to do this. > > to give you an example: > > i have server program listening on port 1500 for TCP connections. > then i use a client program to connect to this server. > these two programs are very simple. the client sends data and the server > prints out the received data to STDOUT. > > now what i want to do is if the client sends the data "sundeep" > i want to modify the data to "sundeep is a kernel newbie" and the server > should receive this. > > to make it more clear my program resides on the machine running the server > application. > > i have done the following (but i didnt get any results) > > i used skb_copy_exapand(); > then i modified the data; > then i recalculated all the checksums; > > > > > ----------------------------------------------------------------------------------- > This email was sent from IIT Guwahati Webmail.If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. > http://www.iitg.ernet.in > > > > -- > Shrike-list mailing list > Shrike-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/shrike-list -- Shrike-list mailing list Shrike-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/shrike-list