![]() |
|
Aporte [TUTORIAL PS2] Protección y Desbloqueo del Sistema de Archivos AFS (Winning Eleven / - Versión para impresión +- Foro PES Retro (https://foro.pesretro.net) +-- Foro: Pro Evolution Soccer - Edición General (https://foro.pesretro.net/forum-4.html) +--- Foro: PES para Play Station (https://foro.pesretro.net/forum-51.html) +--- Tema: Aporte [TUTORIAL PS2] Protección y Desbloqueo del Sistema de Archivos AFS (Winning Eleven / (/thread-14050.html) |
[TUTORIAL PS2] Protección y Desbloqueo del Sistema de Archivos AFS (Winning Eleven / - we11world - 08-06-2026 [TUTORIAL PS2] Protección y Desbloqueo del Sistema de Archivos AFS (Winning Eleven / PES)
Introducción y Propósito ¡Hola a toda la comunidad de edición retro de Pro Evolution Soccer y Winning Eleven! Con el paso del tiempo y el avance del reverse engineering en la plataforma PlayStation 2, nos hemos encontrado con ISOs y modificaciones donde el archivo de datos principal (0_TEXT.AFS, S_TEXT.AFS, etc.) presenta protecciones de lectura, encabezados alterados o sectores bloqueados que impiden la extracción limpia de gráficos, estadios, kits o audios mediante herramientas tradicionales como AFS Explorer o GGS (Graphic Studio). En este tutorial documentamos el método técnico paso a paso para analizar, desproteger y reconstruir estructuras de archivos AFS protegidas o modificadas en ISOs de PS2. Herramientas Necesarias
Concepto Técnico: La Estructura del Archivo AFS Un archivo AFS es un contenedor de archivos propietario usado por KONAMI. Su estructura básica en el encabezado (Header) consta de: Código: 0x00 - 0x03 : Firma Mágica "AFS\0" (0x41 0x46 0x53 0x00)
0x04 - 0x07 : Número de archivos contenidos (32-bit Little Endian)
0x08 - ... : Tabla de offsets y tamaños (8 bytes por archivo)
- Bytes 0-3: Offset del archivo (en sectores / bytes)
- Bytes 4-7: Tamaño exacto del archivo (en bytes)¿Cómo funciona la "Protección"? Muchos editores alteraban la tabla de nombres de archivos (Filename Directory) ubicada al final del contenedor, corruptían la firma mágica inicial o dummy-bytes entre bloques para que herramientas automáticas crasheen al intentar abrirlos, aunque la consola PS2 los lea correctamente mediante direcciones absolutas programadas en el ejecutable (SLPM / SLES). Paso a Paso: Análisis y Desbloqueo =3Paso 1: Verificación de la Firma Mágica (Header Check) 1. Abre el archivo `.AFS` con tu Editor Hexadecimal (HxD). 2. Revisa los primeros 4 bytes (Offset `0x00000000`). 3. Debe decir exactamente `41 46 53 00` (AFS). 4. Si muestra valores corruptos o borrados: Restaura manualmente los 4 bytes a `41 46 53 00`. Paso 2: Corrección del Conteo de Archivos 1. Revisa los bytes `0x04` a `0x07`. 2. Si el número de archivos declarados es superior o diferente a los punteros reales, herramientas como AFS Explorer arrojarán error de índice (`Index out of bounds`). 3. Calcula el offset del primer archivo (por lo general `0x00000800` o `0x00008000` alineado a sectores de 2048 bytes). Paso 3: Recuperación de la Tabla de Nombres (Directory Table Offset) 1. Dirígete al final de la tabla de punteros. 2. Tras la lista de punteros de archivos, existe un puntero especial que indica la ubicación de los nombres originales de los archivos. 3. Si la tabla de nombres fue eliminada, puedes reconstruir un AFS limpio exportando los archivos por bloque u offset raw. Paso 4: Extracción e Inyección Raw (Modo Avanzado) Si la protección impide la recompilación por interfaz gráfica: Cita:1. Extrae el rango exacto de bytes del archivo que deseas modificar usando los offsets de la tabla. Script de Soporte (Python Auto-Fix Head/Offsets) Para quienes trabajan con gran volumen de archivos, un script básico de verificación en Python: Código: import struct
def check_afs_header(file_path):
with open(file_path, "rb+") as f:
magic = f.read(4)
if magic != b"AFS\x00":
print("[!] Cabecera alterada o protegida. Corrigiendo...")
f.seek(0)
f.write(b"AFS\x00")
print("[+] Firma AFS restaurada correctamente.")
else:
print("[✓] Cabecera AFS válida.")
num_files = struct.unpack("<I", f.read(4))[0]
print(f"<em> Archivos declarados en el contenedor: {num_files}")
# Ejemplo de uso:
# check_afs_header("S_TEXT.AFS")
</em>Ejemplo en imágenes: AFS PROTEGIDO Y DESBLOQUEADO 1. Como podemos analizar en la siguiente imagen, si observamos lo estudiado, hay una cadena modificad, esa cadena es la que me BLOQUEA el acceso en el Game Grapic Studio ![]() Si se tratase de abrir con el GGS, el resultado es algo asi: ![]() 2. Para arreglar este error de GGS lo que debemos es CAMBIAR ESA CADENA que estudiamos en este documento, y cambiar esa cadena de FFFF por 0000. ![]() Dejo un Video Preview: Minuto 7, muestro el error y como se fixea. dejo el video en el minuto exacto Referencia: https://we10jl.blogspot.com/2026/08/proteccion-y-desbloqueo-del-sistema-de.html Consejos e Indicaciones Finales
Documento redactado para la comunidad de edición retro PES/WE | WE11WORLD
|