PluginBench
Skill
Review
Audit score 70

rev-dex-dumper

p4nda0s/reverse-skills

Dump DEX files from running Android apps for reverse engineering and deobfuscation.

What is rev-dex-dumper?

Extracts DEX bytecode from a live Android application's memory using ADB and the bundled panda-dex-dumper tool. Use this when you need to unpack APKs, bypass class-loading packers, or recover decrypted DEX files for analysis.

  • Dumps DEX files directly from an Android app's memory via ptrace
  • Extracts decrypted DEX from packed/obfuscated applications
  • Handles multiple DEX outputs from complex class loaders
  • Automatically pulls dumped files to your host machine
  • Cleans up device artifacts after extraction

How to install rev-dex-dumper

npx skills add https://github.com/p4nda0s/reverse-skills --skill rev-dex-dumper
Prerequisites
  • Android device connected via ADB
  • ADB tools installed on host machine
  • Device must be rooted or running as root (ptrace requirement)
  • Target app must be running on the device
Claude Code
Cursor
Windsurf
Cline

How to use rev-dex-dumper

  1. 1.Verify ADB connection with `adb devices`
  2. 2.Push panda-dex-dumper to device and make it executable
  3. 3.Identify the target app's package name or get the foreground app
  4. 4.Launch the app and navigate past any splash screens to ensure DEX is loaded
  5. 5.Run panda-dex-dumper against the app's process ID
  6. 6.Pull the dumped DEX files from `/data/local/tmp/panda/` to your machine
  7. 7.Clean up the device by removing the tool and dumped files

Use cases

Good for
  • Reverse engineering a packed Android app to analyze its real code
  • Extracting decrypted DEX from an app that uses runtime encryption
  • Defeating class-loading packers by dumping after the packer decrypts
  • Analyzing malware samples by extracting their actual bytecode
  • Deobfuscating an app by dumping and then using a decompiler
Who it's for
  • Android security researchers
  • Reverse engineers analyzing APKs
  • Malware analysts
  • App developers debugging obfuscated code

rev-dex-dumper FAQ

What if the device is not rooted?

panda-dex-dumper uses ptrace which requires root. Try `adb root` to restart adbd as root, or run the dumper via `su` if the device has a su binary.

The dump fails with 'pidof' returning empty. What should I do?

The app is not running. Launch it first using `adb shell monkey -p <package_name> -c android.intent.category.LAUNCHER 1` or manually open it on the device.

Why am I getting multiple DEX files?

Packed or complex apps often have multiple DEX files loaded by their class loader. This is normal—pull all files from `/data/local/tmp/panda/` for a complete dump.

Do I need to clean up the device after dumping?

Yes. Always remove both the dumped DEX files and the panda-dex-dumper binary from the device to avoid leaving artifacts and wasting storage.

Can I dump a DEX file if the app uses runtime encryption?

Yes, that's the main purpose. By dumping from memory after the app has decrypted the DEX at runtime, you extract the plaintext bytecode.

Full instructions (SKILL.md)

Source of truth, from p4nda0s/reverse-skills.


name: rev-dex-dumper description: Dump DEX files from a running Android app for unpacking/deobfuscation. Activate when the user wants to unpack an Android APK, dump DEX from memory, extract decrypted DEX files, or defeat class-loading packing.

rev-dex-dumper - Android DEX Dumper

Dump DEX files from a running Android application's memory using panda-dex-dumper via ADB.


Tool Location

The panda-dex-dumper binary is bundled in this skill's directory. Resolve its absolute path relative to this SKILL.md file:

skills/rev-dex-dumper/panda-dex-dumper

Workflow

1. Push the tool to device

adb push <path-to>/panda-dex-dumper /data/local/tmp/
adb shell chmod +x /data/local/tmp/panda-dex-dumper

2. Determine target package name

If the user provides a package name, use it directly. Otherwise, get the foreground app:

adb shell dumpsys activity top | grep 'ACTIVITY' | tail -1 | awk '{print $2}' | cut -d/ -f1

3. Run the dumper

adb shell "cd /data/local/tmp && ./panda-dex-dumper -p $(adb shell pidof <package_name>)"

The dumped DEX files are saved to /data/local/tmp/panda/ on the device.

4. Pull DEX files to host

adb pull /data/local/tmp/panda/ ./

Pull to the user's current working directory.

5. Clean up device cache

adb shell rm -rf /data/local/tmp/panda/
adb shell rm /data/local/tmp/panda-dex-dumper

Guidelines

  1. Always verify ADB connection first — run adb devices and confirm a device is listed before proceeding.
  2. Root may be required — panda-dex-dumper uses ptrace to attach to the target process. If the device is not rooted, the dump will fail. Suggest adb root or running via su if needed.
  3. Wait for app to fully load — if the user is dumping a packed app, the real DEX is only available after the packer's class loader has decrypted it. Advise the user to navigate past the splash screen before dumping.
  4. Handle pidof failure — if pidof returns empty, the app may not be running. Launch it first with adb shell monkey -p <package_name> -c android.intent.category.LAUNCHER 1.
  5. Multiple DEX files are normal — packed apps often produce several DEX files. All files in /data/local/tmp/panda/ should be pulled.
  6. Always clean up — remove both the dumped DEX files and the tool binary from the device after pulling results to avoid leaving artifacts.