All Projects → unipacker → Unipacker

unipacker / Unipacker

Licence: gpl-2.0
Automatic and platform-independent unpacker for Windows binaries based on emulation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Unipacker

Uddbg
A gdb like debugger that provide a runtime env to unicorn emulator and additionals features!
Stars: ✭ 159 (-41.76%)
Mutual labels:  emulation, reverse-engineering, debugger
X64dbg
An open-source x64/x32 debugger for windows.
Stars: ✭ 37,825 (+13755.31%)
Mutual labels:  reverse-engineering, debugger
Frick
frick - aka the first debugger built on top of frida
Stars: ✭ 267 (-2.2%)
Mutual labels:  reverse-engineering, debugger
Detect It Easy
Program for determining types of files for Windows, Linux and MacOS.
Stars: ✭ 2,982 (+992.31%)
Mutual labels:  reverse-engineering, debugger
Docker Cross
Cross debugger suite
Stars: ✭ 15 (-94.51%)
Mutual labels:  reverse-engineering, debugger
Cutter
Free and Open Source Reverse Engineering Platform powered by rizin
Stars: ✭ 10,073 (+3589.74%)
Mutual labels:  reverse-engineering, debugger
Edb Debugger
edb is a cross-platform AArch32/x86/x86-64 debugger.
Stars: ✭ 2,019 (+639.56%)
Mutual labels:  reverse-engineering, debugger
Native Shim
A "shim" for loading native jni files for Android active debugging
Stars: ✭ 145 (-46.89%)
Mutual labels:  reverse-engineering, debugger
Vivisect
Stars: ✭ 672 (+146.15%)
Mutual labels:  emulation, reverse-engineering
Unidbg
Allows you to emulate an Android ARM32 and/or ARM64 native library, and an experimental iOS emulation
Stars: ✭ 1,168 (+327.84%)
Mutual labels:  emulation, debugger
Samsung Trustzone Research
Reverse-engineering tools and exploits for Samsung's implementation of TrustZone
Stars: ✭ 85 (-68.86%)
Mutual labels:  emulation, reverse-engineering
Ret Sync
ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.
Stars: ✭ 896 (+228.21%)
Mutual labels:  reverse-engineering, debugger
Xanalyzer
xAnalyzer plugin for x64dbg
Stars: ✭ 553 (+102.56%)
Mutual labels:  reverse-engineering, debugger
Nfdx64dbg
Plugin for x64dbg Linker/Compiler/Tool detector.
Stars: ✭ 105 (-61.54%)
Mutual labels:  reverse-engineering, debugger
Vegvisir
A browser based GUI for **LLDB** Debugger.
Stars: ✭ 189 (-30.77%)
Mutual labels:  reverse-engineering, debugger
Bsnes Plus
debug-oriented fork of bsnes
Stars: ✭ 209 (-23.44%)
Mutual labels:  emulation, debugger
gdbstub
An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Stars: ✭ 158 (-42.12%)
Mutual labels:  debugger, emulation
Rec98
The Touhou PC-98 Restoration Project
Stars: ✭ 259 (-5.13%)
Mutual labels:  reverse-engineering
Btcdeb
Bitcoin Script Debugger
Stars: ✭ 267 (-2.2%)
Mutual labels:  debugger
Simpleator
Simpleator ("Simple-ator") is an innovative Windows-centric x64 user-mode application emulator that leverages several new features that were added in Windows 10 Spring Update (1803), also called "Redstone 4", with additional improvements that were made in Windows 10 October Update (1809), aka "Redstone 5".
Stars: ✭ 260 (-4.76%)
Mutual labels:  reverse-engineering
 _   _         __  _  __                    _
| | | |       / / (_) \ \                  | |
| | | |_ __  | |   _   | | _ __   __ _  ___| | _____ _ __
| | | | '_ \/ /   | |   \ \ '_ \ / _` |/ __| |/ / _ \ '__|
| |_| | | | \ \   | |   / / |_) | (_| | (__|   <  __/ |
 \___/|_| |_|| |  |_|  | || .__/ \__,_|\___|_|\_\___|_|
              \_\     /_/ | |
                          |_|

Un{i}packer PyPI: unipacker Docker Cloud Build Status DOI

Master Build Status
Dev Build Status

Unpacking PE files using Unicorn Engine

The usage of runtime packers by malware authors is very common, as it is a technique that helps to hinder analysis. Furthermore, packers are a challenge for antivirus products, as they make it impossible to identify malware by signatures or hashes alone.

In order to be able to analyze a packed malware sample, it is often required to unpack the binary. Usually this means, that the analyst will have to manually unpack the binary by using dynamic analysis techniques (Tools: OllyDbg, x64Dbg). There are also some approaches for automatic unpacking, but they are all only available for Windows. Therefore when targeting a packed Windows malware the analyst will require a Windows machine. The goal of our project is to enable platform independent automatic unpacking by using emulation that yields runnable Windows binaries.

Fully supported packers

  • ASPack: Advanced commercial packer with a high compression ratio
  • FSG: Freeware, fast to unpack
  • MEW: Specifically designed for small binaries
  • MPRESS: Free, more complex packer
  • PEtite: Freeware packer, similar to ASPack
  • UPX: Cross-platform, open source packer
  • YZPack

Other packers

Any other packers should work as well, as long as the needed API functions are implemented in Un{i}packer. For packers that aren't specifically known you will be asked whether you would like to manually specify the start and end addresses for emulation. If you would like to start at the entry point declared in the PE header and just emulate until section hopping is detected, press Enter

Usage

Normal installation

Install the YARA package for your OS, get Un{i}packer from PyPi and start it using the automatically created command line wrapper:

pip3 install unipacker
unipacker

For detailed instructions on how to use Un{i}packer please refer to the Wiki. Additionally, all of the shell commands are documented. To access this information, use the help command

You can take a quick look at Un{i}packer in action in a (german) video by Prof. Chris Dietrich

Development mode installation

Clone the repository, and inside the project root folder activate development mode using pip3 install -e .

Using Docker

You can also use the provided Dockerfile to run a containerized version of Un{i}packer:

docker run -it -v ~/local_samples:/root/unipacker/local_samples vfsrfs/unipacker

Assuming you have a folder called local_samples in your home directory, this will be mounted inside the container. Un{i}packer will thus be able to access those binaries via /root/unipacker/local_samples

RESTful API

A 3rd party wrapper created by @rpgeeganage allows to unpack samples by sending a request to a RESTful server: https://github.com/rpgeeganage/restful4up

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].