Encontrar Tablas de Punteros for Dummies

Foro de consulta de cualquier tema relacionado con el Romhacking.

Moderador: Faloppa

Encontrar Tablas de Punteros for Dummies

Notapor hexplus » Dom Ago 05, 2007 11:16 am

Imagen


La técnica del Escaneo Relativo por HeXPLuS

La clásica técnica de invertir valores, restar 200 hex, o como sea (la verdad no la uso nunca), no es regla y existen valores que jamás vas a encontrar así y lo que vas a hacer es frustrarte.

Aquí pongo una manera práctica, simple y rápida para encontrar tablas de punteros.

Como ya saben en una tabla de punteros hay un valor que cambia su valor constantemente y otro que no tanto, de la forma:

00 D0 07 D0 0E D0...        ---> en este caso el byte segundo es el que casi no cambia.

Los datos de la tabla de punteros son de acuerdo a los diálogos, así los bytes que están entre uno y otro díalogo son los que nos van a dar la información que necesitamos para poder encontrar nuestra tabla de punteros.

Una manera excelente de buscar tablas de punteros es hacerlo relativamente. Como ya indiqué el cálculo de punteros se basa en la posición de inicio de texto y en la cantidad de bytes que hay de ahí al siguiente diálogo. Así que con estos datos tienes que los bytes que cambiarían en la tabla de punteros son los primeros dos, entonces con el translhextion haces un "scan" relativo con esos datos, por ejemplo, que el cálculo entre diálogo y diálogo dió: 00, 07, 0E, 17, 22, 2B; ésto antes de llegar a FF(Ésto NO es la tabla de punteros, son los valores calculados entre diálogo y díalogo, repito). Entonces el "scan" relativo lo hacés así:

Nota: La opción "Value Scan Relative" del Translhextion la accedes mediante el menú "Search".

Imagen

Pasos a seguir:

1. En la caja de texto de Values pones "00" que es nuestro primer valor a buscar y presionas Add Value, esto con (*) Hex seleccionado.
2. Presionas el botón Skip Value, pues no sabemos cuál va a ser
3. Repetimos el punto 1, pero con el valor "07"
3. Repetimos el punto 2
4. Repetimos el punto 1, pero con el valor "0E"

Nota: Nos saltamos un valor pues es el valor que casi no cambia, en la tabla de punteros: 00 XX 07 XX 0E .... ojalá quede claro.

Con esos tres valores es suficiente, ahora presionas el botón "Scan, te va a dar varios resultados:

Imagen

Éstos resultados los puedes guardar en un archivo .txt que puedes consultar, recomiendo hacerlo.

Si ves el archivo, puedes ir y buscar algo que parezca una tabla de punteros, con el patrón que un byte cambia significativamente y el otro permanece casi siempre igual, encontramos entoces este valor:

Offset: 86390=0x15176
Hex Data: 00 D0 07 D0 0E
ASCII Data:
Relative Offsets: A=?? a=?? 1=??

y ¡bingo!, ¡ésa es nuestra tabla de punteros! que está exactamente en la dirección u offset 0x15176, más fácil no puede ser.  :o

Ésta técnica no se por qué nadie la había explicado, es mejor que cualquier otra. ^^

Si alguno cree que tengo que ampliar detalles en alguna parte, que me lo indique y lo haré con gusto lo antes que me sea posible.

xFF+
Última edición por hexplus el Dom Ago 05, 2007 12:32 pm, editado 1 vez en total
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 DaRKWiZaRDX » Mié Ago 08, 2007 1:04 am

Muy bueno el método, y sí, la "fórmula" de restar 0x200 y tal no siempre sirve, también puedes señalar que dejando dos comodines puedes buscar los de 24bits, etc.
muy muy buena la explicación :D
Saludos!
Avatar de Usuario
DaRKWiZaRDX
Usuario
Usuario
 
Mensajes: 222
Registrado: Jue Ene 18, 2007 9:49 pm
Ubicación: Argentina

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor hexplus » Mié Ago 08, 2007 6:49 am

Cierto, los comodines se deben utilizar de acuerdo al tipo de puntero.  ;)

Gracias por el aporte DaRKWiZaRDX.  ;)
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 soywiz » Sab Ago 18, 2007 10:18 am

Una cosa que suele funcionar bastante es buscar valores crecientes de 16 o 32 bits. Casi siempre son crecientes porque cuando se generan estas cosas lo mas sencillo y lógico es colocarlos en orden. Luego ya hay que ver si son relativos, absolutos, en que zona de memória se carga etc.

De todas formas los punteros no siempre están seguidos. En muchas ocasiones los punteros están en estructuras.
Es muy común ver un vector de estructuras con un par de punteros y datos entre medias. Por ejemplo un título, una descripción y datos. Por ejemplo en habilidades, en objetos y cosas similares.
soywiz
Usuario
Usuario
 
Mensajes: 72
Registrado: Jue Ene 18, 2007 12:29 pm
Ubicación: Valencia

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor OAD man » Mar Sep 11, 2007 5:19 am

Esto me viene re bien, porque soy todo un dummy y me lei el tutorial de introduccion al romhacking por Sayans traductions pero me dejo medio mareado
OAD man
Usuario
Usuario
 
Mensajes: 10
Registrado: Mar Sep 11, 2007 4:58 am

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Vie Dic 07, 2007 2:15 pm

pero los punteros estan en el mismo archivo que los textos?
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor NeXaR » Vie Dic 07, 2007 5:51 pm

delno escribió:pero los punteros estan en el mismo archivo que los textos?


Supongo que no necesariamente...
Que C trabaje a un nivel más bajo no significa que sea intrínsecamente mejor. Significa que si cometes un error, en lugar de tropezarte, te estás disparando en un pie.
NeXaR
Usuario
Usuario
 
Mensajes: 32
Registrado: Jue Sep 27, 2007 8:50 pm
Ubicación: Bajo tu cama. No, en serio, echa un vistazo...

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Dom Dic 16, 2007 3:27 pm

y entonces como hago pa encontrarlos? yo si que soy un Dummy.
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor NeXaR » Lun Dic 17, 2007 12:05 am

delno escribió:y entonces como hago pa encontrarlos? yo si que soy un Dummy.


No creas que estás sólo xD (si, ya sé, mal de muchos...)
Que C trabaje a un nivel más bajo no significa que sea intrínsecamente mejor. Significa que si cometes un error, en lugar de tropezarte, te estás disparando en un pie.
NeXaR
Usuario
Usuario
 
Mensajes: 32
Registrado: Jue Sep 27, 2007 8:50 pm
Ubicación: Bajo tu cama. No, en serio, echa un vistazo...

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor MAXIUM » Jue Ene 17, 2008 3:03 am

Excelente portada, aun no paro de reír  :D

Y si lo dejas en formato PDF?!
Avatar de Usuario
MAXIUM
Usuario
Usuario
 
Mensajes: 49
Registrado: Mié Ene 24, 2007 6:46 pm
Ubicación: in the shell

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor Nautylus » Sab Ene 26, 2008 10:54 pm

Yo también soy un principiante, leí el manual del fascinante mundo del rom......, y no lo entendí, pero esto me parece mucho mas sencillo. Yo creo que deberían agregarlo al manual. como una simple actualización, el mundo avanza o no!
De todas maneras me gustó mucho. ;D Gracias!!
Intentando Hackear algo. jeje ;)
Nautylus
Usuario
Usuario
 
Mensajes: 8
Registrado: Sab Ene 26, 2008 10:34 pm
Ubicación: Mendoza - Argentina

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Dom Feb 03, 2008 6:59 pm

00 D0 07 D0 0E D0 como sabeis que esto es un puntero? y que referencia tengo que tomar para  buscar la tabla? mirando el texto?
delno
Usuario
Usuario
 
Mensajes: 65
Registrado: Vie Oct 19, 2007 4:10 pm

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor cw » Dom Feb 03, 2008 7:41 pm

delno escribió:00 D0 07 D0 0E D0 como sabeis que esto es un puntero? y que referencia tengo que tomar para  buscar la tabla? mirando el texto?


una tabla de punteros, casi siempre tiene un valor que cambia y uno que aumenta lentamente (es como un reloj, para que cambie la hora tiene que pasar 60 minutos; al igual que aquí, tiene que cambiar el primer valor de 00 hasta un máximo de FF para que D0 cambie a D1).

Los valores de la tabla son:

00 D0 - 07 D0 - 0E D0

si ves bien, el "D0" permanece casi constante en el archivo. El que cambia siempre es el primer número (de 00 a 07, y de 07 a 0E). Con esto sabemos que entre diálogos y diálogos existe una cierta cantidad de caracteres, en este caso de 7 caracteres.

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

Re: Encontrar Tablas de Punteros for "Dummiez"

Notapor delno » Lun Feb 04, 2008 3:04 pm

como tendria que hacer para buscar los punteros de este texto? necesito un ejemplo asi porque si no no me entero

Imagen
Última edición por delno el Lun Feb 04, 2008 3:08 pm, 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 cw » Lun Feb 04, 2008 6:33 pm

según lo que leí, el juego es para PS1 . para los juegos de nes y snes es mas "fácil encontrar los punteros, ya que se tiene una formula para llegar a ellos, pero para los juegos e PS1 no existe tal fórmula, por lo que tendrás que buscarlos tú solo.

una de las formas mas universal para encontrar punteros, era la dio hexplus.

según la imagen, la "S" es el hex 53. Supongamos que existe una tabla de punteros para estas palabras. Tenemos que desde la "S" de Status, hasta la "I" de Item hay 8 espacios; y desde la "I" de item, hasta la "C" de Coin hay 8 y de Coin a Skill hay 8 . entonces sigues estos pasos

Pasos a seguir:

1. En la caja de texto de Values pones "08" que es nuestro primer valor a buscar y presionas Add Value, esto con (*) Hex seleccionado.
2. Presionas el botón Skip Value, pues no sabemos cuál va a ser
3. Repetimos el punto 1, pero con el valor "08"
3. Repetimos el punto 2
4. Repetimos el punto 1, pero con el valor "08"


si sabes como usar un debugger y un poco de procesadores MIPS, podrías usar el programa de soywiz para encontrar puteros index.php?topic=168.0

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

Siguiente

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