概述
安裝
工具列表
內容詳情
替代品
什麼是APK Security Guard MCP Suite?
這是一個專為Android應用安全分析設計的自動化工具套件,它將5個主流安全分析工具(JEB、JADX、APKTOOL、FlowDroid、MobSF)統一集成到MCP標準接口中,通過'多專家決策'模型提供全面、可靠的APK安全檢測服務。如何使用APK Security Guard?
只需提供APK文件路徑,系統會自動調用所有工具進行並行分析,然後智能整合結果,生成包含漏洞頻率統計和風險評估的綜合報告。適用場景
適合安全研究人員進行漏洞挖掘、開發人員進行代碼審計、滲透測試人員進行安全評估,以及對APK安全性有要求的任何用戶。主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"Jadx MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JADX-MCP\\fastmcp_adapter.py"
],
"transportType": "stdio"
},
"JEB MCP Server": {
"disabled": false,
"timeout": 1800,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JEB-MCP\\server.py"
],
"transportType": "stdio"
},
"FlowDroid MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"FlowDroid-MCP\\script\\flowdroid_mcp.py"
],
"transportType": "stdio"
},
"MobSF MCP Server": {
"disabled": false,
"timeout": 60,
"command": "Nodejs\\node.exe",
"args": [
"MobSF-MCP\\build\\index.js"
],
"env": {
"MOBSF_URL": "http://localhost:8000",
"MOBSF_API_KEY": "your_api_key_here"
},
"transportType": "stdio"
},
"APKTOOL MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"APKTOOL-MCP\\apktool_mcp_server.py"
],
"transportType": "stdio"
}
}
}
{
"mcpServers": {
"apk_analysis": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"CrossValidation_APKAnalysis.py"
],
"transportType": "stdio"
}
}
}🚀 APK安全防護MCP套件
本項目旨在為安卓APK安全分析與漏洞檢測提供一站式自動化解決方案。通過集成JEB、JADX、APKTOOL、FlowDroid、MobSF等主流反編譯、靜態分析、動態分析工具,並將其統一為MCP(模型上下文協議)標準API接口,極大提升了安全分析的自動化程度與效率。適用於對APK安全有需求的安全研究人員、滲透測試人員、開發者等用戶。
🚀 快速開始
環境依賴
本項目需要使用Python 3.11及以上版本,同時需要安裝Node.js。
安裝步驟
為避免全局環境中的依賴衝突,強烈建議使用Python虛擬環境來管理項目依賴。以下是詳細的安裝步驟:
- 創建新的虛擬環境:
# 對於Windows系統
python -m venv myenv
myenv\Scripts\activate
# 對於Linux/MacOS系統
python -m venv myenv
source myenv/bin/activate
- 確認虛擬環境已激活(命令提示符中應顯示
(myenv))後,安裝項目依賴:
pip install -r requirements.txt
- 若需要使用MobSF相關API,需單獨安裝Node.js依賴,進入
MobSF-MCP目錄:
npm install -g mobsf-mcp
⚠️ 重要提示
- 建議使用Python 3.11版本。
- 每次開始新的工作會話時,記得激活虛擬環境。
插件或腳本安裝建議
JEB MCP腳本
該腳本需要預先放置在JEB工具的腳本文件夾中。
- 打開JEB,導航至
文件 > 腳本 > 腳本選擇器。 - 從腳本列表中選擇並運行
MCP.py。 - 若腳本成功加載並運行,你應該會在JEB輸出控制檯看到以下消息:
[MCP] 插件已加載
[MCP] 插件正在運行
[MCP] 服務器已在 http://localhost:16161 啟動
JADX MCP插件
- 構建和運行該插件需要Java 17。
- 在
JADX-MCP根目錄下,運行:
./gradlew build
- 構建完成後,插件JAR文件將生成在以下路徑:
plugin/build/libs/JADX-MCP-Plugin.jar
- 你也可以直接使用預構建的JAR包: 下載JADX-MCP-Plugin.jar
- 將JAR文件複製到
jadx-gui安裝目錄的lib文件夾中:
cp plugin/build/libs/JADX-MCP-Plugin.jar <jadx-gui安裝路徑>/lib/
APKTool
在Windows系統上安裝APKTool,你可以使用Chocolatey(一款流行的Windows包管理器):
以管理員身份打開PowerShell。
- 運行以下命令安裝Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- Chocolatey安裝完成後,使用以下命令安裝APKTool:
choco install apktool
安裝完成後,你可以直接從命令行使用apktool。更多詳細信息和高級用法,請參考APKTool官方文檔。
MobSF MCP
首先確保已安裝MobSF。
如果你希望擴展功能並添加新的API,在項目的MobSF-MCP根目錄下運行以下命令:
npm run build
構建完成後,你會在build文件夾中找到生成的index.js和mobsf.js文件。
以管理員身份打開PowerShell。
- 在命令行中設置所需的環境變量:
$env:MOBSF_URL="http://localhost:8000";
$env:MOBSF_API_KEY="your_api_key_here";
- 使用以下命令啟動MobSF MCP服務器:
npx mobsf-mcp
FlowDroid
要設置FlowDroid以與此套件一起使用,請按以下步驟操作:
- 從官方發佈頁面下載FlowDroid的
soot-infoflow-cmd-2.13.0-jar-with-dependencies.jar命令行JAR文件。 - 在
FlowDroid-MCP目錄中,找到.env文件。使用文本編輯器打開它,並配置FlowDroid JAR文件的路徑。例如:
FLOWDROID_WORKSPACE=../flowdroid_workspace
FLOWDROID_JAR_PATH=/home/user/tools/flowdroid/flowdroid.jar
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
在flowdroid_mcp.py腳本中,FlowDroid依賴於幾個關鍵的環境變量來運行。在運行腳本之前,請確保這些變量已正確配置。
# 第15 - 18行
FLOWDROID_WORKSPACE = os.getenv("FLOWDROID_WORKSPACE", "flowdroid_workspace")
FLOWDROID_JAR_PATH = os.getenv("FLOWDROID_JAR_PATH", "FlowDroid.jar")
JAVA_HOME = os.getenv("JAVA_HOME")
# 第134 - 144行
command = [
"java",
"-jar",
FLOWDROID_JAR_PATH, # 確保路徑正確
"-a", apk_path,
"-o", output_dir,
"-p", "Android\\Sdk\\platforms", # 必須指定平臺目錄
"-s", "FlowDroid-MCP\\script\\SourcesAndSinks.txt", # 必須指定源/匯文件
]
⚠️ 重要提示
- 請將所有路徑替換為你係統的實際路徑。
- 確保正確指定了Android SDK平臺目錄。
VSCode Cline擴展配置
要在VSCode中使用cline擴展來使用此項目,請在你的cline配置文件中添加以下配置:
{
"mcpServers": {
"Jadx MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JADX-MCP\\fastmcp_adapter.py"
],
"transportType": "stdio"
},
"JEB MCP Server": {
"disabled": false,
"timeout": 1800,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JEB-MCP\\server.py"
],
"transportType": "stdio"
},
"FlowDroid MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"FlowDroid-MCP\\script\\flowdroid_mcp.py"
],
"transportType": "stdio"
},
"MobSF MCP Server": {
"disabled": false,
"timeout": 60,
"command": "Nodejs\\node.exe",
"args": [
"MobSF-MCP\\build\\index.js"
],
"env": {
"MOBSF_URL": "http://localhost:8000",
"MOBSF_API_KEY": "your_api_key_here"
},
"transportType": "stdio"
},
"APKTOOL MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"APKTOOL-MCP\\apktool_mcp_server.py"
],
"transportType": "stdio"
}
}
}
⚠️ 重要提示
請根據你的實際文件路徑和配置(根據你的系統進行調整)進行調整。 請確保在配置中填寫你實際的
MOBSF_API_KEY。
✨ 主要特性
- 集成主流反編譯、靜態分析、動態分析工具,提供一站式自動化解決方案。
- 統一為MCP標準API接口,提升安全分析的自動化程度與效率。
- 採用“多專家決策”模型,提高漏洞發現的全面性和結果的可信度。
📦 安裝指南
依賴安裝
為避免全局環境中的依賴衝突,強烈建議使用Python虛擬環境來管理項目依賴。以下是詳細的安裝步驟:
- 創建新的虛擬環境:
# 對於Windows系統
python -m venv myenv
myenv\Scripts\activate
# 對於Linux/MacOS系統
python -m venv myenv
source myenv/bin/activate
- 確認虛擬環境已激活(命令提示符中應顯示
(myenv))後,安裝項目依賴:
pip install -r requirements.txt
- 若需要使用MobSF相關API,需單獨安裝Node.js依賴,進入
MobSF-MCP目錄:
npm install -g mobsf-mcp
插件或腳本安裝
JEB MCP腳本
該腳本需要預先放置在JEB工具的腳本文件夾中。
- 打開JEB,導航至
文件 > 腳本 > 腳本選擇器。 - 從腳本列表中選擇並運行
MCP.py。 - 若腳本成功加載並運行,你應該會在JEB輸出控制檯看到以下消息:
[MCP] 插件已加載
[MCP] 插件正在運行
[MCP] 服務器已在 http://localhost:16161 啟動
JADX MCP插件
- 構建和運行該插件需要Java 17。
- 在
JADX-MCP根目錄下,運行:
./gradlew build
- 構建完成後,插件JAR文件將生成在以下路徑:
plugin/build/libs/JADX-MCP-Plugin.jar
- 你也可以直接使用預構建的JAR包: 下載JADX-MCP-Plugin.jar
- 將JAR文件複製到
jadx-gui安裝目錄的lib文件夾中:
cp plugin/build/libs/JADX-MCP-Plugin.jar <jadx-gui安裝路徑>/lib/
APKTool
在Windows系統上安裝APKTool,你可以使用Chocolatey(一款流行的Windows包管理器):
以管理員身份打開PowerShell。
- 運行以下命令安裝Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- Chocolatey安裝完成後,使用以下命令安裝APKTool:
choco install apktool
安裝完成後,你可以直接從命令行使用apktool。更多詳細信息和高級用法,請參考APKTool官方文檔。
MobSF MCP
首先確保已安裝MobSF。
如果你希望擴展功能並添加新的API,在項目的MobSF-MCP根目錄下運行以下命令:
npm run build
構建完成後,你會在build文件夾中找到生成的index.js和mobsf.js文件。
以管理員身份打開PowerShell。
- 在命令行中設置所需的環境變量:
$env:MOBSF_URL="http://localhost:8000";
$env:MOBSF_API_KEY="your_api_key_here";
- 使用以下命令啟動MobSF MCP服務器:
npx mobsf-mcp
FlowDroid
要設置FlowDroid以與此套件一起使用,請按以下步驟操作:
- 從官方發佈頁面下載FlowDroid的
soot-infoflow-cmd-2.13.0-jar-with-dependencies.jar命令行JAR文件。 - 在
FlowDroid-MCP目錄中,找到.env文件。使用文本編輯器打開它,並配置FlowDroid JAR文件的路徑。例如:
FLOWDROID_WORKSPACE=../flowdroid_workspace
FLOWDROID_JAR_PATH=/home/user/tools/flowdroid/flowdroid.jar
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
在flowdroid_mcp.py腳本中,FlowDroid依賴於幾個關鍵的環境變量來運行。在運行腳本之前,請確保這些變量已正確配置。
# 第15 - 18行
FLOWDROID_WORKSPACE = os.getenv("FLOWDROID_WORKSPACE", "flowdroid_workspace")
FLOWDROID_JAR_PATH = os.getenv("FLOWDROID_JAR_PATH", "FlowDroid.jar")
JAVA_HOME = os.getenv("JAVA_HOME")
# 第134 - 144行
command = [
"java",
"-jar",
FLOWDROID_JAR_PATH, # 確保路徑正確
"-a", apk_path,
"-o", output_dir,
"-p", "Android\\Sdk\\platforms", # 必須指定平臺目錄
"-s", "FlowDroid-MCP\\script\\SourcesAndSinks.txt", # 必須指定源/匯文件
]
⚠️ 重要提示
- 請將所有路徑替換為你係統的實際路徑。
- 確保正確指定了Android SDK平臺目錄。
VSCode Cline擴展配置
要在VSCode中使用cline擴展來使用此項目,請在你的cline配置文件中添加以下配置:
{
"mcpServers": {
"Jadx MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JADX-MCP\\fastmcp_adapter.py"
],
"transportType": "stdio"
},
"JEB MCP Server": {
"disabled": false,
"timeout": 1800,
"command": "myenv\\Scripts\\python.exe",
"args": [
"JEB-MCP\\server.py"
],
"transportType": "stdio"
},
"FlowDroid MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"FlowDroid-MCP\\script\\flowdroid_mcp.py"
],
"transportType": "stdio"
},
"MobSF MCP Server": {
"disabled": false,
"timeout": 60,
"command": "Nodejs\\node.exe",
"args": [
"MobSF-MCP\\build\\index.js"
],
"env": {
"MOBSF_URL": "http://localhost:8000",
"MOBSF_API_KEY": "your_api_key_here"
},
"transportType": "stdio"
},
"APKTOOL MCP Server": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"APKTOOL-MCP\\apktool_mcp_server.py"
],
"transportType": "stdio"
}
}
}
⚠️ 重要提示
請根據你的實際文件路徑和配置(根據你的系統進行調整)進行調整。 請確保在配置中填寫你實際的
MOBSF_API_KEY。
📚 詳細文檔
API文檔
JEB MCP
架構基於https://github.com/flankerhqd/jebmcp
✨ 主要API功能:
| API | 描述 |
|---|---|
ping() |
檢查JEB MCP服務器是否存活。 |
get_manifest(filepath) |
從APK中獲取AndroidManifest.xml內容。 |
get_apk_permissions(filepath) |
提取APK的AndroidManifest.xml中聲明的所有權限。 |
get_apk_components(filepath) |
從清單中提取所有四個主要的安卓組件(活動、服務、接收器、提供者)及其屬性。 |
get_method_decompiled_code(filepath, method_signature) |
通過其完全限定簽名獲取特定方法的反編譯代碼。 |
get_class_decompiled_code(filepath, class_signature) |
通過其完全限定簽名獲取特定類的反編譯代碼。 |
get_method_callers(filepath, method_signature) |
列出給定方法的所有調用者。 |
get_method_overrides(filepath, method_signature) |
列出給定方法的所有重寫方法。 |
get_apk_info(filepath) |
獲取APK的基本信息,如包名、版本和主活動。 |
get_intent_filters(filepath) |
提取活動、服務和接收器的所有意圖過濾器(動作、類別、數據)。 |
get_exported_components(filepath) |
列出所有導出的組件(顯式或隱式)及其屬性。 |
list_broadcast_receivers(filepath) |
列出所有廣播接收器及其意圖過濾器。 |
參數說明:
filepath應為APK文件的絕對路徑。method_signature和class_signature使用Java風格的內部地址,例如方法為Lcom/abc/Foo;->bar(I[JLjava/Lang/String;)V,類為Lcom/abc/Foo;。
JADX MCP
架構基於https://github.com/mobilehackinglab/jadx-mcp-plugin
✨ 主要API功能:
| API | 描述 |
|---|---|
list_all_classes(limit, offset) |
返回APK中所有類名的分頁列表。參數:limit(最大結果數,默認250),offset(起始索引,默認0)。 |
search_class_by_name(query) |
搜索包含給定關鍵字的類名(不區分大小寫)。參數:query(字符串)。 |
get_class_source(class_name) |
返回給定類的完整反編譯源代碼。參數:class_name(完全限定類名,例如com.example.MyClass)。 |
search_method_by_name(method_name) |
搜索所有與提供的名稱匹配的方法。返回類和方法對作為字符串。參數:method_name(字符串)。 |
get_methods_of_class(class_name) |
返回指定類中聲明的所有方法名。參數:class_name(完全限定類名)。 |
get_fields_of_class(class_name) |
返回指定類中聲明的所有字段名。參數:class_name(完全限定類名)。 |
get_method_code(class_name, method_name) |
僅返回類中特定方法的源代碼塊。參數:class_name(完全限定類名),method_name(字符串)。 |
get_method_signature(class_name, method_name) |
返回方法的完整簽名,包括返回類型和參數。參數:class_name(完全限定類名),method_name(字符串)。 |
get_field_details(class_name, field_name) |
返回字段的詳細信息,包括其類型和修飾符。參數:class_name(完全限定類名),field_name(字符串)。 |
search_method_by_return_type(return_type) |
按方法的返回類型搜索方法。參數:return_type(字符串)。 |
get_class_hierarchy(class_name) |
返回類的繼承層次結構,包括其父類和接口。參數:class_name(完全限定類名)。 |
get_method_calls(class_name, method_name) |
返回特定方法中進行的所有方法調用。參數:class_name(完全限定類名),method_name(字符串)。 |
get_class_references(class_name) |
返回代碼庫中對特定類的所有引用。參數:class_name(完全限定類名)。 |
get_method_annotations(class_name, method_name) |
返回應用於特定方法的所有註解。參數:class_name(完全限定類名),method_name(字符串)。 |
get_tools_resource() |
從插件中返回所有可用工具及其描述的列表。 |
參數說明:
class_name應為完全限定類名,例如com.example.MyClass。method_name是反編譯代碼中顯示的方法名。limit和offset用於列出類時的分頁。query:搜索關鍵字,用於搜索包含該關鍵字的類名或方法名。return_type:方法的返回類型,用於按返回類型搜索方法。field_name:字段的名稱,用於獲取字段的詳細信息。
APKTool MCP
架構基於https://github.com/zinja-coder/apktool-mcp-server(Apache 2.0許可證)
✨ 主要API功能:
| API | 描述 |
|---|---|
decode_apk(apk_path, force, no_res, no_src) |
反編譯APK文件,提取資源和smali代碼。參數:apk_path(APK文件路徑),force(強制覆蓋),no_res(跳過資源),no_src(跳過源代碼)。 |
build_apk(project_dir, output_apk, debug, force_all) |
從解碼後的項目重新構建APK。參數:project_dir(項目路徑),output_apk(輸出路徑),debug(包含調試信息),force_all(強制重新構建所有)。 |
clean_project(project_dir, backup) |
清理項目目錄以準備重新構建。參數:project_dir(項目路徑),backup(清理前創建備份)。 |
get_manifest(project_dir) |
從解碼後的項目中獲取AndroidManifest.xml內容。參數:project_dir(項目路徑)。 |
find_leak_manifest(project_dir) |
在清單中查找沒有權限限制的導出組件。參數:project_dir。 |
find_leak_components_source(project_dir, source_dirs) |
查找沒有權限的導出組件並定位其源代碼。參數:project_dir,source_dirs(源目錄列表)。 |
list_smali_directories(project_dir) |
列出項目中的所有smali目錄。參數:project_dir。 |
list_smali_files(project_dir, smali_dir, package_prefix) |
列出特定目錄中的smali文件。參數:project_dir,smali_dir(默認:"smali"),package_prefix(可選過濾器)。 |
get_smali_file(project_dir, class_name) |
獲取特定smali文件的內容。參數:project_dir,class_name(完全限定類名)。 |
modify_smali_file(project_dir, class_name, new_content, create_backup) |
修改smali文件內容。參數:project_dir,class_name,new_content,create_backup(默認:True)。 |
list_resources(project_dir, resource_type) |
列出項目中的資源。參數:project_dir,resource_type(可選,例如"layout","drawable")。 |
get_resource_file(project_dir, resource_type, resource_name) |
獲取資源文件內容。參數:project_dir,resource_type,resource_name。 |
modify_resource_file(project_dir, resource_type, resource_name, new_content, create_backup) |
修改資源文件內容。參數:project_dir,resource_type,resource_name,new_content,create_backup(默認:True)。 |
search_in_files(project_dir, search_pattern, file_extensions, max_results) |
在項目文件中搜索。參數:project_dir,search_pattern,file_extensions(默認:[".smali", ".xml"]),max_results(默認:100)。 |
get_apktool_yml(project_dir) |
從解碼後的項目中獲取apktool.yml信息。參數:project_dir。 |
參數說明:
project_dir:APKTool項目目錄的路徑。apk_path:APK文件的路徑。class_name:完全限定類名(例如"com.example.MyClass")。resource_type:資源目錄名稱(例如"layout","drawable","values")。create_backup:修改前是否創建備份(默認:True)。file_extensions:要搜索的文件擴展名列表(默認:[".smali", ".xml"])。
MobSF MCP
✨ 主要API功能:
| API | 描述 |
|---|---|
uploadFile(file) |
將移動應用程序文件(APK、IPA或APPX)上傳到MobSF進行安全分析。 |
getScanLogs(hash) |
檢索先前分析的移動應用程序的詳細掃描日誌。 |
getJsonReport(hash) |
生成並檢索JSON格式的全面安全分析報告。 |
getJsonReportSection(hash, section) |
獲取JSON報告的特定部分。 |
getJsonReportSections(hash) |
獲取JSON報告中所有可用的部分名稱。 |
getRecentScans(page, pageSize) |
檢索最近執行的安全掃描列表。 |
searchScanResult(query) |
按哈希、應用程序名稱、包名或文件名搜索掃描結果。 |
deleteScan(hash) |
刪除特定分析的掃描結果。 |
getScorecard(hash) |
獲取MobSF應用程序安全計分卡。 |
generatePdfReport(hash) |
生成PDF安全報告(返回Base64編碼的PDF)。 |
viewSource(hash, file, type) |
查看分析應用程序的源文件。 |
getScanTasks() |
獲取掃描任務隊列(需要啟用異步掃描隊列)。 |
compareApps(hash1, hash2) |
比較兩個應用程序的安全分析結果。 |
suppressByRule(hash, type, rule) |
按規則ID抑制發現的問題。 |
suppressByFiles(hash, type, rule) |
按文件抑制發現的問題。 |
listSuppressions(hash) |
查看掃描的所有抑制項。 |
deleteSuppression(hash, type, rule, kind) |
刪除特定的抑制項。 |
listAllHashes(page, pageSize) |
獲取所有報告的MD5哈希值。 |
📊 報告部分API:
MobSF提供了詳細的特定部分API,用於訪問分析報告的不同部分。每個部分可以使用getJsonSection_{section}(hash)進行訪問:
| 部分類別 | 可用部分 |
|---|---|
| 基本信息 | version,title,file_name,app_name,app_type,size,md5,sha1,sha256 |
| 應用程序信息 | package_name,main_activity,version_name,version_code |
| 組件 | exported_activities,browsable_activities,activities,receivers,providers,services |
| SDK信息 | target_sdk,max_sdk,min_sdk,libraries |
| 安全分析 | permissions,malware_permissions,certificate_analysis,manifest_analysis,network_security,binary_analysis |
| 代碼分析 | file_analysis,android_api,code_analysis,niap_analysis,permission_mapping |
| 內容分析 | urls,domains,emails,strings,firebase_urls,secrets |
| 附加信息 | exported_count,apkid,behaviour,trackers,playstore_details,sbom |
| 安全指標 | average_cvss,appsec,virus_total |
| 系統信息 | base_url,dwd_dir,host_os |
參數說明:
file:移動應用程序文件(APK、IPA或APPX)的路徑。hash:分析應用程序的MD5哈希值。section:要檢索的報告部分的名稱。page:分頁結果的頁碼。pageSize:每頁的項目數。type:文件類型(apk/ipa/studio/eclipse/ios)。rule:抑制管理的規則ID。kind:抑制類型(規則/文件)。
FlowDroid MCP
✨ 主要API功能:
| API | 描述 |
|---|---|
run_flowdroid_analysis(apk_path, output_dir) |
對APK文件運行FlowDroid汙點分析。參數:apk_path(APK文件路徑),output_dir(可選輸出目錄)。 |
get_flowdroid_sources(analysis_dir) |
從FlowDroid分析結果中提取汙點源。參數:analysis_dir(分析輸出目錄)。 |
get_flowdroid_sinks(analysis_dir) |
從FlowDroid分析結果中提取汙點匯。參數:analysis_dir(分析輸出目錄)。 |
clean_flowdroid_workspace() |
清理FlowDroid工作區目錄,為新的分析做準備。 |
參數說明:
apk_path:要分析的APK文件的路徑。output_dir:可選輸出目錄(默認為workspace/apk_name)。analysis_dir:FlowDroid分析輸出目錄的路徑。
多專家決策模型
本項目採用“多專家決策”模型對APK安全進行全面分析。該模型借鑑了多位專家獨立判斷和集體決策的思想,結合了5種主流逆向分析工具(JEB、JADX、APKTool、FlowDroid、MobSF)的MCP接口,大大提高了漏洞發現的全面性和結果的可信度。
分析過程概述
-
多位專家獨立作答
- 5種逆向分析工具(MCP)對同一個APK獨立進行靜態分析,並自動生成各自的漏洞報告。
- 每個工具作為一個“專家”,從不同的視角和技術細節獨立發現潛在的安全問題。
-
大模型頻率統計與排序
- 使用大模型對所有工具輸出的漏洞進行合併、去重和內容分析,統計每個漏洞在5個工具報告中的出現頻率,並記錄其來源。
- 按出現頻率對所有漏洞進行排序。出現頻率越高,可信度越高。
-
本地優先篩選與分流
- 自動保留前60%的高頻漏洞(即在5個工具中出現頻率較高、可信度較高的漏洞)在本地。
- 將後40%的漏洞分為兩類:
- 無MobSF來源:即僅由其他逆向工具發現的漏洞,全部保留。
- 有MobSF來源:即僅出現在MobSF報告中的低頻漏洞,交給大模型進一步評估其危險性,僅保留高風險漏洞。
-
最終綜合整合 將第三步中本地保留的所有高優先級漏洞、獨特漏洞以及大模型評估為高風險的MobSF漏洞進行整合,生成最終的綜合漏洞分析報告。
CrossValidation_APKAnalysis MCP
✨ 主要API功能:
| API | 描述 |
|---|---|
analyze_with_jeb/jadx/apktool/flowdroid/mobsf(apk_path) |
使用JEB/JADX/APKTool/FlowDroid/MobSF MCP工具獨立分析APK並生成標準化的漏洞報告。參數:apk_path(APK文件路徑)。 |
combine_analysis_results(report_paths) |
合併所有5個工具的報告,統計每個漏洞的頻率和來源,並按組件權重排序,生成初步的綜合報告。參數:report_paths(報告文件路徑列表)。 |
split_vulnerabilities_by_priority(combined_report_path) |
根據頻率將漏洞分為三類:高優先級(前60%)、無MobSF來源的低優先級、僅含MobSF來源的低優先級,並分別保存。參數:combined_report_path(合併報告的路徑)。 |
assess_vulnerability_risk(mobsf_low_priority_path) |
對於僅來自MobSF的低優先級漏洞,調用大模型進行風險評估,僅保留高風險漏洞。參數:mobsf_low_priority_path(僅含MobSF的低優先級漏洞的路徑)。 |
integrate_priority_reports(high_priority_path, unique_low_priority_path, high_risk_mobsf_path) |
整合高優先級、獨特低優先級和高風險的MobSF漏洞,生成最終的綜合分析報告。參數:high_priority_path,unique_low_priority_path,high_risk_mobsf_path(每個報告的路徑)。 |
參數說明:
apk_path:要分析的APK文件的絕對路徑。report_paths:每個工具的標準化報告文件路徑列表。combined_report_path:合併後的初步綜合報告的路徑。mobsf_low_priority_path:僅來自MobSF的低優先級漏洞的路徑。high_priority_path,unique_low_priority_path,high_risk_mobsf_path:不同優先級漏洞報告的路徑。
VSCode Cline擴展配置
要在VSCode中使用cline擴展來使用此項目,請在你的cline配置文件中添加以下配置:
{
"mcpServers": {
"apk_analysis": {
"disabled": false,
"timeout": 60,
"command": "myenv\\Scripts\\python.exe",
"args": [
"CrossValidation_APKAnalysis.py"
],
"transportType": "stdio"
}
}
}
通過以上過程,項目實現了多工具、多視角的漏洞發現和自動化決策,大大提高了分析結果的全面性、準確性和實用價值。
🔧 技術細節
本項目使用“多專家決策”模型,結合5種主流逆向分析工具(JEB、JADX、APKTool、FlowDroid、MobSF)的MCP接口,對APK安全進行全面分析。具體技術細節如下:
- 多位專家獨立作答:5種逆向分析工具(MCP)對同一個APK獨立進行靜態分析,並自動生成各自的漏洞報告。每個工具作為一個“專家”,從不同的視角和技術細節獨立發現潛在的安全問題。
- 大模型頻率統計與排序:使用大模型對所有工具輸出的漏洞進行合併、去重和內容分析,統計每個漏洞在5個工具報告中的出現頻率,並記錄其來源。按出現頻率對所有漏洞進行排序,出現頻率越高,可信度越高。
- 本地優先篩選與分流:自動保留前60%的高頻漏洞在本地,將後40%的漏洞分為兩類:無MobSF來源的漏洞全部保留,有MobSF來源的漏洞交給大模型進一步評估其危險性,僅保留高風險漏洞。
- 最終綜合整合:將本地保留的所有高優先級漏洞、獨特漏洞以及大模型評估為高風險的MobSF漏洞進行整合,生成最終的綜合漏洞分析報告。
📄 許可證
本項目採用Apache License 2.0許可協議 - 詳情請參閱LICENSE文件。
🙏 致謝
本項目基於並集成了多個優秀的開源工具和項目。
特別感謝:
- 所有集成工具的開發者和維護者
- 開源社區的持續貢獻
- 所有幫助改進本項目的貢獻者
⚠️ 免責聲明和法律聲明
本工具套件僅設計用於安全研究人員、滲透測試人員和開發者進行合法的安全測試和分析。用戶必須:
- 僅分析自己擁有或獲得明確測試許可的應用程序。
- 遵守所有適用的法律法規。
- 尊重知識產權和服務條款。
- 負責任且合乎道德地使用這些工具。
用戶必須確保其使用本工具符合:
- 本地和國際法律
- 軟件許可協議
- 被分析應用程序的服務條款
- 數據保護和隱私法規
🤝 貢獻
我們熱烈歡迎社區的貢獻!無論你是修復漏洞、改進文檔、添加新功能還是提出改進建議,我們都非常感謝你的幫助。
- 🐛 報告漏洞和問題
- 💡 提出新功能或改進建議
- 📝 改進文檔
- 🔍 審查代碼和拉取請求
- 💻 提交拉取請求
我們致力於共同使這個項目變得更好。你的貢獻將使這個工具對整個安全研究社區更加強大和有用。
替代品








