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:
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
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.
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?
#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.