"Hacks" for the game PEAK.

Don't expect much right now honestly.

Matthew Trejo 36b876afed git de papel 4 tháng trước cách đây
core 36b876afed git de papel 4 tháng trước cách đây
patches 36b876afed git de papel 4 tháng trước cách đây
patterns 36b876afed git de papel 4 tháng trước cách đây
utils 36b876afed git de papel 4 tháng trước cách đây
.gitignore 36b876afed git de papel 4 tháng trước cách đây
README.md 36b876afed git de papel 4 tháng trước cách đây
config.py 36b876afed git de papel 4 tháng trước cách đây
main.py 36b876afed git de papel 4 tháng trước cách đây
patcher.py 36b876afed git de papel 4 tháng trước cách đây
requirements.txt 36b876afed git de papel 4 tháng trước cách đây

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