Hola a todos estoy intentando crashear OllyDbg (hoy vengo del lado de los buenos), pero no consigo, tengo el siguiente código:
.data
output_debug BYTE 50h DUP("%s"),0
.code
INVOKE OutputDebugString,ADDR output_debug
INVOKE ExitProcess,0
A ver si me pueden indicar si es correcto lo que estoy haciendo, saludos y gracias
;-) Yo no se mucho de ensamblador, pero porque mejor no lo pruebas.
Despues nos dices si te sirvio.
;-) ;-) ;-)
Cita de: 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.
;-) ;-) ;-)
Citarpero no consigo
lo intenté pero solo recibí un mensaje, saludos.
Cita de: .:UND3R:. en 5 Septiembre 2012, 00:44 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?
http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html (http://www.derkeiler.com/Mailing-Lists/Securiteam/2004-07/0063.html)
Cita de: .: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)
mmm interesante , voy a intentar hacerlo en C pero ten en cuenta que 50
16 no es lo mismo que 50
10, 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...
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":
.386
.model flat, stdcall
option casemap :none
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
output_debug BYTE 2 DUP("%s"),0
.code
start:
INVOKE OutputDebugString,ADDR output_debug
INVOKE MessageBox,0,ADDR output_debug,ADDR output_debug,0
INVOKE ExitProcess,0
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.
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.
http://waleedassar.blogspot.com/2012/03/ollydbg-section-name-crash.html
saludos Apuromafo
Cita de: 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?
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?
#include <windows.h>
int main(int argc, char **argv)
{
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";
OutputDebugStr(cadena);
}
En el Olly2.x fue lo primero que parcharon jejeje
Cita de: Иōҳ en 5 Septiembre 2012, 14:36 PM
En el Olly2.x fue lo primero que parcharon jejeje
Ya me supongo porqué jajajaja >:D
Cita de: 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":
.386
.model flat, stdcall
option casemap :none
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
output_debug BYTE 2 DUP("%s"),0
.code
start:
INVOKE OutputDebugString,ADDR output_debug
INVOKE MessageBox,0,ADDR output_debug,ADDR output_debug,0
INVOKE ExitProcess,0
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.
Cita de: Иōҳ 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.
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.
Cita de: apuromafo en 5 Septiembre 2012, 10:24 AM
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.
Cita de: avesudra en 5 Septiembre 2012, 13:29 PM
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?
#include <windows.h>
int main(int argc, char **argv)
{
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";
OutputDebugStr(cadena);
}
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.
Cita de: .:UND3R:. en 6 Septiembre 2012, 02:49 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!
Cita de: avesudra en 6 Septiembre 2012, 03:17 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.
Gracias por la recomendación del libro .:UND3R:. una temporada que tenga tiempo intentaré ponerme , o en los ratos libres.
Exacto Under, esa es la idea, replicar los métodos antidebug en general programándolos en asm y mostrar el src + explicación :)