¿Engañar a programa con el checksum de un archivo?

Estoy buscando alguna forma o truquillo para que un programa lea un archivo pensando que es otro, cuando ese programa reconoce archivos por su checksum... antes de nada, pongámonos en contexto:

ayer instalé el Assassin's Creed II en PC, y quería jugarlo con voces en inglés, pero los trolles de Ubilol por alguna razón hicieron que el juego, en PC (porque en X360 no pasa) sólo puedes ponerlo en el idioma de tu ordenador, y en italiano. Podría cambiar la región de mi sistema, pero me da toda la mala, así que quería buscar algo alternativo que no cambie todo el sistema...

Probé lo típico, coger el archivo de voces inglesas y cambiarle el nombre al de voces españolas... pero manteniendo el archivo de voces en español en la carpeta de audios, aunque tenga cualquier nombre (aunque lo llame pepito.pck), sigue pillándolo (sólo no lo pilla si lo saco de la carpeta, pero claro, entonces el juego se queda sin voces, aunque tenga el archivo de voces inglesas renombrado como el de voces españolas). Esto me llevó a pensar que el juego, lo que debe hacer, es buscar en el directorio de audios un archivo que, independientemente de su nombre, coincida en la suma de verificación.

Imagino que si pudiese engañar al juego con el checksum podría hacer eso que quiero. Tendría que hacer que el archivo de voces inglesas tuviese "virtualmente" por así decirlo el mismo checksum que el de voces españolas. Igual existe alguna forma de conseguirlo XD
Duso que si es por checksum puedas hacerlo, ¿pero estamos hablando de steam o de standalone?
TRASTARO escribió:Duso que si es por checksum puedas hacerlo, ¿pero estamos hablando de steam o de standalone?


Uplay más bien.
Igual te digo una tontería , y es otra versión, pero he visto en un video en youtube, que si modificas el archivo registry_32 la parte correspondiente al lenguaje, poniendo el que quieres, ¿tampoco lo cambia?, esque me parece raro que no se pueda cambiar entre idiomas, en todos siempre hay manera.
jlljmansilla escribió:Igual te digo una tontería , y es otra versión, pero he visto en un video en youtube, que si modificas el archivo registry_32 la parte correspondiente al lenguaje, poniendo el que quieres, ¿tampoco lo cambia?, esque me parece raro que no se pueda cambiar entre idiomas, en todos siempre hay manera.


Sí, debería haber forma de cambiarlo ya de por sí de forma nativa en el menú del juego, aparte en el de X360 se pueden cambiar las voces desde el menú sin problema, pero en el de PC no... ni idea, cosas raras que hace Ubisoft, yo ya no digo nada porque pa qué [+risas] aparte lo más gracioso es que el juego te instala archivos de sonidos para más idiomas.

Lo del registry_32 no sé si es lo mismo que andar a tocar en el registro de Windows, ahí me metí yo y cambié una opción de lenguaje sin buenos resultados, pero a ver si encuentro algo más.
@noentiendero ¿Lo has instalado desde dvd o tienes el juego en formato digital?
Deschamps escribió:@noentiendero ¿Lo has instalado desde dvd o tienes el juego en formato digital?


Técnicamente digital... tengo el juego físico pero vamos, con el típico código que se mete en Uplay. Lo instalé desde el DVD pero me daba un error mierdoso, así que lo tuve que desinstalar y luego lo instalé bajándolo desde Uplay (aunque luego el error siguió hasta que mágicamente desapareció).
Me suena, aunque hablo de memoria, que había algún programa para eso, pero... tendrías que buscar.

Aunque, como te han dicho, yo creo que no es por eso por lo que no va. Igual el fichero de voces usa otros nombres para cada recurso (el típico _voice_es_jump y _voice_it_jump y cosas así), y al no encontrarlos, falla.

Puedes probar por si acaso el tema del CRC, pero... me da a mi que hay algo más por ahí. Quizá te falta algún fichero por renombrar (el "índice" de las voces, que esté en otra carpeta, por ejemplo).

Un saludo.
noentiendero escribió:
Deschamps escribió:@noentiendero ¿Lo has instalado desde dvd o tienes el juego en formato digital?


Técnicamente digital... tengo el juego físico pero vamos, con el típico código que se mete en Uplay. Lo instalé desde el DVD pero me daba un error mierdoso, así que lo tuve que desinstalar y luego lo instalé bajándolo desde Uplay (aunque luego el error siguió hasta que mágicamente desapareció).


Es que había leído por ahí que si se trataba de la edición física en dvd, en lugar de instalar con el launcher (el autoinstalador), lo detenías y arrancabas manualmente el setup.exe del disco, que sí te permitía elegir idioma y probablemente te dejaría elegir el inglés. Para eso había que desinstalar el juego previamente, claro.

Pero si el disco no te funciona, entonces no servirá.
Deschamps escribió:
noentiendero escribió:
Deschamps escribió:@noentiendero ¿Lo has instalado desde dvd o tienes el juego en formato digital?


Técnicamente digital... tengo el juego físico pero vamos, con el típico código que se mete en Uplay. Lo instalé desde el DVD pero me daba un error mierdoso, así que lo tuve que desinstalar y luego lo instalé bajándolo desde Uplay (aunque luego el error siguió hasta que mágicamente desapareció).


Es que había leído por ahí que si se trataba de la edición física en dvd, en lugar de instalar con el launcher (el autoinstalador), lo detenías y arrancabas manualmente el setup.exe del disco, que sí te permitía elegir idioma y probablemente te dejaría elegir el inglés. Para eso había que desinstalar el juego previamente, claro.

Pero si el disco no te funciona, entonces no servirá.


Es cierto, el juego permite cambiar idioma en la instalacion por dvd. En teoría el dvd funciona, el fallo lo daba Uplay y me lo daba también al descargarlo desde Uplay, sólo que fue con la versión de Uplay, tras varias intentonas, cuando al fin funcionó (e imagino que el instalado por dvd también iría). De todas formas, si lo instalo en inglés seguramente me instale también los textos en inglés... lo que yo quiero son textos en español y voces en inglés.
Para probar tu teoría podrías agregarle algunos bytes al archivo de audio en español y ver si lo sigue cargando, si es así entonces no es por checksum
Suicune escribió:Para probar tu teoría podrías agregarle algunos bytes al archivo de audio en español y ver si lo sigue cargando, si es así entonces no es por checksum


Por probar que no quede XD podría hacerlo sin estropear la informacion de dentro? Y sabes como podria hacerlo?

Por cierto, técnicamente modificando el registro se puede cambiar el idioma del juego a ingles o cualquier otro (aunque evitando que el mierdas de uplay lo ponga de nuevo en Spanish), lo malo es que cambia tambien los textos, y lo que me cundia era jugarlo con textos esp pero voces eng.
noentiendero escribió:Por probar que no quede XD podría hacerlo sin estropear la informacion de dentro? Y sabes como podria hacerlo?


Podrías probar por ejemplo con cualquier editor hexadecimal. Abres el fichero, buscas una secuencia suficientemente larga de "ceros" (00 00 00 00 00 00 ...) y reemplazas algunos de ellos por "efes" (FF FF FF ...)
Deschamps escribió:
noentiendero escribió:Por probar que no quede XD podría hacerlo sin estropear la informacion de dentro? Y sabes como podria hacerlo?


Podrías probar por ejemplo con cualquier editor hexadecimal. Abres el fichero, buscas una secuencia suficientemente larga de "ceros" (00 00 00 00 00 00 ...) y reemplazas algunos de ellos por "efes" (FF FF FF ...)


Probé abriéndolo con el sublime text, que me muestra todo en hexadecimal. Cambié 8 ceros por efes, he comprobado con el MultiHasher los checksums en MD5 y SHA256 y dan distintos, sin embargo el juego sigue pillando el archivo Esp correctamente (es el que toqué), así que creo que la teoría del checksum se puede desechar XD
Quizás tenga algún dato por ahí, pero a saber cual es. Me bajé un editor hexadecimal por si, no sé como irán estas cosas, pero igual salía algo por ahí al descubierto, pero no veo nada. Creo que al final lo jugaré en italiano y listo, así es más inmersivo (aunque me siguen cundiendo más las voces en inglés que además también mezclan frases en italiano pero bueno, whatever...
13 respuestas