Alexander Blade: el programador que va fer possible els mods de GTA V
Un desenvolupador anònim va trencar el xifrat propietari de Rockstar i va obligar Take-Two a reconèixer legalment el modding
Cada vegada que algú descarrega un mod de Grand Theft Auto V, canvia la física del trànsit o converteix Los Santos en una ciutat de zombis, ho fa sense saber que darrere de tot això hi ha una sola persona. Un programador independent conegut com Alexander Blade, pràcticament anònim fora del cercle tècnic de la comunitat, la feina del qual va convèncer una empresa valorada en milers de milions de dòlars que havia d’acceptar —i finalment abraçar— la modificació dels seus jocs en ordinador.
Aquesta és la història de com un sol desenvolupador va trencar les capes de seguretat de Rockstar Games, va construir el pont de programari que permet als mods funcionar dins del joc i va desencadenar una batalla silenciosa amb els enginyers de la companyia que va durar anys i va acabar canviant les regles de tota la indústria.
El cadenat que Rockstar va posar a GTA V
Quan Grand Theft Auto V va arribar a PC l’abril de 2015, Rockstar va publicar el joc amb tots els seus fitxers interns —textures, sons, comportaments dels personatges, geometria dels vehicles— tancats dins d’un format de contenidor propietari amb extensió .rpf. No eren fitxers convencionals que qualsevol programa pogués obrir. Funcionaven com una caixa forta digital: agrupaven i protegien tot el contingut del joc sota diversos nivells d’encriptació.
El més senzill usava un estàndard d’encriptació conegut com a AES-256, desencriptable si s’aconseguia extreure la clau mestra de la memòria del joc en execució. Però els fitxers més sensibles —els que contenien la lògica interna del joc— estaven protegits per un algorisme propi que Rockstar va denominar internament NG (Next Generation): un sistema d’encriptació dinàmica amb 101 claus de ronda i 272 taules de substitució. A diferència d’un encriptat convencional, no hi havia cap clau fixa amagada en el codi. Les claus es generaven en el moment de manera matemàtica, a partir d’un índex numèric. Cap eina estàndard no podia obrir-lo.
Sense trencar aquest cadenat, modificar el joc era impossible.
L’home que el va obrir
Alexander Blade no va arribar a GTA V del no-res. Des de 2013 acumulava una trajectòria tècnica documentada en enginyeria de programari de baix nivell: l’anàlisi directa del codi màquina d’un programa per entendre com funciona per dins, sense tenir accés al codi font original. És la mateixa disciplina que fan servir els investigadors de seguretat per auditar programari, aplicada aquí als motors de videojocs.
El març de 2013 havia desenvolupat Script Dragon per a The Elder Scrolls V: Skyrim, la primera eina que permetia executar scripts externs en aquell joc injectant codi directament al seu motor. L’octubre d’aquell mateix any va publicar ENBHelper, un plugin que extreia dades de renderització de la memòria del joc per alimentar efectes visuals avançats. A més, col·laborava en OpenIV, la suite d’edició de fitxers més completa de la franquícia GTA.
Per descodificar l’algorisme NG de GTA V, Blade i altres analistes de la comunitat van desassemblar directament l’executable GTA5.exe —és a dir, el van descompondre instrucció per instrucció per llegir què feia el programa per dins— i van desenvolupar eines de cerca automàtica que localitzaven les estructures matemàtiques de l’encriptació dins d’aquell codi. El resultat va ser l’extracció de tres fitxers de claus: gtav_aes_key.dat, gtav_ng_key.dat, i gtav_ng_decrypt_tables.dat. Amb aquestes taules a la mà, els fitxers .rpf es podien obrir, llegir i tornar a empaquetar sense que el joc els rebutgés.
El 23 d’abril de 2015, Blade va publicar la primera versió de Script Hook V juntament amb el Native Trainer, la primera interfície d’usuari per modificar GTA V en temps real.
Com va aconseguir que els mods funcionessin sense trencar el joc
Desencriptar els fitxers del joc era només la meitat del problema. L’altre repte era aconseguir que codi extern —el dels mods— s’executés dins del motor de Rockstar sense que el joc es bloquegés o col·lapsés.
La solució més òbvia hauria estat modificar directament l’executable GTA5.exe. El problema és que això hauria activat els sistemes de verificació d’integritat del fitxer. Blade va optar per una via diferent: va col·locar a la carpeta d’instal·lació del joc una biblioteca anomenada dinput8.dll que imita un component estàndard de Windows anomenat DirectInput8. Quan el joc arrenca, Windows carrega primer el fitxer que troba a la carpeta local del joc, sense anar-lo a buscar al sistema operatiu. D’aquesta manera, el codi de Blade es carrega a la memòria del joc sense tocar l’executable original.
Aquesta biblioteca actua com un carregador: gestiona correctament tots els senyals del teclat, el ratolí i el comandament, i al mateix temps busca a la carpeta del joc fitxers amb extensió .asi —que són els mods— i els carrega a memòria de manera controlada.
El problema següent era més delicat: com fer que el codi d’aquests mods s’executés en el moment correcte, sincronitzat amb el joc, sense interferir amb el seu processament intern. Un error habitual en aquest tipus de sistemes és crear processos paral·lels que intenten modificar la memòria del joc al mateix temps que el motor l’està utilitzant, cosa que provoca col·lisions i bloquejos. Per evitar-ho, Blade va estudiar com el motor RAGE gestiona internament les seves pròpies tasques: no les processa de manera lineal, sinó mitjançant fibres, petites unitats d’execució cooperativa que el motor activa i pausa de manera ordenada. Script Hook V insereix la seva pròpia fibra en aquest planificador. Així, a cada fotograma renderitzat, el motor cedeix breument el control al codi del mod i, quan acaba, reprèn el seu processament habitual sense cap interferència.
El resultat pràctic és que els mods podien modificar qualsevol variable del joc —la gravetat, el comportament de la policia, la posició de la càmera, la generació de vehicles— en temps real, de manera estable i sense tancaments inesperats.
La guerra silenciosa darrere de cada actualització
Mantenir aquest sistema funcionant era una altra història. Cada vegada que Rockstar publicava una actualització del joc, passava el mateix: tots els mods existents deixaven de funcionar de cop.
El motiu tècnic és el següent. El motor RAGE exposa més de 6.000 funcions internes —instruccions que controlen tot el que passa al joc— a través d’identificadors numèrics. A les versions de consola, aquests identificadors eren deduïbles perquè es generaven a partir del nom de cada funció mitjançant una fórmula matemàtica coneguda. En portar el joc a PC de 64 bits, Rockstar els va substituir per números pseudoaleatoris de 64 bits. I amb cada actualització, el compilador generava una llista completament nova de números per a les mateixes funcions, canviant a més la seva ubicació en la memòria. L’efecte era el mateix que canviar totes les panys d’un edifici de cop: totes les claus anteriors quedaven inútils.
Perquè els mods no quedessin obsolets amb cada pedaç, Blade va desenvolupar una capa de traducció interna anomenada Crossmap. Quan un mod crida una funció del joc, ho fa usant el nom històric d’aquesta funció. Script Hook V intercepta aquesta crida, consulta una taula de correspondència actualitzada, tradueix el nom històric a l’identificador numèric nou que Rockstar ha assignat a la versió actual de l’executable, localitza l’adreça de memòria exacta i executa la instrucció. Tot això passa en mil·lisegons, de manera invisible per al modder.
Reconstruir aquesta taula de correspondència després de cada pedaç —amb més de 6.000 funcions que cal reasignar— requeria desassemblar de nou la memòria de l’executable actualitzat. Blade ho feia en qüestió d’hores. Cada actualització de Rockstar inutilitzava de cop l’ecosistema sencer, i ell el reconstruïa abans que acabés el dia.
L’escut que protegia els comptes dels jugadors
Un dels fronts més delicats que Blade va abordar de manera proactiva va ser impedir que els mods del mode història arrosseguessin banejos a GTA Online.
En els primers temps del joc en PC, quan un jugador feia servir mods en el mode història i després intentava connectar-se al mode multijugador, els mòduls de modificació continuaven actius a la memòria del joc. El sistema antitrampes de Rockstar detectava aquesta alteració i emetia banejos permanents sobre el compte, encara que el mod s’hagués fet servir únicament per canviar textures o modificar la física dels cotxes en solitari.
Script Hook V va resoldre el problema d’arrel: el mateix carregador monitoritza en tot moment si el joc intenta connectar-se als servidors de GTA Online. Si detecta aquesta transició, força el tancament immediat de tot el procés abans que la connexió s’estableixi, garantint que no quedi cap rastre del mod en memòria quan els servidors executen les seves comprovacions de seguretat.
Aquesta decisió tècnica va ser determinant perquè Rockstar tolerés l’eina. Blade havia separat amb precisió el modding del mode història de l’ecosistema competitiu en línia.
El conflicte legal que ho va canviar tot
La tensió acumulada entre la comunitat de modding i la cúpula corporativa va esclatar el 5 de juny de 2017, quan Take-Two Interactive —l’empresa matriu de Rockstar— va enviar una ordre de cessament i desistiment al programador GooD-NTS, líder del projecte OpenIV, en el qual Blade col·laborava activament. Els representants legals de la companyia argumentaven que OpenIV permetia eludir les mesures de protecció del joc i que aquesta capacitat era aprofitada per tercers per construir eines de trampa a GTA Online.
L’equip d’OpenIV va suspendre la distribució de l’eina el 14 de juny de 2017. La reacció de la comunitat va ser immediata: desenes de milers de ressenyes negatives coordinades a Steam van enfonsar la valoració històrica de GTA V en qüestió de dies.
L’impacte comercial va obligar Rockstar a intervenir-hi. La companyia va emetre un comunicat aclarint que l’acció legal no perseguia el modding del mode història individual. La mediació va desembocar en un canvi de posició sense precedents: Rockstar va publicar directrius en què declarava que toleraria el desenvolupament i l’ús d’eines de modificació orientades de manera exclusiva al mode d’un sol jugador. OpenIV va tornar a distribuir-se i les eines d’injecció de codi dissenyades per programadors independents van quedar jurídicament reconegudes.
La incorporació posterior del sistema antitrampes BattlEye a nivell de kernel del sistema operatiu —que bloqueja biblioteques no signades com dinput8.dll— va reforçar de manera tècnica aquesta separació: qui vulgui fer servir mods ha de desactivar explícitament la validació antitrampes al llançador del joc, cosa que aïlla per definició l’experiència modificada de la competitiva en xarxa.
Avui, més d’una dècada després del llançament de GTA V per a PC, Script Hook V continua sent la infraestructura sobre la qual opera la pràctica totalitat de l’escena de modificació. Cada vegada que algú prem un botó i converteix Los Santos en el que vol, ho fa perquè un programador anònim va trigar unes hores a reconstruir allò que els enginyers de seguretat de Rockstar van trigar mesos a dissenyar.