elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:02  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany)
| | |-+  Duda con simple script
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con simple script  (Leído 434 veces)
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Duda con simple script
« en: 26 Agosto 2011, 22:11 »

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


Citar
inicio:

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
En línea

MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Duda con simple script
« Respuesta #1 en: 26 Agosto 2011, 23:00 »

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
En línea

---------------------
MCKSys Argentina

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


Desconectado Desconectado

Mensajes: 640


Ver Perfil
Re: Duda con simple script
« Respuesta #2 en: 26 Agosto 2011, 23:31 »

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
En línea

Quidquid latine dictum sit altum viditur



saludos .en un tiempo estare offtopic..(no es broma de dia de inocentes).// Retired de ing inversa
saludos Apuromafo
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Re: Duda con simple script
« Respuesta #3 en: 27 Agosto 2011, 02:29 »

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
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 454


Ver Perfil
Re: Duda con simple script
« Respuesta #4 en: 27 Agosto 2011, 03:34 »

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á.

Citar
Transfer execution to some label on next breakpoint.

Que me corrigan si me equivoco.

EDITO:

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

Citar
ue 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.
« Última modificación: 27 Agosto 2011, 03:37 por Иōҳ » En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines