Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 4 Septiembre 2012, 18:43 pm



Título: Intentando crashear OllyDBG OutputDebugString
Publicado por: .:UND3R:. en 4 Septiembre 2012, 18:43 pm
Hola a todos estoy intentando crashear OllyDbg (hoy vengo del lado de los buenos), pero no consigo, tengo el siguiente código:

Código
  1. .data
  2. output_debug BYTE 50h DUP("%s"),0
  3. .code
  4. INVOKE OutputDebugString,ADDR output_debug
  5. INVOKE ExitProcess,0

A ver si me pueden indicar si es correcto lo que estoy haciendo, saludos y gracias


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: jEUDi17 en 4 Septiembre 2012, 19:03 pm
 ;-) Yo no se mucho de ensamblador, pero porque mejor no lo pruebas.

Despues nos dices si te sirvio.

 ;-) ;-) ;-)


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: .:UND3R:. en 5 Septiembre 2012, 00:44 am
;-) Yo no se mucho de ensamblador, pero porque mejor no lo pruebas.

Despues nos dices si te sirvio.

 ;-) ;-) ;-)

Citar
pero no consigo

lo intenté pero solo recibí un mensaje, saludos.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 5 Septiembre 2012, 01:08 am
lo intenté pero solo recibí un mensaje, saludos.
.:UND3R:. yo no entiendo mucho pero le estás pasando una cadena con 80 %s , ¿y eso para qué ? , se supone que le das una cadena y envía esta al debugger para mostrarla, pero para que le pasas %s?


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: .:UND3R:. en 5 Septiembre 2012, 01:45 am
http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html (http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html)


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 5 Septiembre 2012, 01:58 am
http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html (http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html)
mmm interesante , voy a intentar hacerlo en C pero ten en cuenta que 5016 no es lo mismo que 5010, bueno eso lo sabes mejor que yo :xD , pero lo digo por si se te ha pasado, igual es por eso. Ya te digo si veo algo.

PD: A ver si el bug solo lo podemos ver en python...


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: PeterPunk77 en 5 Septiembre 2012, 02:47 am
Buenas .:UND3R:.,
a mi ese código me funciona perfectamente. ¿No estarás intentando probarlo en un OlliDbg parcheado para que no reviente?

De hecho, parece que funciona a partir de 2 "%s":

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4. include \masm32\include\kernel32.inc
  5. include \masm32\include\user32.inc
  6. includelib \masm32\lib\kernel32.lib
  7. includelib \masm32\lib\user32.lib
  8. .data
  9. output_debug BYTE 2 DUP("%s"),0
  10. .code
  11. start:
  12. INVOKE OutputDebugString,ADDR output_debug
  13. INVOKE MessageBox,0,ADDR output_debug,ADDR output_debug,0
  14. INVOKE ExitProcess,0
  15. end start
Si lo ejecuto directamente o con un Olly parcheado me muestra la MessageBox.

Pero con el Olly original en Windows XP se cierra directamente y en Windows 7 x64 rompe con esto:
(http://i49.tinypic.com/akh3lt.png)

Saludos.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: Иōҳ en 5 Septiembre 2012, 05:29 am
Justo estoy empezando hacer un compendio de todos los métodos antidebug en general que me encuentro al reversear, tal vez en un par de meses se pueda armar algo bueno :P

Saludos,
Nox.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: apuromafo CLS en 5 Septiembre 2012, 10:24 am
http://waleedassar.blogspot.com/2012/03/ollydbg-section-name-crash.html

saludos Apuromafo


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 5 Septiembre 2012, 13:29 pm
Buenas .:UND3R:.,
a mi ese código me funciona perfectamente. ¿No estarás intentando probarlo en un OlliDbg parcheado para que no reviente?
Saludos.
En el OllyDbg 2.01 no crashea , igual es que ha usado ese , a mí con esto en C crashea perfectamente.Una pregunta de novato , ¿esto es o puede ser un método AntiDebug?
Código
  1. #include <windows.h>
  2.  
  3. int main(int argc, char **argv)
  4. {
  5.    char cadena []="%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s";
  6.    OutputDebugStr(cadena);
  7. }
  8.  


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: Иōҳ en 5 Septiembre 2012, 14:36 pm
En el Olly2.x fue lo primero que parcharon jejeje


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 5 Septiembre 2012, 21:41 pm
En el Olly2.x fue lo primero que parcharon jejeje
Ya me supongo porqué jajajaja  >:D


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: .:UND3R:. en 6 Septiembre 2012, 02:49 am
Buenas .:UND3R:.,
a mi ese código me funciona perfectamente. ¿No estarás intentando probarlo en un OlliDbg parcheado para que no reviente?

De hecho, parece que funciona a partir de 2 "%s":

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4. include \masm32\include\kernel32.inc
  5. include \masm32\include\user32.inc
  6. includelib \masm32\lib\kernel32.lib
  7. includelib \masm32\lib\user32.lib
  8. .data
  9. output_debug BYTE 2 DUP("%s"),0
  10. .code
  11. start:
  12. INVOKE OutputDebugString,ADDR output_debug
  13. INVOKE MessageBox,0,ADDR output_debug,ADDR output_debug,0
  14. INVOKE ExitProcess,0
  15. end start
Si lo ejecuto directamente o con un Olly parcheado me muestra la MessageBox.

Pero con el Olly original en Windows XP se cierra directamente y en Windows 7 x64 rompe con esto:
(http://i49.tinypic.com/akh3lt.png)

Saludos.
Muchísimas gracias por el código, al fin  y al cabo me arrojó me sucedió lo mismo (solo recibí una alerta), pese a que tenga todos los plugins desactivados, pero me quedo tranquilo con saber que te ha funcionado.

Justo estoy empezando hacer un compendio de todos los métodos antidebug en general que me encuentro al reversear, tal vez en un par de meses se pueda armar algo bueno :P

Saludos,
Nox.

Sería de gran ayuda, ya que estoy programando un sistema anti-cheat y necesito la máxima cantidad de trucos (un pack), si gustas puedo enviarte algunos que sé, claro que todos han sido conseguidos a través de Internet, pero si podría ser útil para una recopilación, si te animas sería excelente que hicieras pequeños ejecutables junto con su source para que sea mucho más entendible.

http://waleedassar.blogspot.com/2012/03/ollydbg-section-name-crash.html

saludos Apuromafo

Interesante referencia sobre el enfoque que se da, más allá que explotarlo es entender por qué falla, muchas gracias por la info.

En el OllyDbg 2.01 no crashea , igual es que ha usado ese , a mí con esto en C crashea perfectamente.Una pregunta de novato , ¿esto es o puede ser un método AntiDebug?
Código
  1. #include <windows.h>
  2.  
  3. int main(int argc, char **argv)
  4. {
  5.    char cadena []="%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s";
  6.    OutputDebugStr(cadena);
  7. }
  8.  

Tal como dices, la finalidad es generar un error en el debugger de manera de aludir a cracker's curiosos, muchísimas gracias por el código en C, sé que me será de utilidad ya que de pronto comenzaré con C, creo que será un gran aliado junto con ASM.


Muchas gracias a todos por sus respuesta.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 6 Septiembre 2012, 03:17 am
Tal como dices, la finalidad es generar un error en el debugger de manera de aludir a cracker's curiosos, muchísimas gracias por el código en C, sé que me será de utilidad ya que de pronto comenzaré con C, creo que será un gran aliado junto con ASM.


Muchas gracias a todos por sus respuesta.
Ummm curioso ese metodo antidebug , ¿Saes programar en asm y no en C? Entonces empezar para ti en C será como comerte una tarta , yo entiendo el ASM mas o menos pues he hecho hasta el capitulo treinta y pico del curso de Ricardo Narvaja , pero no soy capaz de programar con el , una pena :(

¡Un saludo a todos!


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: .:UND3R:. en 7 Septiembre 2012, 03:38 am
Ummm curioso ese metodo antidebug , ¿Saes programar en asm y no en C? Entonces empezar para ti en C será como comerte una tarta , yo entiendo el ASM mas o menos pues he hecho hasta el capitulo treinta y pico del curso de Ricardo Narvaja , pero no soy capaz de programar con el , una pena :(

¡Un saludo a todos!

http://foro.elhacker.net/asm/lenguaje_ensamblador_para_computadoras_basadas_en_intelkip_r_irvine_espanol-t364651.0.html (http://foro.elhacker.net/asm/lenguaje_ensamblador_para_computadoras_basadas_en_intelkip_r_irvine_espanol-t364651.0.html)

Si te lees esto completo, podrás programar ASM, saludos y suerte.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: avesudra en 7 Septiembre 2012, 13:51 pm
Gracias por la recomendación del libro .:UND3R:. una temporada que tenga tiempo intentaré ponerme , o en los ratos libres.


Título: Re: Intentando crashear OllyDBG OutputDebugString
Publicado por: Иōҳ en 10 Septiembre 2012, 21:08 pm
Exacto Under, esa es la idea, replicar los métodos antidebug en general programándolos en asm y mostrar el src + explicación :)