Registrarse

[DUDA] Mejor forma de buscar offsets

Estado
Cerrado para nuevas respuestas.

Xabier2012

Usuario mítico
Bueno, estoy utilizando fire red, y para buscar offsets suelo usar #dynamic 0x800000
Antes solia utilizar el FSF (free space finder) pero me dio algún problema y dejé de utilizar esa manera para buscar offsets. Mi duda es preguntaros cual es vuestra manera de buscar offsets, cual creéis que es la mejor y cual es la diferencia entre poner #dynamic 0x800000 o #dynamic 0x800700 o cualquier otro numero, basicamente saber la función exacta del #dynamic
 

Rubire4

Usuario mítico
@xabierpower2012
Las dos funciones de guardar datos son:

#dynamic 0x_: Esto te sirve para que el XSE busque una dirección con FF o 00 a partir del offset que hayas puesto después de la x, y de esta manera no dañar datos.

#org 0x_: Esto sirve para guardar SIEMPRE en la dirección que hayas puestos después de la x, da igual si tiene que sobreescribir los datos encima de otros.

Por tanto la diferencia entre poner #dynamic 0x800000 y #dynamic 0x800700 es, cómo ya había explicado antes, que el XSE si elijes 0x800000 buscará una dircción libre para el script desde el offset 0x800000 y si elijes 0x800700 lo hará desde 0x800700.

En mi opinión es mejor que te busque la dirección del offset el XSE antes que usar el FSF.

Debo incluir que si usas Fire Red, las dircciones libres empezarán en 0x700000 y en Ruby en 0x800000.
Cómo utilizas Fire Red sería mejor que utilizaras #dynamic 0x700000 en vez de #dynamic 0x800000, pues así no mal gastarás datos.

Si tienes alguna duda sobre la explicación avisame
 

Xabier2012

Usuario mítico
@xabierpower2012
Las dos funciones de guardar datos son:

#dynamic 0x_: Esto te sirve para que el XSE busque una dirección con FF o 00 a partir del offset que hayas puesto después de la x, y de esta manera no dañar datos.

#org 0x_: Esto sirve para guardar SIEMPRE en la dirección que hayas puestos después de la x, da igual si tiene que sobreescribir los datos encima de otros.

Por tanto la diferencia entre poner #dynamic 0x800000 y #dynamic 0x800700 es, cómo ya había explicado antes, que el XSE si elijes 0x800000 buscará una dircción libre para el script desde el offset 0x800000 y si elijes 0x800700 lo hará desde 0x800700.

En mi opinión es mejor que te busque la dirección del offset el XSE antes que usar el FSF.

Debo incluir que si usas Fire Red, las dircciones libres empezarán en 0x700000 y en Ruby en 0x800000.
Cómo utilizas Fire Red sería mejor que utilizaras #dynamic 0x700000 en vez de #dynamic 0x800000, pues así no mal gastarás datos.

Si tienes alguna duda sobre la explicación avisame
Perfecto. Imaginaba que era como dices y me lo has confirmado.
Solo una pequeña pregunta.

cuando utilizo el #dynamic y compilo, al volver a abrir el script, ya no aparece el #dynamic si no que ya están sustituidos los parametros del #org por los correspondientes offsets encontrados. Si quiero modificar el script y utilizo @palabra para desginar un offset por asi decir, bastaría con poner en la primera linea otra vez el #dynamic?

Por que si no te da el error de que no encontró una dirección dinamica
 

Rubire4

Usuario mítico
@xabierpower2012
En caso de que quieras sobreescribir los datos puedes poner al principio #org y el offset del mismo script, pero no te lo recomiendo pues puede que después haya algo importante y lo dañes.

Lo mejor sería volver a poner #dynamic 0x700000 al principio y repuntear otra vez para asegurarse de no borrar nada.

Por tanto te recomendaría que si esditas un script pongas al principio #dynamic 0x700000
 
Estado
Cerrado para nuevas respuestas.
Arriba