昨天心血来潮,想看一看怎么抓包的。没有玩过tcpdump之类的东西,心想还是自己写程序看看吧。python下有pcap和dpkt两个包,在google code上都能找到。设置一下,很容易查看。就是文档比较少,自己摸索一下吧。

昨晚还玩了一下ilasm.exe和ildasm.exe,原来破解.Net程序也很容易,不过有些加壳的要先脱壳。还安装了一些乱七八糟的软件,如Fiddler2,不过我还是喜欢Firebug多一些。

下面仅仅是简单的示例,具体还得自己根据自己的需要去写代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 import time
import pcap
import dpkt
from dpkt.ip import IP
from dpkt.tcp import TCP
from dpkt.udp import UDP
from dpkt.http import
from dpkt.ethernet import Ethernet

pc=pcap.pcap() #注,参数可为网卡名,如eth0
#pc.setfilter(’tcp port 80’) #设置监听过滤器
#ip = IP()

def formattime(t): #日期字段格式化
return time.strftime(’%c’,time.gmtime(t+8
3600))

for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
p=Ethernet(pdata)

try:
sStr1 = p.data.data.data
srcip=’%d.%d.%d.%d’%tuple(map(ord,list(p.data.src)))
ip=’%d.%d.%d.%d’%tuple(map(ord,list(p.data.dst)))

print ‘=========================================================’
print ’time = ‘,formattime(ptime)
print p.data.class.name
print p.data.data.class.name
print ‘%s——->%s,PORT:%d’ %(srcip,ip,p.data.data.dport)
print ‘data = ‘,sStr1
except:
pass