Duda con simple script

Iniciado por .:UND3R:., 26 Agosto 2011, 22:11 PM

0 Miembros y 1 Visitante están viendo este tema.

.:UND3R:.

en el tutorial de introducción a olly se comienza con este script:


Citarinicio:

bphws 12ffc4, "r"

trabajo:

eob pirulo
run

pirulo:
cmp eip, 77aa6298
je quitar
cmp eip, 77aa62b0
je restaurar
jmp final

quitar:
bphwc 12ffc4
jmp trabajo

restaurar:
jmp inicio

final:
MSGYN "Continuar?"
cmp $RESULT,1
je inicio
ret

en donde las comparaciones que se realiza son en (se pone bp ahí) KiUserExceptionDispatcher y en ZwContinue (se pone bp)

la idea del script es poder saltear la detección de de los hadware breakpoint, este funciona correctamente pero me surge una duda:

Supongamos que está detenido en
77aa6298 (KiUserExceptionDispatcher)
al encontrar una excepción o breakpoint

por el comando eob saltará a pirulo

pirulo:
cmp eip, 77aa6298
je quitar
cmp eip, 77aa62b0
je restaurar
jmp final

aquí al ser la primera comprobación cierta, este va a quitar

quitar:
bphwc 12ffc4
jmp trabajo

por lo que luego va a trabajo mi duda es que no entiendo cuando se ejecuta run, ya que este está debajo de eob por lo que para mi entender nunca se ejecutaría y no haría nunca avanzar al programa, pero este si lo hace

iría a trabajo y denuevo encontraría un BP 77aa6298 o el RUN se ejecuta junto con el EOB? No sé si se entiende

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

MCKSys Argentina

EOB label
---------
Transfer execution to some label on next breakpoint.


Osea, desde este momento, cuando ocurra un BP, transferir la ejecucion al label dado.

Es como si se seteara un flag, que le dice al plugin que a partir de ese momento, el primer BP que salte, va a hacer que se ejecute las instrucciones que estan en el label.

Si no se usa run, no podria andar nunca. EOB de por si misma, no ejecuta nada...  :P
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


apuromafo CLS

ahora por las excepciones y todo suele usarse los bp en memory y muchas veces  otros comandos, pero mas que eso no


/COE/COB/EOB son comandos mas o menos poco usadosm actualmente
se suele usar:"BPGOTO"

saludos Apuromafo


+info:


//
COB  // Continue On Break
Makes the script continue execution after a breakpoint has occurred. This will override the execute on break (EOB) command.  (removes EOB)
Example:
COB

//
COE  // Continue On Exception
Makes the script continue execution after an exception has occurred. This will override the execute on exception (EOE) command.  (removes EOE)
Example:
COE

//
EOB label  // Execute On Break
Transfers execution to label on next breakpoint.
(see BPGOTO command to assign a label to a breakpoint)
Example:
EOB label
eob SOME_LABEL


//


BPGOTO addr, label         // Breakpoint Goto
------------------
Automatic Jump at label on Breakpoint (Standard(INT3) and Hardware).
//Transfer execution to label when breakpoint at addr is reached.
EOB Like Command
Example:
bphws addr
bpgoto addr, MyLabel
NextBP:
RUN
...
MyLabel:
...
jmp NextBP

//////////////////////////////////
Example2:
BP addr
BPGOTO addr, Do2
RUN
NextBP2:
  RUN
  ...
Do2:
  ...
  JMP NextBP2




--

BPHWS addr, [mode="x"]  // Breakpoint Hardware Set
Sets a hardware breakpoint at addr.
Mode can be
"r" read,
"w" write or
"x" execute

(defaults to "x" if omitted).
--

ERUN  // Exception (Handling) Run //  [formerly ESTO]
Executes "SHIFT+F9" in OllyDbg (Run with exceptions ignored).
Note: Was ESTO before, but the command is depreciated
Example:
ERUN

---

MSGYN str  // Message Yes No
Displays a message box with "Yes" and "No" buttons containing the text str.
$RESULT is set to 0 if the user selects "No".
$RESULT is set to 1 if the user selects "Yes".
$RESULT is set to 2 if the user selects "Cancel".
Example:
MSGYN "Auto search for IAT?"
CMP $RESULT, 0
JE AskIAT
CMP $RESULT, 1
JE FindIAT
CMP $RESULT, 2
JE Exit

.:UND3R:.

Cita de: MCKSys Argentina en 26 Agosto 2011, 23:00 PM
EOB label
---------
Transfer execution to some label on next breakpoint.


Osea, desde este momento, cuando ocurra un BP, transferir la ejecucion al label dado.

Es como si se seteara un flag, que le dice al plugin que a partir de ese momento, el primer BP que salte, va a hacer que se ejecute las instrucciones que estan en el label.

Si no se usa run, no podria andar nunca. EOB de por si misma, no ejecuta nada...  :P

Excelente respuesta pero aún no me aclaro con algo entiendo lo que hace EOB y RUN pero es más que nada por entendimiento cuando se genere el bp se dirigirá a pirulo pero mi duda es en que parte pasa por el run es decir va a pirulo junto con un run? o no pasa por ese run al ir a pirulo, muchas gracias por las respuestas :D

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Иōҳ

#4
creo que yo entendí algo esa explicación, cuando ejecutas el script, mandas el comando RUN, que ya sabemos para que es.

Y no se ejecuta nada hasta que la condición de EOB se cumpla, como dice Fly, EOB por si solo no ejecuta nada.

La condición de EOB es está.

CitarTransfer execution to some label on next breakpoint.

Que me corrigan si me equivoco.

EDITO:

Releyendo lo que dijo fly, aquí está la respuesta.

Citarue le dice al plugin que a partir de ese momento, el primer BP que salte, va a hacer que se ejecute las instrucciones que estan en el label.

el Label es pirulo.

Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net