資源簡介
Qt:Qt實(shí)現(xiàn)飛秋攔截助手—ARP攻擊 完整項(xiàng)目代碼
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];
????//?打開設(shè)備
????if?((this->mAdapterHandle?=?pcap_open(adapterName.toLatin1().data()??????????//?設(shè)備名
??????????????????????????????????????????65536????????????//?65535保證能捕獲到不同數(shù)據(jù)鏈路層上的每個(gè)數(shù)據(jù)包的全部內(nèi)容
??????????????????????????????????????????PCAP_OPENFLAG_PROMISCUOUS????//?混雜模式
??????????????????????????????????????????1000?????????????//?讀取超時(shí)時(shí)間
??????????????????????????????????????????nullptr?????????????//?遠(yuǎn)程機(jī)器驗(yàn)證
??????????????????????????????????????????errbuf????????????//?錯(cuò)誤緩沖池
??????????????????????????????????????????))?==?nullptr)
????{
????????qDebug()?<“設(shè)備打開失敗!!!!“?;
????}
????this->mIP?=?ip;
}
void?ArpAcceptThread::run(){
????if(?this->mAdapterHandle?==?nullptr){
????????qDebug()?<“網(wǎng)卡設(shè)備沒有開啟“;
????????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;
????//?表達(dá)式?(arp[16:2]&0x00010!=0)?and?(dst?host?192.168.1.2)
????//?(arp[6:2]&0x0002!=0)?過濾ARP應(yīng)答
????//?http://www.ferrisxu.com/WinPcap/html/group__language.html?過濾表達(dá)
????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“;
????}
????//?獲取數(shù)據(jù)包
????while((res?=?pcap_next_ex(?this->mAdapterHandle?&header?&pkt_data))?>=?0){
????????if(?this->isAccept?==?false)
????????????break;
????????if(res?==?0)
????????????//?超時(shí)時(shí)間到
????????????continue;
????????//?將時(shí)間戳轉(zhuǎn)換成可識(shí)別的格式
????????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=“?<????????//?從視覺上看?macCh已經(jīng)轉(zhuǎn)為本地字節(jié)序
????????char?macCh[18]?=?{0};
????????Utils::macToHexString(package->arpBody.srcEthAddrmacCh);
????????qDebug()?<“mac=“?<????????info[“mac“]?=?QString(macCh);
????????emit?acceptArp(info);
????}
????if(res?==?-1){
????????qDebug()?<“Error?reading?the?packets:?“<mAdapterHandle);
????}
????emit?acceptDone();
}
void?ArpAcceptThread::stopAccept(){
????this->isAccept?=?false;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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
評(píng)論
共有 條評(píng)論