Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Implementar truco para antidebug en mi clase debugger

Buenas, estoy intentando que mi debugger se salte el nuevo truco que usan en Windows 10 para detectar al debugger. El código que usan es este:
Código PHP:
void __stdcall _OutputDebugStringW(LPCWSTR lpOutputString)
{
    
char outputDebugStringBuffer[1000] = {0};
    
WideCharToMultiByte(CP_ACP0lpOutputString, -1outputDebugStringBuffersizeof(outputDebugStringBuffer), 00);

    
ULONG_PTR args[4];

    
//unicode
    
args[0] = (ULONG_PTR)wcslen(lpOutputString) + 1;
    
args[1] = (ULONG_PTR)lpOutputString;

    
//ansi for compatibility
    
args[2] = (ULONG_PTR)wcslen(lpOutputString) + 1;
    
args[3] = (ULONG_PTR)outputDebugStringBuffer;

    
__try
    
{
        
RaiseException(0x4001000A04args);//DBG_PRINTEXCEPTION_WIDE_C
        
ShowMessageBox("DBG_PRINTEXCEPTION_WIDE_C -> Debugger detected");
    }
    
__except(EXCEPTION_EXECUTE_HANDLER)
    {
        
ShowMessageBox("DBG_PRINTEXCEPTION_WIDE_C -> Debugger NOT detected");
    }

Si hay un debugger no hay excepción y si no hay debugger si la hay y así es como detecta al debugger. La cosa es que necesito enviarle esa excepción para que vaya al lugar que me interesa pero no sé qué debo hacer para eso. Para en el evento de depuración OutputDebugString ¿Le envío la excepción EXCEPTION_EXECUTE_HANDLER? ¿Eso funcionaria? ¿Como hago que la aplicación reciba esa excepción y la maneje el?
Responder Con Cita
  #2  
Antiguo 01-06-2020
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Bueno, lo he solucionado y al final la solución era más fácil de lo que pensaba. En el evento OnOutputStringDebug tenía la respuesta de salida DBG_CONTINUE y puse un condicional para que cuando quiera ocultarme de ese truco enviar DBG_EXCEPTION_NOT_HANDLED y con eso se soluciona.
Responder Con Cita
  #3  
Antiguo 01-06-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Implementar una clase en un Objeto (TEdit) Jose Roman OOP 3 21-02-2015 00:49:19
Cómo implementar el siguiente código en una clase eennzzoo C++ Builder 12 03-07-2014 21:10:35
Busco un truco para Grid edca OOP 4 30-01-2009 22:56:55
Implementar el constructor de una clase Alcolea OOP 2 14-06-2006 06:39:05
Configurar Memproof para utilizarlo como debugger setry2 OOP 1 15-10-2003 18:02:20


La franja horaria es GMT +2. Ahora son las 11:05:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi