【安卓逆向】安卓病毒介紹及其簡單案例分析

目錄

引言

一、Android 病毒介紹及分析方法

1.1 Android 病毒預覽

1.2 Android 病毒分析必備知識

1.3 Android 病毒的常見類型及惡意行為

1.3.1 常見病毒類型

1.3.2 常見病毒行為

1.4 病毒激活條件

1.5? Android 病毒的傳播方式

1.6? Android 病毒分析的一般方法

二、經典安卓簡單病毒案例分析

2.1?病毒分析-免流服務器

2.2 病毒分析-王者榮耀刷皮膚

2.3 病毒分析-秒搶紅包


引言

????????隨著智能手機的普及,Android 系統成為了全球用戶最廣泛使用的移動操作系統之一。然而,Android 的開放性也使其成為了病毒和惡意軟件的主要目標。Android 病毒不僅威脅用戶隱私和財產安全,還可能對設備系統造成嚴重破壞。為了更好地理解和防范這些威脅,本文將從 Android 病毒的基本概念入手,詳細介紹其常見類型、惡意行為、傳播方式及分析方法。此外,本文還將通過幾個經典案例,深入剖析 Android 病毒的運作機制。

一、Android 病毒介紹及分析方法

1.1 Android 病毒預覽

????????Android 病毒種類繁多,為了直觀展示其危害,本文將以鎖機病毒為例,深入分析其運作機制,幫助讀者更直觀地理解 Android 病毒的威脅。

1.2 Android 病毒分析必備知識

在分析 Android 病毒時,掌握 Android 的四大組件及權限相關知識至關重要。

(1) Activity - Android 的窗口界面

Activity 是用戶與應用交互的界面,病毒常通過偽裝成正常應用的 Activity 來誘騙用戶。

(2)Service - Android 的后臺服務

Service 在后臺運行,病毒利用其執行惡意操作而不被用戶察覺。

(3)BroadcastReceiver - 廣播接收器/全局回調

BroadcastReceiver 用于接收系統廣播,病毒通過監聽特定廣播觸發惡意行為。

(4)ContentProvider - 內容提供商/注冊表

ContentProvider 管理應用數據共享,病毒可能通過其竊取或篡改數據。

(5) 清單文件中權限的聲明

AndroidManifest.xml 文件中的權限聲明,病毒通過申請敏感權限實施惡意操作。

1.3 Android 病毒的常見類型及惡意行為

1.3.1 常見病毒類型

(1)信息竊取 (privacy)
?? 名稱:a.privacy.GpsSpy.a (竊聽幽靈)

(2)惡意扣費 (payment)
?? 名稱:a.payment.suad.a (扣費內鬼)

(3)遠程控制 (remote)?
?? 名稱:a.remote.DieSms.a (致命短信)

(4)資費消耗 (expense)?
?? 名稱:a.expense.vimob.a (TT 僵尸)

(5)誘騙欺詐 (fraud)

(6)流氓行為 (rogue)

(7)系統破壞 (system)

1.3.2 常見病毒行為

(1)獲取用戶手機信息
?? - 使用 `TelephonyManager` 類獲取手機號、MAC 地址、設備 ID、IMSI 號、SIM 卡序號、手機型號等。 ?
?? - 后續操作:上傳服務器或通過第三方服務獲取詳細位置。

(2)發送短信
?? - 使用 `SmsManager` 類發送單條或多條短信,內容通常為通知病毒作者安裝成功。

(3)獲取聯系人列表
?? - 使用 `getContentResolver().query()` 獲取聯系人信息。 ?
?? - 后續操作:上傳服務器、發送到指定郵箱或群發帶短 URL 的短信以擴散病毒。

(4)獲取短信數據
?? - 使用 `getContentResolver().query()` 獲取短信內容。 ?
?? - 后續操作:上傳服務器、發送到指定郵箱、屏蔽控制短信或私自回復扣費短信。

(5)獲取安裝應用列表
?? - 使用 `getPackageManager().getInstalledPackages()` 和 `getRunningAppProcesses()` 獲取應用列表。 ?
?? - 后續操作:上傳服務器或檢測是否有殺毒軟件。

(6)獲取 Root 權限
?? - 使用 `Runtime.getRuntime().exec(cmd)` 執行底層命令。 ?
?? - 后續操作:靜默下載插件、加載惡意插件或靜默安裝 APK 文件。

(7)激活設備管理器防止卸載
?? - 使用 `DevicePolicyManager` 和 `android.app.action.ADD_DEVICE_ADMIN` 激活設備管理器。 ?
?? - 后續操作:隱藏自身圖標。

(8)私自關閉 WiFi 并開啟移動網絡
?? - 使用 `setWifiEnabled()` 和 `setMobileDataEnabled()` 控制網絡連接。 ?
?? - 后續操作:連接指定服務器上傳程序包信息。

1.4 病毒激活條件

病毒安裝后不一定立即啟動,常見的激活條件包括:
(1)檢測用戶劃屏解鎖。
(2)檢測用戶開機。
(3)檢測網絡變化。

這些信息通常注冊在 `AndroidManifest.xml` 文件中,熟悉四大組件和權限有助于快速定位惡意代碼。

1.5? Android 病毒的傳播方式

(1)瀏覽器搜索關鍵詞?
?? 誘惑用戶下載,如搜索“美女圖片”、“激情視頻”。

(2)短信傳播下載地址?
?? 誘導用戶下載,如短信內容為“孩子成績”、“老婆丈夫出事”。

(3)捆綁正常 APP?
?? 偽裝廣告誘導用戶下載。

(4)二維碼?
?? 通過掃描二維碼傳播病毒。

(5)其他方式?
?? 加殼加密、免殺等技術手段。

1.6? Android 病毒分析的一般方法

分析 Android 病毒的步驟如下:

(1)上傳至分析平臺
?? 使用金山火眼或騰訊哈勃等平臺初步分析病毒樣本。

(2)反編譯 APK 文件
?? 將 APK 文件反編譯為可讀代碼,注意文件名應改為數字或英文。

(3)導入 IDE 分析
?? 將反編譯后的代碼導入 IDE,便于查看代碼跳轉。

(4)查看 AndroidManifest.xml
?? 找到入口類,查看申請的權限、廣播監聽類和服務類。

(5)定位關鍵 API
?? 搜索并分析關鍵 API,結合上下文理解病毒流程。

(6)安裝病毒樣本
?? 在測試手機中安裝病毒樣本,使用殺毒軟件觀察攔截的敏感 API。

(7)抓包分析
?? 使用抓包工具分析病毒上傳的數據。

(8)動態分析加密字符串
?? 通過斷點調試解析加密字符串,必要時修改 smali 代碼。

(9)檢查資源目錄
?? 若未找到敏感 API,檢查資源目錄中是否存在可疑文件,如惡意 APK 或 SO 文件。

(10)分析 SO 文件?
??? 若病毒通過 SO 文件執行惡意代碼,需具備 ARM 匯編知識。

通過以上步驟,可以有效分析 Android 病毒的運作機制,并采取相應的防護措施。

二、經典安卓簡單病毒案例分析

所有樣本程序安裝均在模擬器中進行

2.1?病毒分析-免流服務器

點擊安裝核心,會有root權限申請:
Runtime.getRuntime().exec(cmd)

當安裝核心之后,重啟模擬器,會發現開機之后,有鎖屏窗口,還發送大量短信

通過AndroidKiller反編譯,分析組件和權限信息

再分析activity對應的布局文件

直接查看java代碼中的az調用,az調用了copyAppToSystem

其中執行的命令有:
(1)獲取root

(2)修改system目錄權限
mount -o remount, rw /system/
(3)拷貝文件到系統目錄
cp /storage/sdcard0/stk3.apk /system/app/
(4)修改文件權限
chmod 0777 /system/app/stk3.apk
(5)退出命令行
exit

stk3.apk的來源在onCreate函數中可以找到

根據以上分析,可以看出,stk3.apk才是真正的病毒文件,它被釋放到SD中和系統目錄中。
(1)/storage/sdcard0/stk3.apk
(2)/system/app/stk3.apk

免流服務器-清除病毒

刪除sd卡中的stk3.apk
(1)進入shell
選用androidkiller中adb,執行 adb shell
(2)切換到SD目錄
cd /storage/sdcard0/
(3)刪除病毒
rm stk3.apk

刪除system/app中的stk3.apk
(1)使用cd 切換根目錄
(2)使用cd 切換到system/app
cd system/app
(3)刪除病毒
rm stk3.apk

病毒分析-免流服務器-stk3.apk
Stk3.apk模仿系統應用痕跡很深。

從MainActivity找到 llxfc服務,在服務的代碼中找到密碼

密碼:TFB4
解鎖之后,可以使用模擬器中文件管理器刪除病毒

2.2 病毒分析-王者榮耀刷皮膚

鎖機密碼:6699
特征字符串:lockNow,resetPassword
刪除病毒時需要取消激活設備管理器,才能刪除

2.3 病毒分析-秒搶紅包

激活之后,顯示的是上圖界面,可以輸入密碼進行解鎖,當重啟之后,還會有密碼,PIN碼鎖機,根據上一個案例,找特征字符串就可以解鎖。

鎖機密碼是:8985

病毒分析-秒搶紅包-第一層密碼解密
從資源文件找到按鈕ID以及代碼

在代碼中找到響應函數

使用smali注入方式,注入Log代碼在解密函數的末尾,打印返回值

由于這個apk資源編譯有問題,所以采用的方法就是將smali代碼轉為dex文件,然后再將源apk中的dex文件替換,再簽名的方法。
編譯smali代碼為的dex命令:java -jar smali-2.2.0.jar a smali

使用Android監視器監控到日志信息:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73147.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73147.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73147.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于LabVIEW的腳本化子VI動態生成

該示例展示了一種利用LabVIEW VI腳本(VI Scripting)技術,通過程序化方式動態生成并替換子VI的解決方案。核心邏輯為:基于預定義的模板VI,根據用戶選擇的數學操作(加法或乘法),自動生…

機器學習之超參數優化(Hyperparameter Optimization)

超參數優化(Hyperparameter Optimization) 1. 簡介 在機器學習和深度學習中,超參數(Hyperparameters) 是在訓練之前需要設定的參數,例如學習率(learning rate)、批量大小(batch size)、神經網絡的層數等。與訓練過程中自動學習的模型參數(如權重和偏置)不同,超參…

Manus 演示案例:谷歌公司運營模擬器游戲體驗

一、項目背景與愿景 在科技行業蓬勃發展的當下,谷歌作為行業巨頭,其成長歷程充滿了無數值得深入探究的決策智慧。這些決策不僅塑造了谷歌的輝煌,也為全球企業的發展提供了寶貴的借鑒。本項目旨在打造一款以谷歌公司發展為藍本的運營模擬器游戲…

es-索引詳解

在 Elasticsearch 中,**索引(Index)**是核心概念之一,類似于關系型數據庫中的“表”。索引用于存儲、組織和檢索文檔(Document)。以下是關于 Elasticsearch 索引的詳細解析: 1. 索引的基本概念 …

基于策略模式的智能提示語生成器設計與實現——以Tkinter GUI開發為例

基于策略模式的智能提示語生成器設計與實現——以Tkinter GUI開發為例 一、引言:智能化時代的提示工程工具 在人工智能技術廣泛應用的時代背景下,如何與AI模型進行有效交互已成為關鍵技能。本文介紹的"AI任務需求與提示語策略生成器"正是基于…

01 | Go 項目開發極速入門課介紹

提示: 所有體系課見專欄:Go 項目開發極速入門實戰課。 你好,歡迎學習本課程。本課程是一個 Go 項目開發極速入門課程。旨在幫助剛學習完 Go 基礎語法的 Go 開發者,快速掌握如何開發一個功能相對全面的 Go 項目。 根據課程設計目標…

密閉空間可燃氣體監測終端:守護城市命脈,智馭燃氣安全!

近年來,陜西省高度重視燃氣安全,出臺了一系列政策文件,旨在全面加強城鎮燃氣安全監管,防范化解重大安全風險。2023年,陜西省安委會印發《全省城鎮燃氣安全專項整治工作方案》,明確要求聚焦燃氣經營、輸送配…

大白話react第十八章React 與 WebGL 項目的高級拓展與優化

大白話react第十八章React 與 WebGL 項目的高級拓展與優化 1. 實現 3D 模型的導入與動畫 在之前的基礎上,我們可以導入更復雜的 3D 模型,并且讓這些模型動起來,就像在游戲里看到的角色和場景一樣。這里我們使用 GLTF 格式的模型&#xff0c…

有關Java中的多線程

學習目標 ● 掌握線程相關概念 ● 掌握線程的基本使用 ● 掌握線程池的使用 ● 了解解決線程安全方式 1.為什么要學習線程? ● 從1946年2月14日世界上第一臺計算機在美國賓夕法尼亞大學誕生到今天,計算和處理的模式早已從單用戶單任務的串行模式發展到了多用戶多…

Spring Boot集成EasyExcel

1. 初始化Spring Boot項目 首先,使用Spring Initializr(https://start.spring.io/)生成一個基本的Spring Boot項目。選擇以下依賴項: Spring WebLombok (用于減少樣板代碼)SLF4J (用于日志記錄) 2. 添加依賴 在你的pom.xml文件…

(2025|ICLR|廈大華為,LoSA,基于表示互信息的動態層級稀疏率,基于重構誤差的秩分配)LLM 的動態低秩稀疏自適應

Dynamic Low-Rank Sparse Adaptation for Large Language Models 目錄 1. 引言 1.1 關鍵詞 2. 方法 2.1 預備知識 2.2 層級稀疏率確定 2.3 稀疏感知的秩分配 2.4 動態稀疏與適配 3. 實驗 3.1 實驗設置 3.2 語言建模 3.3 零樣本任務 3.4 N:M 稀疏性 3.5 消融實驗 …

p5.js:sound(音樂)可視化,動畫顯示音頻高低變化

本文通過4個案例介紹了使用 p5.js 進行音樂可視化的實踐,包括將音頻振幅轉化為圖形、生成波形圖。 承上一篇:vite:初學 p5.js demo 畫圓圈 cd p5-demo copy .\node_modules\p5\lib\p5.min.js . copy .\node_modules\p5\lib\addons\p5.soun…

linux 進程和計劃管理

查看進程 在Linux系統中,有多個命令可以用來查看進程 以下是一些常用的命令: ps命令:用于查看當前系統中的進程狀態。 基本用法:ps -ef,該命令會以完整格式顯示所有進程的詳細信息,包括用戶ID、進程ID、父…

DeepSeek 多模態大模型 Janus-Pro 本地部署教程

下載模型倉庫 git clone https://github.com/deepseek-ai/Janus.git 國內下載倉庫失敗時,可以使用以下代理: git clone https://github.moeyy.xyz/https://github.com/deepseek-ai/Janus.git 準備 Conda 3.12 虛擬環境 conda create --name deepseek7B p…

Qt開源控件庫(qt-material-widgets)的編譯及使用

項目簡介 qt-material-widgets是一個基于 Qt 小部件的 Material Design 規范實現。 項目地址 項目地址:qt-material-widgets 本地構建環境 Win11 家庭中文版 VS2019 Qt5.15.2 (MSVC2019) 本地構建流程 克隆后的目錄結構如圖: 直接使用Qt Crea…

ARM 嵌入式處理器內核與架構深度剖析(2): ARM 處理器架構剖析

目錄 一、ARM處理器架構剖析 1.1. 指令集架構(ISA) 1.2. 寄存器集 1.3. 存儲模型 1.4. 異常模型 二、架構設計精要 2.1 處理器模式與特權分級 2.2 寄存器銀行化技術 2.3 指令集演化 三、微架構核心技術 3.1 流水線創新 3.2 內存子系統 3.3 …

Flutter 按鈕組件 TextButton 詳解

目錄 1. 引言 2. TextButton 的基本用法 3. 主要屬性 4. 自定義按鈕樣式 4.1 修改文本顏色 4.2 添加背景色 4.3 修改按鈕形狀和邊距 4.4 樣式定制 5. 高級應用技巧 5.1 圖標文本組合 5.2 主題統一配置 5.3 動態交互 6. 性能優化與注意事項 6.1 點擊區域優化 6.…

std::ranges::views::split, lazy_split, std::ranges::split_view, lazy_split_view

std::ranges::views::split, std::ranges::split_view C20 中引入的用于分割范圍(range)的組件,允許將輸入范圍按特定分隔符或條件分割成多個子范圍。以下是詳細說明和示例: 基本概念 1. 功能 分割范圍:將輸入范圍&…

c++ constraints與concepts使用筆記

c constraints與concepts使用筆記 1. 模板參數缺乏約束的問題2. Concepts 基本概念3. Concept 的定義與使用4. requires 表達式詳解5. requires 從句 vs requires 表達式完整示例:約束矩陣運算 1. 模板參數缺乏約束的問題 問題分析: 傳統模板參數沒有語…

Qt | 屏幕截圖實現

01 全局截屏控件 1. 鼠標右鍵彈出菜單。 2. 支持全局截屏。 3. 支持局部截屏。 4. 支持截圖區域拖動。 5. 支持圖片另存為。 演示 點擊按鈕即可截圖 源碼: 通過網盤分享的文件:screenwidget屏幕截圖 鏈接: https://pan.baidu.com/s/1PZfQlUXNIoZKEfEtLNV2jQ?pwd=5jsg 提…