Metadata-Version: 2.4
Name: unsea
Version: 0.2.0
Summary: Extracts the javascript source code and assets of Node Single Executable Applications
Keywords: node,javascript,single executable application,unpacking,reverse engineering
Author: j4k0xb
Author-email: j4k0xb <<55899582+j4k0xb@users.noreply.github.com>>
License-Expression: GPL-3.0-only
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Project-URL: Homepage, https://github.com/j4k0xb/unsea
Project-URL: Source, https://github.com/j4k0xb/unsea
Project-URL: Issues, https://github.com/j4k0xb/unsea/issues
Description-Content-Type: text/markdown

# unsea

Extracts the javascript source code and assets of Node [Single Executable Applications](https://nodejs.org/api/single-executable-applications.html).

Supports ELF (Linux), PE (Windows), and Mach-O (MacOS) executables generated by Node.js v20 to v26.

## Installation

```bash
pip install unsea
```

## Usage

```bash
unsea <path-to-executable> [-o <output-directory>] [--force]
```

Output files:

- `main.js`: source code
- `main.jsc`: [code cache / bytecode](https://nodejs.org/api/single-executable-applications.html#v8-code-cache-support)
- `main-snapshot.bin`: [snapshot](https://nodejs.org/api/single-executable-applications.html#v8-snapshot-support)
- `sea-prep.blob`: preparation blob injected into a Node.js executable
- `config.json`: configuration to create the executable
- `assets/`: extracted assets

## Development

1. Clone the repo
2. Create/sync the environment:

   ```bash
   uv sync
   ```

3. Run the CLI:

   ```bash
   uv run unsea <path-to-executable>
   ```
