今天我們來用最近比較火的“ChatGPT”學習一下Android病毒分析基礎,看看和我們之前學的有什麼不同,又能學習到什麼新的東西,同時瞭解一下“ChatGPT”提問的一些精髓。
和我們之前的“Android病毒分析基礎(一)”一樣,我們先看一下環境搭建、工具使用、線上查殺、病毒分析方法以及特徵提取等問題。
以下各項均是“ChatGPT”回答,本人只做了些許刪減。
如何便捷的使用ChatGPT
在ChatGPT火了沒多久,很多大佬就相繼開發出了很多外掛,包括了瀏覽器外掛、MAC選單欄程式、國內映象介面等便捷的外掛。
瀏覽器外掛
專案地址:https://github.com/wong2/chat-gpt-google-extension
支援瀏覽器:Chrome、Edge、Firefox
支援搜尋引擎:Google, Baidu, Bing, DuckDuckGo, Brave, Yahoo, Naver, Yandex, Kagi, Searx
安裝:
我們直接選擇在chrome應用商店下載:https://chrome.google.com/webstore/detail/chatgpt-for-google/jgjaeacdkonaoafenlfkkkmbaopkbilf
其他瀏覽器可以直接在github下載對應外掛安裝即可。
效果:
MAC選單欄程式
專案地址:https://github.com/vincelwt/chatgpt-mac
支援MAC全系列
安裝:我們直接在專案下下載對應的dmg檔案安裝即可
效果:
以上兩個外掛都是需要登入自己註冊的賬號,下面我們來介紹幾個國內映象介面,免登入直接使用。
ChatGPT國內映象(可能被限制)
1、https://gpt.chatapi.art
2、https://trychatgpt.ssi.plus/
現在國內映象被訪問過多,可能都被限制了,所以最好還是自己註冊一個賬號,我們只需要找一個接碼平臺獲取對應驗證碼即可,例如:https://sms-activate.org
接下來,我們進入正題,來看看ChatGPT如何教我們學習Android病毒分析。
環境搭建
-
安裝虛擬機器軟體:需要安裝一款虛擬機器軟體,如 VirtualBox 或 VMware,來執行 Android 系統。
-
下載 Android 系統映象:可以從 Android 官網或其他網站下載 Android 系統的映象檔案。
-
建立虛擬機器:使用虛擬機器軟體建立一個新的虛擬機器,並將 Android 系統的映象檔案設定為啟動盤。
-
安裝 Android SDK:下載並安裝 Android SDK,這是一個用於開發 Android 應用的工具集。
-
安裝 Apktool:Apktool 是一款反編譯工具,可以將 APK 檔案反編譯為可讀的文字檔案,以便進行病毒分析。
-
安裝其他工具:根據您的需要,還可以安裝其他工具,如 DEX2JAR、JD-GUI 等。
按照本人分析病毒經驗,這些環境略顯不足,所以我輸入“繼續”,結果機器人直接來了環境搭建後的分析過程:
-
獲取待分析的病毒檔案:可以從網路下載或從其他來源獲取病毒檔案,通常為 APK 格式。
-
反編譯 APK 檔案:使用 Apktool 將 APK 檔案反編譯為可讀的文字檔案。
-
分析反編譯後的程式碼:開啟反編譯後的檔案,檢視原始碼並分析病毒的行為。
-
執行病毒:在 Android 虛擬機器中安裝病毒 APK 檔案,並觀察它的行為。
-
分析病毒的攻擊手段:分析病毒使用的漏洞、攻擊手段、傳播方式等。
-
分析病毒的持久化機制:檢查病毒是否在系統啟動時自動執行,或者是否安裝了後門等。
這個分析過程也是較為簡潔,我們“繼續”,結果機器人直接開始介紹防範手段:
-
安裝防毒軟體:使用專業的防毒軟體,如 McAfee、Norton 等,來查殺病毒。
-
升級作業系統和應用程式:及時升級作業系統和應用程式,以獲得最新的安全補丁。
-
使用防火牆:使用防火牆來阻止未經授權的網路連線,並設定安全規則以防止病毒的傳播。
-
不開啟未知的郵件附件:避免開啟未知來源的郵件附件,特別是 EXE、BAT、SCR 等可執行檔案。
-
不下載未知的檔案:避免從未知來源下載檔案,特別是未經檢查的 APK 應用程式。
-
使用雙因素身份驗證:使用雙因素身份驗證(2FA)來增強賬戶的安全性。
以上的回答顯然不夠入門,只是一些基礎知識,我們換種方式提問,看看效果。
透過上圖可以看出,我們可以對機器人糾錯,也可以對某一個點進行深入提問,也可以透過“繼續”來了解更多內容。
下面我們讓機器人為我們詳細列舉病毒分析方法和病毒特徵提取兩個點。
Android病毒分析方法
-
靜態分析:分析 APK 檔案的二進位制程式碼,可以透過反編譯和解析資原始檔獲取更多資訊。
-
動態分析:在裝置上執行 APK 檔案並監測其行為。可以使用模擬器或真機測試。
-
反彙編:透過反彙編工具分析二進位制程式碼,獲取程式的原始碼和彙編程式碼。
-
反編譯:透過反編譯工具獲取程式的高階語言程式碼(如 Java 程式碼)。
-
分析資原始檔:透過解析 APK 檔案中的資原始檔,如佈局檔案、影像檔案和字串資原始檔,獲取有關程式的資訊。
-
手機取證:透過從手機中獲取資料來分析病毒行為。
-
分析通訊:透過分析程式的網路通訊來獲取有關其功能和行為的資訊。
-
分析儲存:透過分析程式在裝置上儲存的資料,獲取有關其功能和行為的資訊。
-
分析登錄檔:透過分析裝置的登錄檔來獲取有關病毒的資訊。
-
分析許可權:透過分析程式請求的許可權,瞭解其功能和行為。
-
分析關聯檔案:透過分析程式與其他檔案之間的關聯關係,瞭解其功能和行為。
-
分析資料流:透過分析程式處理資料的方式,瞭解其功能和行為。
-
分析程式碼簽名:透過分析程式碼簽名,瞭解程式的可信度和安全性。
-
分析程式依賴關係:透過分析程式與其他程式之間的依賴關係,瞭解其功能和行為。
-
分析加密方法:透過分析程式使用的加密方法,瞭解其功能和行為。
-
分析惡意行為:透過分析程式的惡意行為(如竊取資料、惡意廣告、挖礦等),瞭解其功能和風險。
-
分析隱藏行為:透過分析程式隱藏的行為(如後臺執行、註冊啟動項等),瞭解其功能和風險。
-
分析惡意程式碼:透過分析程式中的惡意程式碼(如木馬、蠕蟲等),瞭解其功能和風險。
-
分析關鍵字:透過分析程式中的關鍵字(如加密、網路通訊、隱藏等),瞭解其功能和風險。
-
分析病毒特徵:透過分析病毒的特徵(如副檔名、圖示、病毒庫等),瞭解其功能和風險。
Android病毒特徵提取方法
-
靜態特徵提取:分析 APK 檔案的二進位制程式碼,提取關於病毒的資訊,如病毒庫、副檔名、圖示、病毒特徵雜湊值等。
-
動態特徵提取:在裝置上執行 APK 檔案,監測病毒的行為,提取病毒的動態特徵,如網路通訊、檔案操作、程式操作等。
-
分析資原始檔:透過解析 APK 檔案中的資原始檔,如佈局檔案、影像檔案和字串資原始檔,提取病毒的特徵資訊。
-
分析登錄檔:透過分析裝置的登錄檔,提取病毒的特徵資訊,如啟動項、服務、安裝資訊等。
-
分析許可權:透過分析程式請求的許可權,提取病毒的特徵資訊,如需要獲取敏感資訊、需要執行後臺等。
-
分析關聯檔案:透過分析程式與其他檔案之間的關聯關係,提取病毒的特徵資訊。
-
分析資料流:透過分析程式處理資料的方式,提取病毒的特徵資訊。
-
分析程式碼簽名:透過分析程式碼簽名,提取病毒的特徵資訊,如簽名證照、簽名者資訊等。
-
分析程式依賴關係:透過分析程式與其他程式之間的依賴關係,提取病毒的特徵資訊。
-
分析加密方法:透過分析程式使用的加密方法,提取病毒的特徵資訊,如使用的金鑰長度、加密演算法等。
-
分析惡意行為:透過分析程式的惡意行為(如竊取資料、惡意廣告、挖礦等),提取病毒的特徵資訊。
-
分析隱藏行為:透過分析程式隱藏的行為(如後臺執行、註冊啟動項等),提取病毒的特徵資訊。
-
分析惡意程式碼:透過分析程式中的惡意程式碼(如木馬、蠕蟲等),提取病毒的特徵資訊。
-
分析關鍵字:透過分析程式中的關鍵字(如加密、網路通訊、隱藏等),提取病毒的特徵資訊。
-
分析病毒特徵:透過分析病毒的特徵(如副檔名、圖示、病毒庫等),提取病毒的特徵資訊。
-
分析病毒簽名:透過分析病毒的簽名資訊(如證照鏈、簽名者資訊等),提取病毒的特徵資訊。
-
分析病毒的網路特徵:透過分析病毒的網路行為(如通訊協議、連線地址、埠號等),提取病毒的特徵資訊。
-
分析病毒的檔案操作特徵:透過分析病毒對檔案的操作(如建立、修改、刪除等),提取病毒的特徵資訊。
-
分析病毒的程式操作特徵:透過分析病毒對程式的操作(如建立、修改、刪除等),提取病毒的特徵資訊。
-
分析病毒的系統呼叫特徵:透過分析病毒使用的系統呼叫(如檔案操作、網路通訊、加密等),提取病毒的特徵資訊。
-
分析病毒的加解密特徵:透過分析病毒使用的加解密方法(如對稱加密、非對稱加密、雜湊演算法等),提取病毒的特徵資訊。
-
分析病毒的庫檔案特徵:透過分析病毒使用的庫檔案(如加密庫、網路通訊庫、影像處理庫等),提取病毒的特徵資訊。
-
分析病毒的登錄檔特徵:透過分析病毒修改的登錄檔項(如啟動項、服務、安裝資訊等),提取病毒的特徵資訊。
-
分析病毒的資料庫特徵:透過分析病毒修改的資料庫(如聯絡人資料庫、簡訊資料庫、通話記錄資料庫等),提取病毒的特徵資訊。
-
分析病毒的檔案屬性特徵:透過分析病毒修改的檔案屬性(如檔名、副檔名、檔案圖示等),提取病毒的特徵資訊。
-
分析病毒的系統服務特徵:透過分析病毒修改的系統服務(如後臺服務、自動啟動服務等),提取病毒的特徵資訊。
-
分析病毒的系統屬性特徵:透過分析病毒修改的系統屬性(如系統語言、時區、網路設定等),提取病毒的特徵資訊。
-
分析病毒的加密檔案特徵:透過分析病毒加密的檔案(如照片、文件、影片等),提取病毒的特徵資訊。
-
分析病毒的軟體更新特徵:透過分析病毒更新的軟體(如系統軟體、應用軟體等),提取病毒的特徵資訊。
-
分析病毒的硬體驅動特徵:透過分析病毒安裝的硬體驅動(如顯示卡驅動、音效卡驅動等),提取病毒的特徵資訊。
-
分析病毒的程式偽裝特徵:透過分析病毒偽裝的程式(如使用常見程式名稱、修改程式資訊等),提取病毒的特徵資訊。
-
分析病毒的網路通訊加密特徵:透過分析病毒使用的網路通訊加密方式(如 SSL/TLS、SSH 等),提取病毒的特徵資訊。
-
分析病毒的反除錯特徵:透過分析病毒使用的反除錯技術(如軟體斷點、硬體斷點、偵錯程式檢測等),提取病毒的特徵資訊。
-
分析病毒的網路隱蔽特徵:透過分析病毒使用的網路隱蔽技術(如代理、隧道、混淆等),提取病毒的特徵資訊。
用python寫一個Android程式分析工具
總結
可以看到chatGPT在某些問題上給出的答案遠超出我們之前總結的內容,提供了不少新的思路,它在語義理解上已經遠超過很多AI,我們可以持續提問,在這個過程中我們可以不斷糾錯,或者針對某個點再詳細提問等,他都會結合上下文給出詳細的解答,但是,我也試了很多問題,比如一些程式碼出現問題後,他可能無法糾正,他會給你一個答案,但是答案可能類似於套娃,無限迴圈,不過這個問題也可能是本人提問方式有問題,導致自己和chatGPT都進了死衚衕。
總的來說,chatGPT在很多方面都表現很好,我們完全可以在工作中嘗試使用它,可以用來寫一些工具,例如我們可以讓他寫一些VBA來處理批處理excel等,可以快速生成一些文件模版等。
參考文章:https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA