Skip to content
Back to skills

Unpacking Upx And Common Packers

ASecurity

'Identifies and unpacks packed binaries: detecting packers from section names and

  • 22 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added September 11, 2026
securitypythonbashgitapisecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add meltedinhex/analyst-ai-pack --skill unpacking-upx-and-common-packers --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unpacking Upx And Common Packers?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Unpacking Upx And Common Packers
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/meltedinhex-unpacking-upx-and-common-packers/badge)](https://www.skillsdirectory.com/skills/meltedinhex-unpacking-upx-and-common-packers)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: unpacking-upx-and-common-packers
description: 'Identifies and unpacks packed binaries: detecting packers from section names and
  entropy, automatically unpacking UPX, and manually unpacking custom packers by finding the
  OEP and dumping. Activates for requests to unpack a packed sample, detect a packer, or
  recover the original binary from UPX or a custom packer.'
domain: cybersecurity
subdomain: reverse-engineering
tags:
  - reverse-engineering
  - unpacking
  - upx
  - packers
  - entropy
  - oep
version: 1.0.0
author: analyst-ai-pack
license: Apache-2.0
mitre_attack:
  - T1027.002
  - T1140
  - T1480
d3fend:
  - D3-FCR
  - D3-PSA
references:
  - 'UPX — https://upx.github.io/'
  - 'Detect It Easy (DIE) — https://github.com/horsicq/Detect-It-Easy'
---

# Unpacking UPX and Common Packers

## When to Use

- A sample shows high entropy, few imports, or packer section names, and you need the original
  code for static analysis or RE.
- You want to unpack UPX automatically or manually unpack a custom/modified packer.
- You are preparing a sample for Ghidra/IDA (decompiling packed code is pointless).

**Do not use** generic unpackers as a guarantee — modified UPX and custom packers defeat
`upx -d`. Fall back to debugger-based manual unpacking.

## Prerequisites

- Packer detection (Detect It Easy, or the bundled section/entropy heuristics).
- `upx` for standard UPX; x64dbg + Scylla for manual unpacking (see the x64dbg skill).
- Isolated lab.

## Workflow

### Step 1: Detect the packer

```bash
python scripts/analyst.py detect sample.bin
```

Signals: section names (`UPX0`/`UPX1`, `.aspack`, `.themida`), high section entropy, a tiny
import table, and a small `.text` with a large high-entropy section.

### Step 2: Try automated UPX unpacking

If standard UPX:

```bash
upx -d -o sample_unpacked.bin sample.bin
```

If `upx -d` fails on a UPX-like sample, the header was likely tampered (e.g. `UPX!` magic or
version bytes altered) — repair the marker or unpack manually.

### Step 3: Manual unpacking for custom packers

In x64dbg: break on `VirtualAlloc`/`VirtualProtect`, run until the unpacked region is written
and made executable, find the **tail jump** to the original entry point (OEP), and dump there.

### Step 4: Dump and rebuild imports

Use Scylla to dump the process and reconstruct the Import Address Table (IAT) so the dumped PE
loads in a disassembler.

### Step 5: Verify the unpacked result

Confirm the dump is a clean PE with a populated import table and readable strings/code.

## Validation

- The unpacked file has restored imports and meaningful strings absent from the packed sample.
- Entropy of the unpacked `.text` drops to normal code levels.
- The disassembler resolves API calls (IAT rebuilt correctly).

## Pitfalls

- Running `upx -d` on tampered UPX and concluding it is not UPX; check for renamed/edited
  markers.
- Dumping before reaching the OEP, capturing still-encrypted code.
- Forgetting IAT reconstruction, leaving the dump unusable in Ghidra/IDA.

## References

- See [`references/api-reference.md`](references/api-reference.md) for the packer detector.
- UPX and Detect It Easy (linked in frontmatter).

Files in this skill

  • LICENSE340 B
  • SKILL.md3.1 KB
  • references/api-reference.md1.2 KB
  • scripts/analyst.py3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.