Dani_SR_17
Puntuación de reacción
1.723

Mensajes de perfil Última actividad Publicaciones Acerca

  • Esa era facil ademas te dio la solucion a mecias haha
    Pero de la que llevas peleandote un buen rato, la del bucle rula o no rula?
    Pero la rutina que me pasaste por mp y te corregi te va o no te va??
    La tabla de punteros la puedes ver repunteando cualquier nombre de pokemon..
    En el ejemplo de FBI, es la tabla de nombres.
    En la mia es la tabla de punteros de nombres. ¿Por qué? Pues porque es más efectivo. Ya que si repunteas algun nombre, cambiaras su direccion, y ya no será el mismo index number.
    Por ejemplo repunteas bulbasaur, por.. bulbasaura.
    Ya tiene un caracter mas, entonces has de repuntear a otra direccion y no estara en el mismo sitio que bulbasaur, entonces ese nombre el primero nunca lo leeras.
    De mi forma si. Porque lees la tabla de punteros de nombres. Y aunque repunteees el primer pokemon sera soempre el primero, dando igual la ubicacion de este nombre.


    En cuanto a la segunda duda, es mas que nada para que quede todo claro.
    Es lo mismo ldr r0,[r0] que ldr r0,[r0,#0x0], ya que la omision de #0x0, hace que por default sea 0.
    Igual que con add r0,r0,rx = add r0,rx
    Usa mi "rutina" con bucle y ya esta xD


    Y cuando las rutinas no te funcionan, te recomiendo debugearlas con el debuger haciendo un breakpoint (BT) a tu rutina.
    Hint ($offset); es decir lee desde el offset que tu le des hasta que encuentre un FF no empezara a copiar.
    Respecto al ejercicio, te lo hago con pseudocodigo (estoy desde el movil) y tu lo pasas a asm.

    1-> cargar en r0, la tabla de nombre de ataques (no sus punteros OJO)
    2-> cargar en r1, el valor de la var lastresult
    2.1-> multiplicar r1 x 4
    3->cargar la posicion de lastresult en la tabla. Add r0,r1
    4-> poner en r1, posicion del bucle (mov r1,#0x0).
    5-> poner en r3, direccion a copiar. (Donde vas a guardarlo en la ram)
    6-> ir a bucle
    7-> en el bucle ldrb r2,[r0,r1] ; cmp r2,#0xFF; bne copy; strb r2,[r3,r1]; popeas todo
    8-> copy = strb r2,[r3,r1]; add r1,#0x1; b bucle


    Es facil, los ";" son instrucciones que irian debajo de las anteriores (x si te sirve la ayuda xD)
    La funcion hint copia desde un FF hasta FF.
    Es un funcion asi: hint($offset); entonces lee el byte de ese offset, si es =! FF; suma 1 al offset.
    Y seguira sumando hasta encontrar un FF.
    Si fuese FF desde un primer momento, empezara a copiar esos bytes en adelante en x direccion hasta encontrar un FF de nuevo. (FF= fin string)
    Se le llama hook o crackear cuando modoficad la rutina original en tu propio beneficio.
    En el ejemplo de interdepth, sale con unas orbes de vida infinias porque la funcion que se encargande restarte una vida, no lo hace.
  • Cargando…
  • Cargando…
  • Cargando…
Arriba