My host os is ubuntu12.04, my iptables version is v1.4.12, libmnl-1.0.3, libnetfilter_queue-1.0.2, libnfnetlink-1.0.1. First of all, I execeuted iptable commans "iptables -A -p tcp --dport 80 -J NFQUEUE" to import the ip packet to the NFQUEUE, and then I use libnetfilter_queue to copy the packets to the user layer, and then I modify the payload of the packet, rebuild the ip checksum and tcp checksum. finally, I call nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL) to injection the packet to the kernel. But it doesn't work. I use wireshare to capture the packet, I find than, my own data can't set to the packet.