Encontrar Tablas de Punteros for Dummies

Foro de consulta de cualquier tema relacionado con el Romhacking.

Moderador: Faloppa

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Mar Feb 05, 2008 12:56 am

bueno ya voy entendiendo algo asi que gracias aunque tengo otra duda, por ejemplo, desde la n de coin hasta la s de skill hay 4 puntos, no podria quitar tres para poner "moneda"? o el juego lo notaria? con eso de que no estan muy juntas las palabras....
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor cw » Mar Feb 05, 2008 2:11 am

yo creo que si, hace la prueba y de ahí me dices que sucedio

saludos
cw
Usuario
Usuario
 
Mensajes: 77
Registrado: Vie Ene 19, 2007 3:22 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Mar Feb 05, 2008 6:06 pm

Yuju xD, funciona xD, bueno sigo con la tradu que estoy teniendo fallos, por cierto gracias.
Última edición por delno el Mié Feb 06, 2008 9:54 am, editado 1 vez en total
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Cecil » Sab Mar 22, 2008 4:39 am

Con los punteros no me aclaro... mirad, a ver si alguien puede ayudarme. He estado usando el metodo de Dummiez, pero creo que no lo he pillado del todo, he aqui mis duda:

He encontrado el primer texto del juego, lo muestro a continuación:

Imagen

Bueno, calculando y veo que de la primera palabra a la segunda hay 16 caracteres, igual que del segundo al tercero y del tercero al cuarto, ¿no?. ¿De modo que en el escaneo relativo deberia de poner 00 SKIP 16 SKIP 16?. Haciendolo asi no encuentro nada que se parezca a una tabla de punteros. ¿Hago algo mal?. Si quereis os subo el resultado del escaneo relatvo no vaya a ser que me este saltando algo. Muchas gracias por vuestro tiempo.
...encierra al pájaro y cantará cuando le de la gana...

http://www.rutarelativa.com
Avatar de Usuario
Cecil
Usuario
Usuario
 
Mensajes: 39
Registrado: Sab Ene 26, 2008 7:57 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor hexplus » Dom Mar 23, 2008 9:59 pm

La explicación data aquí aplica para punteros de dos bytes, si es un juego de PSX, creo, no estoy seguro, los punteros suelen ser del doble, osea de 4 bytes. Entonces, la búsqueda cambiaría.  :D
Avatar de Usuario
hexplus
Administrador
Administrador
 
Mensajes: 531
Registrado: Jue Ene 18, 2007 2:00 am
Ubicación: Costa Rica

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Cecil » Lun Mar 24, 2008 12:44 am

¿Algún consejo o ayuda entonces para encontrar los punteros en juegos de PSX?. Gracias por tu ayuda!.
...encierra al pájaro y cantará cuando le de la gana...

http://www.rutarelativa.com
Avatar de Usuario
Cecil
Usuario
Usuario
 
Mensajes: 39
Registrado: Sab Ene 26, 2008 7:57 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Lun Mar 24, 2008 1:24 am

http://www.romhacking.net/
aqui hay un documento que habla sobre punteros de psx pero esta en ingles, aunque estando en un foro de traduccion no te importará no? xD
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Cecil » Lun Mar 24, 2008 2:53 am

Gracias por la Web, he seguido un tutorial acerca de como encontrar dichos punteros. Lo he seguido al pie de la letra y he obtenido una dirección, la cual supuestamente se trata del puntero. Ahora bien, cuando abro el fichero donde se encuentra el texto, la posición del puntero es mayor que el tamaño del fichero, con lo cual puedo deducir que los punteros se encuentran en otro fichero, ¿puede ser esto asi?. De ser así, ¿en que fichero suelen estar?. Gracias por todo.
...encierra al pájaro y cantará cuando le de la gana...

http://www.rutarelativa.com
Avatar de Usuario
Cecil
Usuario
Usuario
 
Mensajes: 39
Registrado: Sab Ene 26, 2008 7:57 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Cecil » Mar Mar 25, 2008 1:12 am

Bueno, voy a explicar paso a paso el método que he utilizado para encontrar la tabla de punteros en un juego de PSX, de manera que, si alguien lo ha usado con éxito, pueda decirme en que me equivoco, y ayudar a los que estén buscando la dichosa tablita. Bueno, allé voy:

1º: Buscamos en que archivo se encuentran los diálogos que queremos traducir, en mi caso el archivo se llama "CONF01.DAT", y contiene los textos de el primer capítulo del juego (el juego está dividido en 9 capítulos).

2º: Abrimos el fichero "CONF01.DAT" con nuestro editor hexadecimal favorito, y buscamos el texto que queramos (y tengamos a mano en el juego, a la hora de ejecutarlo y comprobarlo). Nos posicionamos en la primera letra del texto y apuntamos la línea y la columna en la que se encuentra (ver imagen para más detalles):

Imagen

Si nos fijamos en la imágen, he seleccionado en un recuadro rojo la línea en la que se encuentra el byte seleccionado, en nuestro caso 000001D0. Lo apuntamos. A continuación, miramos en la columna en que se encuentra, en nuestro caso la 3 (las columnas están en orden desde el 0 hasta la F). Apuntamos también ese 3. A continuación, sumamos el valor 000001D0 con la columna 3, y obtenemos 000001D3.1D3

3º: Con la ayuda del magnífico emulador de PSX (pSX, en mi caso la versión 1.13), arrancamos el juego, y jugamos hasta que aparezca en pantalla el diálogo o texto que estamos utilizando para encontrar la tabla. Una vez visualizado el texto en el juego, pulsamos en el menú "Depurar" -> "Monitor" -> "r3000" (mi versión está en Español). Nos aparecerá una ventana que muestra la memoria actual del emulador trabajando con el juego. En dicha ventana, en el menú, pulsamos sobre "Archivo" -> "Guardar Binario" y nos pedirá que introduzcamos "Memoria" (poned 0) y "Tamaño" (Depende del juego, yo puse 1000000 bytes. Esto creará un archivo *.bin.

4º: Abrimos el archivo *.bin con un editor hexadecimal, y volvemos a buscar el texto en dicho archivo. Esta vez se encuentra en la línea 000E8050 como vemos en la siguiente imagen:

Imagen

He vuelto a señalar en un recuadro la línea en la que se encuentra el texto. La apuntamos también.

5º: Ahora obtenemos la diferencia entre la posición en memoria y la posición del archivo, es decir E8050 - 1D3 = E7E7D.

6º: A continuación, añadimos a la posición en el archivo la diferencia obtenida en el paso anterior, 1D3 + E7E7D = E8050.

7º: Obtenemos los 4 últimos dígitos y los dividimos en pares, de manera que tendriamos 80 50, los cambiamos de sitio y obtendríamos 5080. Buscamos en el fichero en la posición 5080 y ese debe de ser el puntero que tanto ansiamos encontrar.

Bueno, esos son los pasos que he seguido, pero no he obtenido el resultado idóneo (razones expuestas en el anterior post  ;) )... a ver si alguien sabria decirme en que me equivoco. Muchas gracias!!
...encierra al pájaro y cantará cuando le de la gana...

http://www.rutarelativa.com
Avatar de Usuario
Cecil
Usuario
Usuario
 
Mensajes: 39
Registrado: Sab Ene 26, 2008 7:57 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Klint » Mar Mar 25, 2008 1:37 am

La operacion del paso 2 puede omitirse. Fijate que en la esquina inferior izquierda del Translhextion, ya viene la operacion hecha, 0x1D3.
The last Metroid is in captivity. The Galaxy is at peace...
Avatar de Usuario
Klint
Usuario
Usuario
 
Mensajes: 390
Registrado: Mar Jul 03, 2007 2:44 pm
Ubicación: Malaga

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Cecil » Mar Mar 25, 2008 2:43 am

Cierto... aún así no consigo encontrar la tabla de punteros, no se si hago algo mal (aparte de escribir de mas en los minitutoriales  ;D). Gracias.

EDITO: Si los punteros de PSX son de 4 bytes, ¿que formato tienen?
Última edición por Cecil el Mar Mar 25, 2008 7:00 pm, editado 1 vez en total
...encierra al pájaro y cantará cuando le de la gana...

http://www.rutarelativa.com
Avatar de Usuario
Cecil
Usuario
Usuario
 
Mensajes: 39
Registrado: Sab Ene 26, 2008 7:57 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor hexplus » Jue Mar 27, 2008 7:41 pm

Avatar de Usuario
hexplus
Administrador
Administrador
 
Mensajes: 531
Registrado: Jue Ene 18, 2007 2:00 am
Ubicación: Costa Rica

Re: Encontrar Tablas de Punteros for

Notapor Faloppa » Jue Oct 15, 2009 7:29 pm

A ver, hace mucho de este post, pero es que, empece a toquetear ciertos juegos nuevos y me encuentro con el tema de punteros...

¿Alguno podria explicar, de una manera general (es decir, para snes, psx, etc...) el tema de punteros, creacion de tabla de punteros y demas?

Mas que nada, porque, entre la explicacion de mi amigo Hex y la de Cecil, ando con un cacao...

Gracias compis. Salu2
Avatar de Usuario
Faloppa
Usuario
Usuario
 
Mensajes: 445
Registrado: Jue Ene 18, 2007 5:42 pm
Ubicación: Melilla

Re: Encontrar Tablas de Punteros for

Notapor hexplus » Mié Oct 21, 2009 9:15 am

Bueno, como he visto que muchos tienen dudas acerca de este método (que tampoco es 100% efectivo, porque como ya lo explicó Wiz, los punteros pueden estar en estructuras y/o tener información entremezclada), voy a programar una utilidad para este fin, en donde le demos varios parámetros(Inicio de texto, byte que indica el fin del texto) y él programa va a lanzar los posibles offsets donde puede estar ubicada la tabla de punteros.

Espero poder tener tiempo esta semana para realizarlo, no es nada complejo, no creo que requiera mucho tiempo. También trataré de incluir como parámetros el tipo de puntero que se busca, NES, SNES, PSX.

Como dije, este método no es 100% seguro, si no se encuentran punteros de esta manera, será porque éstas tablas no están de esta manera y quizá se requieran técnicas más avanzadas como "debugging" para localizarlos.
Avatar de Usuario
hexplus
Administrador
Administrador
 
Mensajes: 531
Registrado: Jue Ene 18, 2007 2:00 am
Ubicación: Costa Rica

Re: Encontrar Tablas de Punteros for

Notapor Faloppa » Mié Oct 21, 2009 12:37 pm

hexplus escribió:Bueno, como he visto que muchos tienen dudas acerca de este método (que tampoco es 100% efectivo, porque como ya lo explicó Wiz, los punteros pueden estar en estructuras y/o tener información entremezclada), voy a programar una utilidad para este fin, en donde le demos varios parámetros(Inicio de texto, byte que indica el fin del texto) y él programa va a lanzar los posibles offsets donde puede estar ubicada la tabla de punteros.

Espero poder tener tiempo esta semana para realizarlo, no es nada complejo, no creo que requiera mucho tiempo. También trataré de incluir como parámetros el tipo de puntero que se busca, NES, SNES, PSX.

Como dije, este método no es 100% seguro, si no se encuentran punteros de esta manera, será porque éstas tablas no están de esta manera y quizá se requieran técnicas más avanzadas como "debugging" para localizarlos.


Amigo mio, como te dije en privado: ¡¡OLE!!

Sera una de las mejores aportaciones de la historia del Romhack, sin duda.
Avatar de Usuario
Faloppa
Usuario
Usuario
 
Mensajes: 445
Registrado: Jue Ene 18, 2007 5:42 pm
Ubicación: Melilla

AnteriorSiguiente

Volver a Romhacking en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron