detecting-mobile-malware-behavior
通过行为分析、权限滥用检测、网络流量监控和动态插桩,检测并分析移动应用中的恶意行为。 适用于分析可疑移动应用的数据泄露、C2 通信、凭据窃取、SMS 拦截或其他恶意软件指标。 适合移动恶意软件分析、应用行为监控、木马检测或可疑应用调查相关请求。
Best use case
detecting-mobile-malware-behavior is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
通过行为分析、权限滥用检测、网络流量监控和动态插桩,检测并分析移动应用中的恶意行为。 适用于分析可疑移动应用的数据泄露、C2 通信、凭据窃取、SMS 拦截或其他恶意软件指标。 适合移动恶意软件分析、应用行为监控、木马检测或可疑应用调查相关请求。
Teams using detecting-mobile-malware-behavior should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/detecting-mobile-malware-behavior/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How detecting-mobile-malware-behavior Compares
| Feature / Agent | detecting-mobile-malware-behavior | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
通过行为分析、权限滥用检测、网络流量监控和动态插桩,检测并分析移动应用中的恶意行为。 适用于分析可疑移动应用的数据泄露、C2 通信、凭据窃取、SMS 拦截或其他恶意软件指标。 适合移动恶意软件分析、应用行为监控、木马检测或可疑应用调查相关请求。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 检测移动恶意软件行为
## 适用场景
适用于以下情况:
- 分析用户提交或在事件响应中发现的可疑移动应用
- 监控企业移动设备中的恶意应用指标
- 对 APK/IPA 样本进行恶意软件分类
- 调查移动应用导致的数据泄露或未授权设备访问
**不适用场景**:不得使用本 skill 创建、增强或传播恶意软件。本 skill 仅用于防御性分析。
## 前置条件
- 隔离的分析环境(专用设备或模拟器,不连接生产网络)
- MobSF,用于自动化静态+动态分析
- Frida/Objection,用于运行时行为监控
- Wireshark/tcpdump,用于网络流量捕获
- Android 模拟器(AVD)或 Genymotion,用于安全执行
- VirusTotal API 密钥,用于哈希查询
## 工作流程
### 步骤 1:静态指标分析
```bash
# 计算样本哈希值
sha256sum suspicious.apk
# 查询 VirusTotal
curl -s "https://www.virustotal.com/api/v3/files/<SHA256>" \
-H "x-apikey: <VT_API_KEY>" | jq '.data.attributes.last_analysis_stats'
# 从 AndroidManifest.xml 提取权限
aapt dump permissions suspicious.apk
# 高风险权限组合:
# READ_SMS + INTERNET = SMS 窃取器
# RECEIVE_SMS + SEND_SMS = SMS 拦截器/银行木马
# ACCESSIBILITY_SERVICE + INTERNET = 覆盖攻击能力
# CAMERA + RECORD_AUDIO + INTERNET = 间谍软件
# DEVICE_ADMIN + INTERNET = 勒索软件能力
# READ_CONTACTS + INTERNET = 联系人泄露
```
### 步骤 2:MobSF 自动化恶意软件扫描
```bash
# 上传到 MobSF
curl -F "file=@suspicious.apk" http://localhost:8000/api/v1/upload \
-H "Authorization: <API_KEY>"
# 查看报告中的恶意软件指标:
# - 硬编码的 C2 服务器地址
# - 动态代码加载(DexClassLoader)
# - 基于反射的 API 调用(逃避静态分析)
# - 加密/混淆的有效载荷
# - Root 检测(恶意软件通常检查 root 权限)
# - 反模拟器检测(恶意软件逃避沙箱)
```
### 步骤 3:网络行为监控
```bash
# 在模拟器上启动数据包捕获
tcpdump -i any -w malware_traffic.pcap
# 或使用 mitmproxy 处理 HTTP/HTTPS
mitmproxy --mode transparent
# 监控以下行为:
# - 查询可疑/新注册域名的 DNS 请求
# - 连接已知的 C2 基础设施
# - 数据泄露模式(大型 POST 请求)
# - 信标行为(固定间隔的连接)
# - 非标准端口和协议
# - 域名生成算法(DGA)模式
```
### 步骤 4:使用 Frida 进行运行时行为监控
```javascript
// monitor_malware.js - 综合行为监控
Java.perform(function() {
// 监控 SMS 访问
var SmsManager = Java.use("android.telephony.SmsManager");
SmsManager.sendTextMessage.overload("java.lang.String", "java.lang.String",
"java.lang.String", "android.app.PendingIntent", "android.app.PendingIntent")
.implementation = function(dest, sc, text, sent, delivery) {
console.log("[SMS] 发送至: " + dest + " 内容: " + text);
// 根据分析需求决定允许或阻断
return this.sendTextMessage(dest, sc, text, sent, delivery);
};
// 监控文件操作
var FileOutputStream = Java.use("java.io.FileOutputStream");
FileOutputStream.$init.overload("java.lang.String").implementation = function(path) {
console.log("[FILE-WRITE] " + path);
return this.$init(path);
};
// 监控网络连接
var URL = Java.use("java.net.URL");
URL.openConnection.overload().implementation = function() {
console.log("[NET] " + this.toString());
return this.openConnection();
};
// 监控动态代码加载
var DexClassLoader = Java.use("dalvik.system.DexClassLoader");
DexClassLoader.$init.implementation = function(dexPath, optDir, libPath, parent) {
console.log("[DEX-LOAD] 加载: " + dexPath);
return this.$init(dexPath, optDir, libPath, parent);
};
// 监控命令执行
var Runtime = Java.use("java.lang.Runtime");
Runtime.exec.overload("java.lang.String").implementation = function(cmd) {
console.log("[EXEC] " + cmd);
return this.exec(cmd);
};
// 监控摄像头/麦克风访问
var Camera = Java.use("android.hardware.Camera");
Camera.open.overload("int").implementation = function(id) {
console.log("[CAMERA] 摄像头已打开: " + id);
return this.open(id);
};
// 监控内容提供者访问(联系人、通话记录)
var ContentResolver = Java.use("android.content.ContentResolver");
ContentResolver.query.overload("android.net.Uri", "[Ljava.lang.String;",
"java.lang.String", "[Ljava.lang.String;", "java.lang.String")
.implementation = function(uri, proj, sel, selArgs, sort) {
console.log("[QUERY] " + uri.toString());
return this.query(uri, proj, sel, selArgs, sort);
};
console.log("[*] 恶意软件行为监控已激活");
});
```
### 步骤 5:恶意软件类型分类
根据观察到的行为对样本进行分类:
| 行为模式 | 恶意软件类型 |
|----------|------------|
| SMS 拦截 + C2 通信 | 银行木马 |
| 摄像头/麦克风访问 + 数据上传 | 间谍软件/跟踪软件 |
| 文件加密 + 勒索信展示 | 移动勒索软件 |
| 广告注入 + 点击欺诈流量 | 广告软件 |
| Root 漏洞利用 + 持久化 | Rootkit |
| 联系人采集 + SMS 垃圾邮件 | 蠕虫/SMS 垃圾发送器 |
| 覆盖攻击 + 凭据捕获 | 凭据窃取器 |
| 加密货币挖矿网络活动 | 挖矿劫持软件 |
## 核心概念
| 术语 | 定义 |
|------|------|
| **动态代码加载** | 在运行时从外部源加载可执行代码,恶意软件常用此技术逃避静态分析 |
| **C2 信标** | 恶意软件定期向命令控制服务器发送的网络签入,可通过周期性时序模式识别 |
| **DGA** | 域名生成算法(Domain Generation Algorithm),为弹性 C2 基础设施创建伪随机域名 |
| **覆盖攻击** | 在合法应用上绘制虚假 UI 以捕获凭据,需要 SYSTEM_ALERT_WINDOW 权限 |
| **反模拟器** | 恶意软件用于检测沙箱/模拟器环境并抑制恶意行为的技术 |
## 工具与系统
- **MobSF**:用于初步恶意软件分类的自动化静态和动态分析工具
- **VirusTotal**:多引擎恶意软件扫描和哈希信誉查询
- **Frida**:通过方法 Hook 进行运行时行为监控
- **Wireshark**:用于 C2 通信模式的网络流量分析
- **Cuckoo Sandbox / CuckooDroid**:Android 样本的自动化恶意软件分析沙箱
## 常见问题
- **反分析规避**:复杂恶意软件会检测模拟器、调试器和 Frida。使用硬件设备和隐蔽 Frida 配置以获得准确分析结果。
- **时延触发载荷**:某些恶意软件仅在延迟后或特定触发条件下激活。需要长时间监控并模拟各种条件。
- **加密 C2**:使用加密通信的恶意软件需要 TLS 拦截或内存检查才能观察到载荷内容。
- **多阶段载荷**:初始 APK 可能是良性的,恶意载荷在后续下载。监控动态代码加载和文件下载行为。Related Skills
testing-mobile-api-authentication
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。
reverse-engineering-rust-malware
使用 IDA Pro 和 Ghidra 对 Rust 编译的恶意软件进行逆向工程,掌握处理非空终止字符串、提取 crate 依赖项和 Rust 特有控制流分析的专项技术。
reverse-engineering-malware-with-ghidra
使用 NSA 的 Ghidra 反汇编器和反编译器对恶意软件二进制文件进行逆向工程,在汇编和伪 C 代码层面理解其内部逻辑、密码学例程、C2 协议和规避技术。适用于恶意软件逆向工程、反汇编分析、反编译、二进制分析或理解恶意软件内部机制等请求。
reverse-engineering-dotnet-malware-with-dnspy
使用 dnSpy 反编译器和调试器对 .NET 恶意软件进行逆向工程,分析 C#/VB.NET 源代码,识别混淆技术,提取配置信息,理解包括信息窃取器、远程访问木马(RAT)和加载器在内的恶意功能。适用于 .NET 恶意软件分析、C# 恶意软件反编译、托管代码逆向工程或 .NET 混淆分析等请求。
reverse-engineering-android-malware-with-jadx
使用 JADX 反编译器对恶意 Android APK 文件进行逆向工程,分析 Java/Kotlin 源代码,识别包括数据窃取、C2 通信、权限提升和覆盖攻击在内的恶意功能。检查 Manifest 权限、Receiver、Service 及原生库。适用于 Android 恶意软件分析、APK 逆向工程、移动端恶意软件调查或 Android 威胁分析等请求。
performing-user-behavior-analytics
执行用户和实体行为分析(UEBA),通过基于 SIEM 的行为基线和统计分析, 检测异常用户活动,包括不可能旅行、异常访问模式、权限滥用和内部威胁。 适用于 SOC 团队通过偏离既定行为规范来识别被攻陷账户或内部威胁。
performing-static-malware-analysis-with-pe-studio
使用 PEStudio 对 Windows PE(可移植可执行文件)恶意软件样本进行静态分析, 检查文件头、导入表、字符串、资源和指标,无需执行二进制文件。 识别可疑特征,包括加壳、反分析技术和恶意导入。适用于静态恶意软件分析、 PE 文件检查、Windows 可执行文件分析或执行前恶意软件分级等请求场景。
performing-mobile-device-forensics-with-cellebrite
使用 Cellebrite UFED 和开源工具获取和分析移动设备数据,提取通信记录、位置数据和应用程序制品。
performing-mobile-app-certificate-pinning-bypass
在授权安全评估期间,绕过 Android 和 iOS 应用中的 SSL/TLS 证书固定实现,以启用流量拦截。 涵盖使用 Frida、Objection 和自定义脚本对 OkHttp、TrustManager、NSURLSession 及第三方固定库的绕过技术。适合证书固定绕过、SSL 固定破解、移动 TLS 拦截 或代理抗性应用测试相关请求。
performing-malware-triage-with-yara
使用 YARA 规则对文件模式、字符串、字节序列和结构特征进行匹配,快速分级和分类恶意软件样本, 识别已知恶意软件家族及可疑指标。涵盖规则编写、扫描和与分析流程的集成。适用于 YARA 规则创建、 恶意软件分类、模式匹配、样本分级或基于签名的检测等请求场景。
performing-malware-persistence-investigation
系统性地调查 Windows 和 Linux 系统上的所有持久化机制,以识别恶意软件如何在重启后存活并维持访问。
performing-malware-ioc-extraction
恶意软件 IOC(失陷指标)提取是指通过分析恶意软件,识别可操作的失陷指标,包括文件哈希、网络指标(C2 域名、IP 地址、URL)、注册表修改、互斥体名称、嵌入字符串和行为产物。