Extracts EXEs and DLLs from windows memory dumps
Find a file
2024-07-26 20:19:12 -05:00
LICENSE init 2024-07-26 01:08:21 -05:00
README.md readme 2024-07-26 20:19:12 -05:00
requirements.txt init 2024-07-26 01:08:21 -05:00
seax.py init 2024-07-26 01:08:21 -05:00

<head> </head>

seax

Carves EXEs and DLLs from Windows memory dumps by scanning for PE headers. Automatically renames any extracted binaries with an AssemblyInfo section.

Use cases:

  • deobfuscation - let the binary deobfuscate itself and rip it from memory instead of deobfuscating it manually from disk
  • extract embedded DLLs from .NET stand-alone executables for further analysis with other tools like dnSpy
  • desktop application pentesting
  • other fun reversing stuff
         ___________________________________________█               __,
       /░▒▓██▓▓▓▒▒▓▓▒▒  ░▒░▒██▒░▒▒░░    ░░░░░▒▒█ ║
     /░▒▒  ·-=   =≡≡■ SEAX ≡■≡   -=■≡■■■≡■■■≡≡=-   ╣
   /░▒▒▓███▓▓▓▒▒▓▓▒▒  ░▒░▒██▒░▒▒░░   ░░░░░▒▒▓▓██ ▓╝═╝═╝═╝═╝═╝═╝═╝║
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▒               |/

Instructions

  1. Obtain a memory dump (for example, by using Task Manager > Processes > Right Click > Create dump file)
  2. pip install -r requirements.txt
  3. Run seax on the memory dump
    • Any PEs found will be extracted to the output directory.
    • If seax can find the AssemblyInfo structure, it will rename the extracted files accordingly. If not, the filenames will reflect the hex offset the file was extracted from.
  4. Continue analysis in other tools like Ida, dnSpy, x64dbg, or Ghidra

Usage

Example:

$ python3 seax.py -o ~/temp/seax_out mem.dmp
usage: seax.py [-h] [-o OUTPUT] [-v] filename

Carve PEs (EXEs and DLLs) from a Windows memory dump

positional arguments:
  filename              path to Windows memory dump file

options:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        path to output directory (default is ./seax_out/)
  -v, --verbose         show extra messages