Metadata-Version: 2.4
Name: exploitlab
Version: 0.1.0
Summary: A modern, lightweight, and robust exploit development library.
Author-email: MrexRight <aratmakefehan@gmail.com>
Project-URL: Homepage, https://github.com/yourusername/exploitlab
Project-URL: Bug Tracker, https://github.com/yourusername/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 :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pyelftools>=0.29
Requires-Dist: keystone-engine>=0.9.2
Requires-Dist: capstone>=4.0.2

# 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.1.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()
```
