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
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
Crear nueva clase de parche en patches/patch_factory.py:
class NewPatch(Patch):
def create_patch(self, original_data: bytes) -> bytes:
# Implementar lógica del parche
pass
Registrar en la factory:
_patch_types = {
'stamina': StaminaPatch,
'health': HealthPatch,
'new_type': NewPatch # Agregar aquí
}
Agregar Nuevos Buscadores de Patrones
- Crear nueva clase heredando de
PatternSearcher
- Implementar métodos abstractos
get_patterns() y search()
- 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:
- Seguir los patrones de diseño establecidos
- Documentar nuevas funcionalidades
- Mantener la separación de responsabilidades
- Agregar tests cuando sea posible