前段时间在研究抓包程序,写个测试程序,目的是为了获取网上社区的帐号(比如:腾讯微博),但是没有完成。将代码贴在此处,方便以后查询学习。如果有疑问,还望指出!
完成的工作有:源mac地址、目的mac地址、源ip、目的ip、判断是tcp还是udp,然后去掉对应的头部。
未完成的工作有:由于http的头部不固定长度,所以难以定义一个结构体去掉http头部,有个判断条件是http头部结尾有连续的两个“\r\n\r\n”,依据这个可以去掉http头部。去掉之后,需要分析网上社区的协议来获取相应的社区帐号或者内容,当然内容有可能是加密的,这就要解密了。
我写了两种版本的代码,一种是使用socket,一种是使用libpcap
liibpcap版本代码:http://www.oschina.net/code/snippet_2323523_51192
结果:
socket版本代码:http://www.oschina.net/code/snippet_2323523_51193
结果: