# Patcher Avanzado para PEAK.exe Un patcher de memoria avanzado que utiliza patrones de diseño para modificar el comportamiento del stamina y la velocidad de movimiento en el juego PEAK.exe. ## 🏗️ Arquitectura del Proyecto El proyecto ha sido reorganizado siguiendo patrones de diseño para mejorar la mantenibilidad y escalabilidad: ### Estructura de Directorios ``` peakGame/ ├── main.py # Punto de entrada principal ├── patcher.py # Clase principal (Facade Pattern) ├── config.py # Configuración centralizada ├── advanced_patcher.py # Archivo original (legacy) ├── core/ │ ├── __init__.py │ └── memory_manager.py # Gestión de memoria del proceso ├── patterns/ │ ├── __init__.py │ └── pattern_searcher.py # Búsqueda de patrones (Strategy Pattern) ├── patches/ │ ├── __init__.py │ └── patch_factory.py # Creación de parches (Factory Pattern) ├── utils/ │ ├── __init__.py │ └── helpers.py # Utilidades auxiliares └── venv/ # Entorno virtual ``` ## 🎯 Patrones de Diseño Implementados ### 1. **Strategy Pattern** - Búsqueda de Patrones - **Ubicación**: `patterns/pattern_searcher.py` - **Propósito**: Permite diferentes estrategias de búsqueda de patrones en memoria - **Beneficio**: Fácil extensión para nuevos tipos de patrones ### 2. **Factory Pattern** - Creación de Parches - **Ubicación**: `patches/patch_factory.py` - **Propósito**: Crea diferentes tipos de parches de manera uniforme - **Beneficio**: Extensibilidad para nuevos tipos de parches (vida, munición, etc.) ### 3. **Facade Pattern** - Coordinación de Módulos - **Ubicación**: `patcher.py` - **Propósito**: Proporciona una interfaz simplificada para coordinar todos los módulos - **Beneficio**: Simplifica el uso y oculta la complejidad interna ## 🚀 Uso ### Ejecución Básica ```bash python main.py ``` ### Requisitos - Python 3.7+ - psutil - Permisos de administrador - PEAK.exe ejecutándose ## 📋 Características - ✅ **Stamina infinita**: Mantiene el stamina siempre al 100% - ✅ **Velocidad modificable**: Cambia la velocidad de movimiento (0.5x, 1x, 2x, 3x) - ✅ **Menú interactivo**: Selección fácil del tipo de parche a aplicar - ✅ **Búsqueda optimizada**: Chunks de 128KB con overlap inteligente - ✅ **Backup automático**: Copia de seguridad del código original - ✅ **Verificación**: Confirma que el parche se aplicó correctamente - ✅ **Interfaz amigable**: Mensajes claros y confirmaciones - ✅ **Arquitectura modular**: Fácil mantenimiento y extensión - ✅ **Manejo de errores**: Gestión robusta de excepciones ## 🔧 Extensibilidad ### Agregar Nuevos Tipos de Parches 1. **Crear nueva clase de parche** en `patches/patch_factory.py`: ```python class NewPatch(Patch): def create_patch(self, original_data: bytes) -> bytes: # Implementar lógica del parche pass ``` 2. **Registrar en la factory**: ```python _patch_types = { 'stamina': StaminaPatch, 'health': HealthPatch, 'new_type': NewPatch # Agregar aquí } ``` ### Agregar Nuevos Buscadores de Patrones 1. **Crear nueva clase** heredando de `PatternSearcher` 2. **Implementar métodos abstractos** `get_patterns()` y `search()` 3. **Usar en el patcher principal** ### Funcionalidades Implementadas #### Stamina Infinita - Busca el patrón específico de stamina en memoria - Modifica el código para mantener el stamina siempre al 100% #### Velocidad de Movimiento - Busca el patrón específico de velocidad en memoria - Permite modificar la velocidad con diferentes multiplicadores: - **0.5x**: Media velocidad - **1x**: Velocidad normal - **2x**: Doble velocidad - **3x**: Triple velocidad - Patrón: *pendiente* - Modificación: Cambia los bytes `C8 41` por el valor correspondiente al multiplicador ## ⚠️ Advertencias - **Uso bajo tu propia responsabilidad** - **Ejecutar como administrador** - **Crear backup antes de usar** - **Solo para uso educativo/personal** ## 📝 Notas de Desarrollo - **Configuración centralizada** en `config.py` - **Separación de responsabilidades** por módulos - **Código reutilizable** y testeable - **Documentación inline** en todas las clases ## 🤝 Contribuciones Para contribuir: 1. Seguir los patrones de diseño establecidos 2. Documentar nuevas funcionalidades 3. Mantener la separación de responsabilidades 4. Agregar tests cuando sea posible