Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Borito30 en 5 Marzo 2017, 14:25 pm



Título: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 5 Marzo 2017, 14:25 pm
Quiero un mensaje en una de mis aplicaciones que al iniciarse muestre Bienvenido , para ello hago lo siguiente:

(https://i.stack.imgur.com/IsUut.png)

Apunto la dirección del primer push que sería 005404F5, y selecciono Go to -> Origin:

(https://i.stack.imgur.com/wCyhK.png)

Después sustituyo la primera dirección por un jmp a la dirección 005404F5.

(https://i.stack.imgur.com/tIQa1.png)

Apunto la dirección 004C0EFF y hago un enter al jmp. Apunto la linea borrada debajo de mi código que sería CALL 004C0DB3 y hago un jmp de nuevo que sería, jmp 004C0EFF:

(https://i.stack.imgur.com/ra552.png)

Guardo el ejecutable. Y me muestra el siguiente error:

(https://i.stack.imgur.com/EWfuH.png)´

He probado con mis programas, con los programas de windows, con todo y no consigo que muestre una alerta de bienvenido alguien podría analizar detenidamente los pasos que tomé o decirme cual es el fallo que cometí.


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: xv0 en 5 Marzo 2017, 22:47 pm
Guardas el ejecutable, pero probaste desde en el mismo olly? Tendria que decirte donde esta el fallo.

Saludos.


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Flamer en 5 Marzo 2017, 23:07 pm
trasealo en el mismo ollydbg como dice cpu, pero lo que veo no se muy bien pero no creo que cargue el mensaje a la pila ya que tienes el PUSH apuntando a otra dirección si el mensaje lo tienes en la dirección 005404E8

saludos


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 5 Marzo 2017, 23:33 pm
trasealo en el mismo ollydbg como dice cpu, pero lo que veo no se muy bien pero no creo que cargue el mensaje a la pila ya que tienes el PUSH apuntando a otra dirección si el mensaje lo tienes en la dirección 005404E8

saludos

Vale corregi eso pero me sigue dando error:

(https://i.imgsafe.org/c91e6db4fe.png)

(https://i.imgsafe.org/c91ea704d6.png)

error:
Código:
Problem signature:
  Problem Event Name: APPCRASH
  Application Name: noti.exe
  Application Version: 6.1.7600.16385
  Application Timestamp: 4a5bc60f
  Fault Module Name: ADVAPI32.dll
  Fault Module Version: 6.1.7601.18247
  Fault Module Timestamp: 521ea86a
  Exception Code: c0000005
  Exception Offset: 0004ea12
  OS Version: 6.1.7601.2.1.0.256.1
  Locale ID: 1043
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt

 :huh: :huh: :huh:


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: xv0 en 5 Marzo 2017, 23:46 pm
Sigue estos pasos como te lo detallo:

Donde tienes el Entry point del ejecutable tienes que colocar el primer push del messagebox, fijate que todos los offsets esten bien, porque hay cosas que no me cuadran del mensaje de error, luego haz que retorne al punto original del ejecutable.

Un saludo.


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Flamer en 6 Marzo 2017, 00:02 am
OJO: tienes 2 PUSH con el string

saludos
--------------------------------------------------------------
corrección es el caption que cargas error mio  jajaja


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 6 Marzo 2017, 00:32 am
OJO: tienes 2 PUSH con el string

saludos
--------------------------------------------------------------
corrección es el caption que cargas error mio  jajaja
el call debajo del messagebox lo pongo porque lo remplazo arriba por el salto. ? Te refieres a eso?


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Flamer en 6 Marzo 2017, 00:55 am
puedes hacer algo similar a lo que dise cpu pero en ves de colocar el push en el entry point pones un salto JMP a dicha zona y luego te regresas con otro JMP y el programa seguirá su curso

saludos Flamer


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 6 Marzo 2017, 01:36 am
puedes hacer algo similar a lo que dise cpu pero en ves de colocar el push en el entry point pones un salto JMP a dicha zona y luego te regresas con otro JMP y el programa seguirá su curso

saludos Flamer
esque el problema aunque modifique otra linea la primera linea se borra por eso lo pongo abajo pero aún así me da error poniendo el push en el entry point pero no lo consigo me devuelve error no se porque si lo hice exactamente como debería si pudieras indicarme como hacerlo me servira de ayuda disculpar por mi estupidez y molestias gracias. :xD

Sigue estos pasos como te lo detallo:

Donde tienes el Entry point del ejecutable tienes que colocar el primer push del messagebox, fijate que todos los offsets esten bien, porque hay cosas que no me cuadran del mensaje de error, luego haz que retorne al punto original del ejecutable.

Un saludo.
en el entry point lo que hago es un salto a la linea de código donde tengo el message box y la linea primera. Pero pienso a lo mejor que debería incluir más código para que el programa prosiga su curso.

Hice esto simplemente hacer un salto:

(https://i.imgsafe.org/d47da20db2.png)

(https://i.imgsafe.org/d47d6e5a6f.png)

Y ni siquiera me abre el bloc de notas.

Tambien podría hacer lo que me habeis dicho poner todo el código seguido a ver si al hacer el salto y la primera linea estar abajo se casca.

Lo intente cogiendo más codigo pero ni aún así me devuelve error:
Código:
Problem signature:
  Problem Event Name: BEX
  Application Name: jojo.exe
  Application Version: 6.1.7600.16385
  Application Timestamp: 4a5bc60f
  Fault Module Name: StackHash_0a9e
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp: 00000000
  Exception Offset: 772fea11
  Exception Code: c0000005
  Exception Data: 00000008
  OS Version: 6.1.7601.2.1.0.256.1
  Locale ID: 1043
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt
:-\

MOD: No hacer doble post.


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: MCKSys Argentina en 6 Marzo 2017, 13:57 pm
Abre el programa modificado con Ollydbg y ejecuta las instrucciones paso a paso con F7.

Con eso deberías poder saber cuál es el error.

Saludos!


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 6 Marzo 2017, 14:31 pm
Abre el programa modificado con Ollydbg y ejecuta las instrucciones paso a paso con F7.

Con eso deberías poder saber cuál es el error.

Saludos!
Hola gracias por vuestra ayuda tengo una duda porque cuando lo ejecuto (presiono f9) me cambia de sector o no sé. A ver quero decir estoy el codigo empezaría por las lineas:

Código:
00980F31


Y cuando lo ejecuto me cambia a un código diferente o lineas diferentes o un fichero diferente no entiendo las direcciones ahora empiezan por 77..:

Código:
77A570F4

Y una vez en este sector no puedo volver a buscar lo que puse. Tengo otra vez que abrirlo.

Ejecute con f7 si no estoy equivocado es para ejecutar cada linea y ver que linea falla?

En mi caso creo que al modificar el entry point el programa deja de arrancar a lo mejor tengo que buscar otro sitio donde hacer el salto o ejecutar la alerta? Disculpa soy muy novato con esto. gracias de nuevo!


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: tincopasan en 6 Marzo 2017, 14:35 pm
es que está saltando a otra dirección, normalmente una dll o módulo que utilice el programa, si te fijas dice donde se encuentra en la parte de desensamblado, además tendrías que tener más claro que tipo de instrucción estás viendo, si es un llamado a una parte externa del exe usas F8 sino F7


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: MCKSys Argentina en 6 Marzo 2017, 14:36 pm
Cuando cargas el exe deberías estar en el EP del programa, osea, el jmp que haz ensamblado.
Si no es así, has reventado algo en el exe.

Saludos!

PD: Ten en cuenta que los programas de windows (calc, notepad, explorer, etc) se autorelocan, osea, se comportan como una dll, por lo que tienen información de relocacion. Si corrompes la misma, tendrás problemas (ya esa la tabla o los destinos de la misma).


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 6 Marzo 2017, 15:48 pm
Probe a no alterar el estado del programa, i chequee las recolocaciones. Pero aún así no me muestra nada intente ejecutar el fichero no modificado pero no hizo. Tambien no afectar al curso del programa pero no hace nada.

Antes de nada cuando copio todo y lo guardo como ejecutable me sale un aviso:

(https://i.imgsafe.org/d91df996a5.png)

Apartir de ahí ya no hace nada intente tambien como el video me sale la alerta le doy si guardo y no hace nada.

Los cambios que hice:

(https://i.imgsafe.org/d843b6d307.png)

(https://i.imgsafe.org/d843eb85af.png)

 :xD alguien hizo algo parecido con el notepad y le funciono? yo intente todo recolocaciones no afectar al curso del programa de todo!

Tuve tambien cuidado porque cuando llamas a veces puede que te redirija a otro sitio.

Citar
Como dice sys hace recolocaciones por lo que puede que se dañe. Ya que cambia las ubicaciones. .
El fichero lo cambie de sitio no se si eso le afecta.


Me estoy viendo este video:
80bjkJcCQO4

El tio consigue hasta arrancar la calculadora  :o


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: MCKSys Argentina en 6 Marzo 2017, 19:23 pm
El 1er mensaje te sale porque estas pisando el destino de una relocacion. Lo que hallas colocado ahi, será pisado nuevamente al momento de cargar el exe.

Saludos!


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: Borito30 en 7 Marzo 2017, 13:08 pm
El 1er mensaje te sale porque estas pisando el destino de una relocacion. Lo que hallas colocado ahi, será pisado nuevamente al momento de cargar el exe.

Saludos!
Una pregunta tu entiendes que signfica esta regla me sale mucho cuando por ejemplo creo primero las instrucciones y después pongo el texto el ascii hago un analisis y me sale mucho de estas lineas es decir todos los db 00 se convierten en esto se como solucionarlo pero no se a que hace referencia estas instrucciones:
(https://i.imgsafe.org/ea2aab14fe.png)

También si me podrías recomendar algun libro o alguno que tu conozcas para aprender mucho sobre cracking porque veo cursos programando en ASM lo cual creo que también le servirá a uno para entender mejor funcionan pero a lo mejor hay otros para crackear o cambiar el comportamiento de los programas ya programados como con ollydbg ida etc¿? conoces alguno bueno? y sobre todo para entender instrucciones que creo que sabiendo programar en ASM las comprendería la mayoría?


Tambien tengo que decir que funcionar funciona lo que pasa que no puedo incluir a mi código un:
Código:
CALL MessageBoxA

Ya que sino devuelve error. El código actual que puse y parece que no corrompe el funcionamiento de notepad hace el salto perfectamente claro que no puedo mostrar un mensaje y por otro lado también ir probando break points que debería intentarlo.

Imagenes del codigo que si funciono (no puedo alertar con messagebox):

(https://i.imgsafe.org/eadd63b25d.png)

(https://i.imgsafe.org/eaddaaa3f3.png)

 :-X´

Puedo poner el error tiene algo que ver con shell32.dll solo me sale cuando pongo messagebox o cualquier funcion como la siguiente :
Código:
CALL MessageBoxA


Título: Re: Alertar con una string en ensamblador usando ollydbg
Publicado por: MCKSys Argentina en 7 Marzo 2017, 14:10 pm
Si buscas una guía, revisa el FAQ de Ing. Inversa (link en mi firma). Ahí encontrarás todo lo necesario para comenzar.

Para llamar a una API, debes ver si la misma está en la IAT del programa. Si no lo está, debes resolver su dirección antes de poder llamarla.

Saludos!