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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Anti-Debugging
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Anti-Debugging  (Leído 10,390 veces)
sasske

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Anti-Debugging
« Respuesta #10 en: 19 Marzo 2014, 00:45 am »

Puesssss, no tengo ni idea como traducir el "On Error Resume Next" para C++

Básicamente lo que hago cno los timming methods es tomar el tiempo antes de una función crítica. Si hablamos de un software comercial sería:

Código:
myTime = GetTickCount()

Call GenerarSerialCode{

.........................
.........................
.........................

}

MyTime2 = GetTickCount()

If MyTime2 - MyTime > 1 then DbgDetected()

La idea es detectar si un cracker tracea con F8 dentro de una función critica (como la de generar un serialnumber), así la diferencia de Tick's será > 1 y lo podrás detectar. En mi ejemplo no tengo ninguna función crítica, así que puse un bucle explosivo de excepciones DIV/0.

En resumen, no necesitas lanzar DIV/0 para chekear un timmer. Simplemente pon el inicio y final del contador entre una función critica de tu software.

Espero que te sirva. Saludos.

Ya se, pero tu idea es mejor de lo que pensas, el OllyDbg se traba hasta con todas las protecciones por el Div 0, pero, no tira error por ese coso que pusiste, el programa controla la excepción, pero pasa por el OllyDbg, y eso lo traba, y hasta lo deja bugeado, esta buena la protección, porque sin pasar por adentro de alguna parte con F8, igual detecta el debugger, eso me gusto! ajajaj

S2

ssaske:
           te recomiendo que leas: http://msdn.microsoft.com/es-es/library/ms173160.aspx
éxitos.

Ahi lo leo en detalle, pero ya hice todo, y solo me falta saber como des habilitar en ese programa el manejo de excepciones de windows, vi que en algunos IDES se hace desde su config, pero buscaba si se podia por codigo, si alguien sabe, me dice, ahi leo la guia y edito si es que dice algo al respecto.

S2
« Última modificación: 19 Marzo 2014, 00:48 am por sasske » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Anti-Debugging
« Respuesta #11 en: 19 Marzo 2014, 02:00 am »

Si mal no me equivoco es imposible des-habilitar el manejador de excepciones de Windows de un ejecutable, ya que como tengo entendido todo programa posee una estructura llamada SEH, la cual está compuesta por dos argumentos o parámetros de valor DWORD cada uno. El primero apunta al siguiente manejador de excepciones y el segundo parámetro apunta al manejados de excepciones actual. Debes tener en cuenta que el último manejados su primer parámetro apunta a 0xFFFFFFFF y el segundo al manejador por defecto de Windows, el cual estás intentando desactivar, dentro de las protecciones actuales del SO hay un mecanismo llamado SEHOP el cual traza toda la cadena SEH y si la última estructura no apunta a la que te he comentado el programa deja de funcionar, saludos.
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
sasske

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Anti-Debugging
« Respuesta #12 en: 19 Marzo 2014, 20:13 pm »

Si mal no me equivoco es imposible des-habilitar el manejador de excepciones de Windows de un ejecutable, ya que como tengo entendido todo programa posee una estructura llamada SEH, la cual está compuesta por dos argumentos o parámetros de valor DWORD cada uno. El primero apunta al siguiente manejador de excepciones y el segundo parámetro apunta al manejados de excepciones actual. Debes tener en cuenta que el último manejados su primer parámetro apunta a 0xFFFFFFFF y el segundo al manejador por defecto de Windows, el cual estás intentando desactivar, dentro de las protecciones actuales del SO hay un mecanismo llamado SEHOP el cual traza toda la cadena SEH y si la última estructura no apunta a la que te he comentado el programa deja de funcionar, saludos.

Pero se debería de poder, porque si yo pongo:

Código:
try
{
   tmp = 10 / 0;
}
catch(...)
{
   printf("mal");
   continue;
}

No va a funcionar, porque el manejo de excepciones de windows me lo va a bloquear como que es división por 0, y me lo va a cerrar en ves de continuar, debería de tener alguna cosa de poner para que funcione.

S2
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Codigo anti-debugging?
Programación Visual Basic
katanaia 5 6,479 Último mensaje 30 Agosto 2008, 21:07 pm
por apuromafo CLS
[Book]Advanced Windows Debugging
Programación General
d(-_-)b 0 3,752 Último mensaje 10 Octubre 2010, 14:39 pm
por d(-_-)b
Just In time-debugging problema W7
Ingeniería Inversa
.:UND3R:. 0 2,364 Último mensaje 7 Agosto 2011, 10:31 am
por .:UND3R:.
Android Kernel Debugging
Android
madridserginho 0 2,648 Último mensaje 4 Julio 2012, 23:01 pm
por madridserginho
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines