抓包工具的进展(二)

 
抓包工具的进展(二)
(一)完成程序框架,调试,出错显示"数据被截断",且三个数据表均有此错误.
 
解决方法:
 
将CRecordSet继承的和表相关的类的cpp文件中的
RFX_Text(pFX,_T("[Data]"),m_Data);改为RFX_Text(pFX,_T("[Data]"),m_Data,400);原本在数据库表中定义的此项长度为300,可能因为长度较长的原因,导致数据被截断.一般在255以下不会截断.
 
(二)主窗口OnInitDialog返回return TRUE时出错。
debug后发现是在m_SPeer调用Find成员函数时,执行Open()时出错,解决方法是将Open()的调用去掉,因为在主窗口初始化时已经Open过了。
试图打开已经打开的表会出现内存写的错误。
 
目前尚不能实现的:
IsSkype()判断是否为Skype通话的函数还未实现,其实现依赖于Skype通话的识别研究的结果。
 
下一步计划:
一.m_SPeer中增加一项数据用以存储正在通话过程中的可以发送的干扰数据包,已经填弃好IP头和TCP/UDP头及干扰包的数据。等到需要发送的时候直接将此项的数据作为干扰包发送出去,不必再重复自己填充数据包。
而对于新发现的skype通话,则在存储至m_SPeer的过程中,就计算好待发送的干扰数据包头及数据内容。
 
实现步骤:
1.在存储通话至m_SPeer时,计算好干扰数据包并存储.
2.在需要发送干扰数据包时,从m_SPeer中取出已计算好的即可.
3.发送干扰数据包的函数SendPkt的参数只需两个,一个是数据包的总长,另一个是数据包的内容char *型.
 
1.计算干扰数据包
FillPacket
将CString转换为char* 的方法
CString str;
str = "aaa";
char *p = (char *)(LPCTSTR)str;
 
2.在子线程中判定为skype通话后,再查m_SPeer中是否已存在此通话,如未存在,则分析计算数据并存储至m_SPeer,如已存在,则取出其中计算好的数据包直接调用send发送
 
3.send的参数需增中目的IP地址及目的端口,这样在调用SEND函数时无需再分析数据,直接sendto至指定目的地址及端口.
 
 
目前进度:
 
可运行,但中途会死.原因待查.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值