chipsec
Static analysis of UEFI/BIOS firmware dumps using Intel's chipsec framework. Decode firmware structure, detect known malware and…
Android APK unpacking and resource extraction tool for reverse engineering. Use when you need to decode APK files, extract resources, examine AndroidManifest.xml, analyze smali code, or repackage modified APKs.
Claude Code
$ npx -y skills add brownfinesecurity/iothackbot --skill apktool --agent claude-code
Codex
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a codex -y
Cursor
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a cursor -y
Gemini CLI
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a gemini-cli -y
GitHub Copilot
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a github-copilot -y
OpenCode
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a opencode -y
Windsurf
$ npx skills add brownfinesecurity/iothackbot --skill apktool -a windsurf -y
name: apktool description: Android APK unpacking and resource extraction tool for reverse engineering. Use when you need to decode APK files, extract resources, examine AndroidManifest.xml, analyze smali code, or repackage modified APKs.
You are helping the user reverse engineer Android APK files using apktool for security analysis, vulnerability discovery, and understanding app internals.
Apktool is a tool for reverse engineering Android APK files. It can decode resources to nearly original form and rebuild them after modifications. It's essential for:
When the user asks to unpack, decode, or analyze an APK:
**Standard decode command:**
apktool d <apk-file> -o <output-directory>
**Example:**
apktool d app.apk -o app-unpacked
**With force overwrite (if directory exists):**
apktool d app.apk -o app-unpacked -f
After unpacking, the output directory contains:
app-unpacked/ ├── AndroidManifest.xml # Readable manifest (permissions, components) ├── apktool.yml # Apktool metadata (version info, SDK levels) ├── original/ # Original META-INF certificates │ └── META-INF/ ├── res/ # Decoded resources │ ├── layout/ # XML layouts │ ├── values/ # Strings, colors, dimensions │ ├── drawable/ # Images and drawables │ └── ... ├── smali/ # Disassembled DEX code (smali format) │ └── com/company/app/ # Package structure ├── assets/ # App assets (if present) ├── lib/ # Native libraries (if present) │ ├── arm64-v8a/ │ ├── armeabi-v7a/ │ └── ... └── unknown/ # Files apktool couldn't classify
**Skip resources (code analysis only):**
apktool d app.apk -o app-code-only -r # or apktool d app.apk -o app-code-only --no-res
**Skip source code (resource analysis only):**
apktool d app.apk -o app-resources-only -s # or apktool d app.apk -o app-resources-only --no-src
The manifest reveals critical security information:
# After unpacking cat app-unpacked/AndroidManifest.xml
**Look for:**
**Example analysis commands:**
# Find all permissions grep "uses-permission" app-unpacked/AndroidManifest.xml # Find exported components grep "exported=\"true\"" app-unpacked/AndroidManifest.xml # Check if debuggable grep "debuggable" app-unpacked/AndroidManifest.xml # Find all activities grep "android:name.*Activity" app-unpacked/AndroidManifest.xml
# View all string resources cat app-unpacked/res/values/strings.xml # Search for API keys, URLs, credentials grep -r "api" app-unpacked/res/values/ grep -r "http" app-unpacked/res/values/ grep -r "password\|secret\|key\|token" app-unpacked/res/values/ # Find hardcoded URLs in resources grep -rE "https?://" app-unpacked/res/
Smali is the disassembled Dalvik bytecode format:
# Find specific class find app-unpacked/smali -name "*Login*.smali" find app-unpacked/smali -name "*Auth*.smali" # Search for security-relevant code grep -r "crypto\|encrypt\|decrypt" app-unpacked/smali/ grep -r "http\|https\|url" app-unpacked/smali/ grep -r "password\|credential\|token" app-unpacked/smali/ # Find native library usage grep -r "System.loadLibrary" app-unpacked/smali/ # Find file operations grep -r "openFileOutput\|openFileInput" app-unpacked/smali/
**Note**: Smali is harder to read than Java source. Consider using jadx for Java decompilation for easier analysis.
# List native libraries ls -lah app-unpacked/lib/ # Check architectures supported ls app-unpacked/lib/ # Identify library types file app-unpacked/lib/arm64-v8a/*.so # Search for interesting strings in libraries strings app-unpacked/lib/arm64-v8a/libnative.so | grep -i "http\|key\|password"
After modifying resources or smali code:
apktool b app-unpacked -o app-modified.apk
**Important**: Rebuilt APKs must be signed before installation:
# Generate keystore (one-time setup) keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias # Sign APK jarsigner -verbose -keystore my-release-key.jks app-modified.apk my-key-alias # Verify signature jarsigner -verify app-modified.apk # Zipalign (optimization) zipalign -v 4 app-modified.apk app-modified-
Open-source IoT security testing toolkit with integrated Claude Code skills for automated vulnerability discovery.
Static analysis of UEFI/BIOS firmware dumps using Intel's chipsec framework. Decode firmware structure, detect known malware and…
Advanced file finder with type detection and filesystem extraction for analyzing firmware and extracting embedded filesystems.…
IoT network traffic analyzer for detecting IoT protocols and identifying security vulnerabilities in network communications. Use…
Android APK decompiler that converts DEX bytecode to readable Java source code. Use when you need to decompile APK files, analyze…
Probe IoT/embedded targets for exposed SWD/JTAG debug interfaces using a SEGGER J-Link. Detects whether debug is OPEN, LOCKED…
Analyze digital and analog captures from Saleae Logic MSO devices. Decode protocols like UART, SPI, I2C from exported binary…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…