资源简介
Qt:Qt实现飞秋拦截助手—ARP攻击 完整项目代码
https://blog.csdn.net/qq_29542611/article/details/84874367
代码片段和文件信息
#include “arpacceptthread.h“
ArpAcceptThread::ArpAcceptThread(Qobject *parent) : QThread(parent)
{
}
ArpAcceptThread::ArpAcceptThread(QString adapterNameQString ip){
char errbuf[PCAP_ERRBUF_SIZE];
// 打开设备
if ((this->mAdapterHandle = pcap_open(adapterName.toLatin1().data() // 设备名
65536 // 65535保证能捕获到不同数据链路层上的每个数据包的全部内容
PCAP_OPENFLAG_PROMISCUOUS // 混杂模式
1000 // 读取超时时间
nullptr // 远程机器验证
errbuf // 错误缓冲池
)) == nullptr)
{
qDebug() << “设备打开失败!!!!“ ;
}
this->mIP = ip;
}
void ArpAcceptThread::run(){
if( this->mAdapterHandle == nullptr){
qDebug() << “网卡设备没有开启“;
return;
}
int res;
struct tm *ltime;
char timestr[16];
struct pcap_pkthdr *header;
const u_char *pkt_data;
time_t local_tv_sec;
struct bpf_program fcode;
QMap info;
// 表达式 (arp[16:2]&0x00010!=0) and (dst host 192.168.1.2)
// (arp[6:2]&0x0002!=0) 过滤ARP应答
// http://www.ferrisxu.com/WinPcap/html/group__language.html 过滤表达
QString exp = QString(“(arp[6:2]&0x0002!=0)“);
// compile the filter
if (pcap_compile(this->mAdapterHandle &fcode exp.toStdString().c_str() 1 0) < 0)
{
qDebug() << “pcap_compile error:“ << pcap_geterr(this->mAdapterHandle);
}
// set the filter
if (pcap_setfilter(this->mAdapterHandle &fcode) < 0)
{
qDebug() << “pcap_setfilter error“;
}
// 获取数据包
while((res = pcap_next_ex( this->mAdapterHandle &header &pkt_data)) >= 0){
if( this->isAccept == false)
break;
if(res == 0)
// 超时时间到
continue;
// 将时间戳转换成可识别的格式
local_tv_sec = header->ts.tv_sec;
ltime=localtime(&local_tv_sec);
strftime( timestr sizeof timestr “%H:%M:%S“ ltime);
printf(“%s%.6d len:%d\n“ timestr header->ts.tv_usec header->len);
fflush(stdout);
const ArpPackage *package = reinterpret_cast(pkt_data);
struct in_addr addr ;
memcpy(&addr.S_un.S_addrpackage->arpBody.srcIpAddr4);
info[“ip“] = inet_ntoa(addr);
qDebug() << “ip=“ << inet_ntoa(addr);
// 从视觉上看 macCh已经转为本地字节序
char macCh[18] = {0};
Utils::macToHexString(package->arpBody.srcEthAddrmacCh);
qDebug() << “mac=“ << macCh;
info[“mac“] = QString(macCh);
emit acceptArp(info);
}
if(res == -1){
qDebug() << “Error reading the packets: “<< pcap_geterr(this->mAdapterHandle);
}
emit acceptDone();
}
void ArpAcceptThread::stopAccept(){
this->isAccept = false;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3231 2018-12-06 17:43 FQ_Intercept_Helper\arpacceptthread.cpp
文件 847 2018-12-06 14:03 FQ_Intercept_Helper\arpacceptthread.h
文件 3663 2018-12-07 14:29 FQ_Intercept_Helper\arpattackthread.cpp
文件 1026 2018-12-07 13:20 FQ_Intercept_Helper\arpattackthread.h
文件 3587 2018-12-07 13:21 FQ_Intercept_Helper\arpsendthread.cpp
文件 857 2018-12-07 13:21 FQ_Intercept_Helper\arpsendthread.h
文件 229 2018-12-06 20:04 FQ_Intercept_Helper\buttonlist.cpp
文件 310 2018-12-06 20:08 FQ_Intercept_Helper\buttonlist.h
文件 2148 2018-12-07 13:25 FQ_Intercept_Helper\buttonlist.ui
文件 1759 2018-12-06 21:21 FQ_Intercept_Helper\FQ_Intercept_Helper.pro
文件 24337 2018-12-06 19:36 FQ_Intercept_Helper\FQ_Intercept_Helper.pro.user
文件 306 2018-12-02 17:07 FQ_Intercept_Helper\main.cpp
文件 1067654 2018-12-06 14:38 FQ_Intercept_Helper\oui.json
文件 4037092 2018-12-06 14:38 FQ_Intercept_Helper\oui.txt
文件 1345 2018-12-06 14:28 FQ_Intercept_Helper\updatemacthread.cpp
文件 694 2018-12-06 14:27 FQ_Intercept_Helper\updatemacthread.h
文件 2848 2018-12-03 18:40 FQ_Intercept_Helper\utils.cpp
文件 2168 2018-12-03 18:40 FQ_Intercept_Helper\utils.h
文件 11665 2018-12-07 14:28 FQ_Intercept_Helper\widget.cpp
文件 1466 2018-12-07 13:06 FQ_Intercept_Helper\widget.h
文件 3772 2018-12-06 19:39 FQ_Intercept_Helper\widget.ui
目录 0 2018-12-07 14:29 FQ_Intercept_Helper
----------- --------- ---------- ----- ----
5171004 22
相关资源
- windows下基于QT5.7的mqttClient测试上位机
- Qt5 模拟登录百度
- SSD源码的QT工程
- QT点餐系统
- qt实现本地\\网络图片查看器
- QT5学习资料
- qt4-24小时学会教程.
- 基于qt实现的贪吃蛇游戏
- 视频播放 Qt 4
- 串口调试助手源代码 VS+Qt
- QT GUI 界面风格模板 源码
- 简易计算器源码
- Qt课程项目
- 非常详细的QT4教程
- QT图形上位机
- 百度云IoT物联网平台 -ESP8266-MQTT 1路开
- OneNet云IoT物联网平台 ESP8266 MQTT 1路开
- 嵌入式Qt5.6应用编程之触摸屏控制LE
- 基于Qt5的俄罗斯方块游戏
- opencv+qt通过CGI读取网络摄像头工程
- qt贪吃蛇源代码
- Qt Creator中的3D绘图及动画教程(参照
- Qt实现的迷宫游戏_源码生成+寻路
- QT聊天室类似飞秋
- 本科毕业论文 基于QT的嵌入式终端应
- AutoCAD绘图交换文件DXF实体对象说明
- Qt学习之路2带目标可注释版pdf
- zw_Qt通过串口读单片机温度数据画动态
- Qt点餐管理系统
- Qt自定义按钮
评论
共有 条评论