"Hacks" for the game PEAK.

Don't expect much right now honestly.

Matthew Trejo 36b876afed git de papel 4 maanden geleden
core 36b876afed git de papel 4 maanden geleden
patches 36b876afed git de papel 4 maanden geleden
patterns 36b876afed git de papel 4 maanden geleden
utils 36b876afed git de papel 4 maanden geleden
.gitignore 36b876afed git de papel 4 maanden geleden
README.md 36b876afed git de papel 4 maanden geleden
config.py 36b876afed git de papel 4 maanden geleden
main.py 36b876afed git de papel 4 maanden geleden
patcher.py 36b876afed git de papel 4 maanden geleden
requirements.txt 36b876afed git de papel 4 maanden geleden

README.md

Patcher Avanzado de Stamina para PEAK.exe

Un patcher de memoria avanzado que utiliza patrones de diseño para modificar el comportamiento del stamina 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

  • 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:

    class NewPatch(Patch):
    def create_patch(self, original_data: bytes) -> bytes:
        # Implementar lógica del parche
        pass
    
  2. Registrar en la factory:

    _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

⚠️ Advertencias

  • Uso bajo tu propia responsabilidad
  • Ejecutar como administrador
  • Crear backup antes de usar
  • Solo para uso educativo/personal

🔄 Migración desde Versión Anterior

El archivo advanced_patcher.py original se mantiene para compatibilidad. La nueva versión modular está en main.py.

📝 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