Archive for the ‘python’ Category

Python编写网络抓包脚本

Friday, July 18th, 2008

Ethereal 自带许多协议的 decoder,简单,易用,基于winpcap的一个开源的软件.但是它的架构并不灵活,如何你要加入一个自己定义的的解码器,得去修改Ethereal的代码,再重新编译,很烦琐.对于一般的明文 协议,没有什么问题,但是对于加密协议,比如网络游戏,客户端程序一般会在刚连接上的时候,发送一个随机密钥,而后的报文都会用这个密钥进行加密,如此.要想破解,得要有一个可编程的抓包器. libpcap是一个不错的选择,但是对于抓包这样需要反复进行”试 验->修改”这个过程的操作,c 语言显然不是明智的选择. Python提供了几个libpcapbind,http://monkey.org/~dugsong/pypcap/这里有 一个最简单的。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用 Google code地址:http://code.google.com/p/pypcap/ >>> import dpkt, pcap >>> pc = pcap.pcap() >>> pc.setfilter('icmp') >>> for ts, pkt in pc: ...     print `dpkt.ethernet.Ethernet(pkt)` ... Ethernet(src='\x00\x03G\xb2M\xe4', dst='\x00\x03G\x06h\x18', data=IP(src='\n\x00\x01\x1c', dst='\n\x00\x01\x10', sum=39799, len=60, p=1, ttl=128, id=35102, data=ICMP(sum=24667, type=8, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi')))) Ethernet(src='\x00\x03G\x06h\x18', dst='\x00\x03G\xb2M\xe4', data=IP(src='\n\x00\x01\x10', dst='\n\x00\x01\x1c', sum=43697, len=60, p=1, ttl=255, id=64227, data=ICMP(sum=26715, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi')))) ^CTraceback (most recent call ...

IndentationError: unexpected indent 是缩进的问题,也有可能是tab和空格混用啦

Tuesday, July 1st, 2008

python版本 Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. **************************************************************** Personal firewall software may warn about the connection IDLE makes to its subprocess using this computer's internal loopback interface.  This connection is not visible on any external interface and no data is sent ...

卸掉3.0a5装上2.5.2

Tuesday, June 10th, 2008

本想狠点直接退到2.2.3(官方貌似不提供2.2.2版本下载啦)的,想想还是先用这个最新的正式版本吧(Python 2.5.2 ) 简单试啦一下: print不用加括号和加括号一样正确(一) callable可以用啦(在3.0a5中这个在被删掉builtins之列)(二) 主版本号还在2和学习材料(Python 2.2.2)还能多少对起来(再调试不了就接着查看原因看是否需要跳回前一版本!!) 3.0a5的说明: Python 3.0a5 (py3k:62932M, May 9 2008, 16:23:11) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. **************************************************************** Personal firewall software may warn about the connection IDLE makes to its subprocess using this computer's internal ...