摘要:開源項(xiàng)目起因最近做病毒分析的時候遇到遠(yuǎn)控馬,需要記錄連接的遠(yuǎn)程地址用火絨劍或者可以看到一部分,但是我想要更全面的信息,于是搗鼓了和。使用比較簡單,但是只能看到的流量,雖然能捕獲所有流量,但沒法過濾特定進(jìn)程的包,而且過濾規(guī)則對我來說太復(fù)雜了。
開源項(xiàng)目QPA
起因
最近做病毒分析的時候遇到遠(yuǎn)控馬,需要記錄連接的遠(yuǎn)程地址!用火絨劍或者ProcessMonitr可以看到一部分,但是我想要更全面的信息,于是搗鼓了WireShark和Fiddler。Filddler 使用比較簡單,但是只能看到http的流量,WireShark 雖然能捕獲所有流量,但沒法過濾特定進(jìn)程的包,而且過濾規(guī)則對我來說太復(fù)雜了。感慨之際找到了一個名為openQPA的開源項(xiàng)目,這里是項(xiàng)目主頁
體驗(yàn)
然后開開心心下載源碼下來,程序是用PyQt4寫的,還有兩個依賴庫httplib2和dpkt,pip install安裝好后雙擊 QPA.py 打開程序,第一印象:丑,這布局也太丑了吧!窗口還不能拉伸...
吐槽了一下界面,然后體驗(yàn)下功能,發(fā)現(xiàn)捕獲進(jìn)程包這功能是真的太強(qiáng)了
還有數(shù)據(jù)包分析的功能,P.S.這布局我真的很難忍受
除此之外還能添加數(shù)據(jù)包分析,總體來說功能十分強(qiáng)大,如果你沒有強(qiáng)迫癥就使用這個吧!反正我不太能忍受這界面,且我只需要捕獲進(jìn)程數(shù)據(jù)包那個功能,然后自己用 WireShark 分析數(shù)據(jù)包。所以就需要在下面這么多文件中定位到捕獲進(jìn)程數(shù)據(jù)包的代碼位置
調(diào)試源碼梳理項(xiàng)目
可以看到項(xiàng)目 ReadMe 中說明了其中幾個文件的作用
然后用VS Code和python插件來調(diào)試源碼梳理項(xiàng)目流程,開始就是針對性下斷點(diǎn),先猜測功能然后下斷點(diǎn)印證,這是個比較漫長的過程,我就不截圖了!最后知道數(shù)據(jù)包分析的文件是analysis2.py,dpcap.py以及calc.py,程序的界面主要是在html,css和js的地方,Window.py用于初始化界面以及捕獲進(jìn)程包,QPA.py是程序的入口文件。我需要捕獲進(jìn)程數(shù)據(jù)包功能,所以直接聚焦于Window.py和QPA.py文件
核心功能定位
先大致看下函數(shù)名稱,在可疑函數(shù)處下斷,然后點(diǎn)擊開始捕獲看程序是否能夠斷下,過程就是這樣!最終找到的兩個函數(shù)是readCap和stopCap
斷點(diǎn)下好后,然后轉(zhuǎn)到QPA.py點(diǎn)擊開始調(diào)試,程序成功斷在stopCap,此處會殺掉了一個Cap.exe的進(jìn)程
然后 F11 繼續(xù)跟,跟到了名為wa的函數(shù),這里會調(diào)用connect中的exeCap函數(shù),這個看上去有點(diǎn)像捕獲數(shù)據(jù)包的意思
在exeCap運(yùn)行前后分別記錄下文件的內(nèi)容,最后證實(shí)確實(shí)是在connect.exeCap中開始捕獲數(shù)據(jù)包的
然后繼續(xù)向下運(yùn)行,發(fā)現(xiàn)readCap函數(shù)是一個類似消息循環(huán)的地方,會一直讀取數(shù)據(jù)包然后顯示在界面上,直到點(diǎn)擊了停止捕獲就會跳出循環(huán)再次執(zhí)行stopCap來殺掉進(jìn)程
總結(jié)一下就是核心捕獲進(jìn)程數(shù)據(jù)包的功能在connect文件中的exeCap函數(shù)
逆向逆pyc文件
先在項(xiàng)目文件中找到了connect.pyc沒有.py源碼,為什么會沒有源碼呢?說明核心功能就在里面
逆向pyc很簡單,先放網(wǎng)上或者下載uncompyle反編譯一下,稍微難一點(diǎn)的都是反編譯不了的,然后就是看字節(jié)碼還原python源碼,這東西網(wǎng)上有指令照著翻譯就行了!但是這個 pyc 挺簡單的,在線反編譯都能搞定
原來捕獲功能是connect目錄下的CAP.exe,通過調(diào)試得知參數(shù)形式是U H U 1 dir 0,其中 dir 就是目錄名
這幾個文件的作用分別是:cap.exe捕獲進(jìn)程數(shù)據(jù),.dll是它的運(yùn)行時庫,NIC.exe查看本地網(wǎng)卡,其它的沒什么用了,我都 IDA 看了的!WinPcap需要提前裝好不然該程序會幫你安裝一個
逆Cap.exe
什么保護(hù)措施都沒有的程序,開始會判斷你傳入的命令行參數(shù)
然后經(jīng)過一系列判斷后,開始捕獲進(jìn)程數(shù)據(jù)
這個程序運(yùn)行的參數(shù)很麻煩,需要這么寫cap U H U 1 Dir 0才能捕獲進(jìn)程的流量。由于代碼不是非常多,有興趣可以自己重寫一份了。但我不想重寫也不想這么復(fù)雜,就只有自己patch程序了,思路就是:先一個jmp跳到參數(shù)判斷之后,然后利用中間的無用數(shù)據(jù)寫一個賦值的代碼,之后賦值跳轉(zhuǎn)到上面去賦值再跳轉(zhuǎn)回來。程序修改之后只需要cap dir就能捕獲進(jìn)程的數(shù)據(jù)包了
P.S.原本項(xiàng)目就是開源的,我還給人把核心功能提出來了,要是再把patch后的程序放出來簡直非人哉!所以我就不放打補(bǔ)丁的程序了,有需要的可以私信我!
END文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42727.html
摘要:配置配置使用概率抽樣。采樣率定義了對跟蹤跨度進(jìn)行采樣的概率,其值可以介于和含之間。例如,以下配置對象將采樣率更改為即每個跨度都被采樣,并使用協(xié)議將跟蹤發(fā)送到位于的服務(wù)器文件路徑注將采樣率更改為會完全禁用跟蹤。目錄手把手教你學(xué)Dapr - 1. .Net開發(fā)者的大時代手把手教你學(xué)Dapr - 2. 必須知道的概念手把手教你學(xué)Dapr - 3. 使用Dapr運(yùn)行第一個.Net程序手把手教你學(xué)Da...
摘要:只有動手,你才能真的理解作者的構(gòu)思的巧妙只有動手,你才能真正掌握一門技術(shù)持續(xù)更新中項(xiàng)目地址求求求源碼系列跟一起學(xué)如何寫函數(shù)庫中高級前端面試手寫代碼無敵秘籍如何用不到行代碼寫一款屬于自己的類庫原理講解實(shí)現(xiàn)一個對象遵循規(guī)范實(shí)戰(zhàn)手摸手,帶你用擼 Do it yourself!!! 只有動手,你才能真的理解作者的構(gòu)思的巧妙 只有動手,你才能真正掌握一門技術(shù) 持續(xù)更新中…… 項(xiàng)目地址 https...
摘要:能不能省掉這些煩瑣的步驟,讓開發(fā)人員自己完成呢現(xiàn)在好了,你可以用和把聊天機(jī)器人接入微信工具資源掘金今晚看了個電影,回得有點(diǎn)遲。 小花貓-網(wǎng)頁聊天機(jī)器人 - 前端 - 掘金 基于圖靈機(jī)器人API的網(wǎng)頁聊天機(jī)器人,輸入二維碼+你要說的話有驚喜哦~~~(菜單中的功能尚未開發(fā)完成,玩玩聊天功能就好了~)代碼開源在https://github.com/ColorfulCa... 了~... (英...
閱讀 3229·2023-04-25 18:43
閱讀 909·2021-11-24 09:39
閱讀 1373·2021-10-14 09:43
閱讀 3906·2021-09-22 15:58
閱讀 1944·2019-08-29 17:18
閱讀 431·2019-08-29 14:14
閱讀 3090·2019-08-29 13:01
閱讀 1629·2019-08-29 12:33