elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  ¿alguna forma de modificar el resultado de una ejecucion?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿alguna forma de modificar el resultado de una ejecucion?  (Leído 3,030 veces)
AlxSpy

Desconectado Desconectado

Mensajes: 137


Ver Perfil
¿alguna forma de modificar el resultado de una ejecucion?
« en: 1 Agosto 2011, 17:38 pm »

hola no se bien como llamar esto asi que puse ese titulo que es lo unico que se me ocurrio, para aclarar mas lo que quiero hacer expongo un caso:

tengo un codigo en vb6 que al ingresar un numero, este lo evalua si es menor a 500 muestra el mensaje "Fallido", sino muestra "Exito".

Código
  1. Private Sub Command1_Click()
  2.    Dim Numero As Long
  3.    Numero = Val(Text1.Text)
  4.    If Numero < 500 Then
  5.        MsgBox "Fallido", vbCritical, ""
  6.        Exit Sub
  7.    End If
  8.    MsgBox "Exito", vbInformation, ""
  9. End Sub

quisiera detectar la ejecucion de esa rutina y de alguna manera interrumpirla y obtener la direccion donde se estaba realizando esa ejecucion para redireccionar la ejecucion y se salte ese If y el resultado sea siempre exito, en codigo seria asi:

Código
  1. Private Sub Command1_Click()
  2.    Dim Numero As Long
  3.    Numero = Val(Text1.Text)
  4.    MsgBox "Exito", vbInformation, ""
  5. End Sub

weno este es solo un ejemplo para que quede claro lo que quiero hacer, porque en realidad quisiera aplicar esto para haer malwares que por ejemplo detengan una ejecucion y despues de un rato continue, o cambiar la ejecucion del explorer.exe para evitar que el usuario cree una carpeta o copie un archivo, y asi muchas cosas se me ocurren.
¿tendran algun enlace sobre el tema? o ¿que apis debo buscar?, lo que sea se los agradecere.
« Última modificación: 1 Agosto 2011, 18:00 pm por AlxSpy » En línea

ThunderCls


Desconectado Desconectado

Mensajes: 454


Coder | Reverser | Gamer


Ver Perfil WWW
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #1 en: 1 Agosto 2011, 21:07 pm »

Si no entendi mal, para lo que deseas hacer debes leerte algo de "Hooking" y "DLL Inyection"  ;-)
Saludos
En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #2 en: 3 Agosto 2011, 08:59 am »

Como dice [ Thunder | CLS ] esta técnica se conoce como Hooking, consiste en modificar el flujo de ejecución de un programa inyectando tus rutinas de código :) Hay mucha información en internet, empapate y cualquier duda ya sabes ;)
En línea

AlxSpy

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #3 en: 5 Agosto 2011, 19:21 pm »

holas busque y lei info interesante , ahora se que esto se llama "hilo de ejecucion", encontre unas apis:
suspendthread con esto puedo pausar el hilo.
resumethread con este continuaria ejecutando el hilo.
pero dos problemilla, ¿como obtengo la direccion de memoria donde se esta ejecutando el hilo en el momento en que hago una pausa?, ¿como haria que el hilo continue en otra parte de la memoria?, ¿que apis serian para estos 2 asuntos que me faltan?
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #4 en: 8 Agosto 2011, 07:54 am »

no es necesario inyectar ni nada por el estilo, simplemente tienes que encontrar la dirección de la comparación y "nopearla"  o modificarla como te sea conveniente mediante writeprocessmemory...

S2

PD: la inyección de código se utiliza más cuando se quieren agregar comportamientos más que modificarlos.
En línea

AlxSpy

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #5 en: 9 Agosto 2011, 03:16 am »

claro, en los temas que encontre eso del hooking era para interceptar llamadas a api , pero ese no es mi objetivo, sino solo cambiar el resultado del hilo de ejecucion para que se salte esa comparacion que puse, ya encontre como detener el hilo y hacerlo continuar, ahora lo que me falta es encontrar una api que me de la direccion donde se estaba ejecutando el hilo para sobreescribirlo y otra api para hacer que el hilo continue en otra parte.
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: ¿alguna forma de modificar el resultado de una ejecucion?
« Respuesta #6 en: 9 Agosto 2011, 04:31 am »

Y porque no NOPeas la parte que quieres saltarte, porque al querer saltartela, no te es de importancia, claro si no tiene CRC, nopeala je.

Nox.
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines