Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: cobein en 1 Septiembre 2008, 21:17 PM

Título: Detectar Debugger (SRC)
Publicado por: cobein en 1 Septiembre 2008, 21:17 PM
Private Declare Function OutputDebugStringA Lib "kernel32" (ByVal lpString As String) As Long

Private Sub Form_Load()
    If IsDebuggerActive Then
        MsgBox "Debugger Present"
    End If
End Sub

Private Function IsDebuggerActive() As Boolean
    IsDebuggerActive = Not (OutputDebugStringA("=)") = 1)
End Function

Título: Re: Detectar Debugger (SRC)
Publicado por: Mad Antrax en 1 Septiembre 2008, 22:13 PM
Ummm, hay una forma más graciosa para implementar esta API, prueba esto:

Private Declare Function OutputDebugStringA Lib "kernel32" (ByVal lpString As String) As Long

Private Sub Form_Load()
    Dim AA As String
    Dim i As Integer
   
    For i = 1 To 200
        AA = AA & "%s"
    Next i
   
    MsgBox OutputDebugStringA(AA)
End Sub


Es el mismo ejemplo que el tuyo, pero en este caso creamos una variable con el valor "%s" repetido 200 veces: "%s%s%s%s%s%s%s...". Cuando OllyDbg intenta ejecutar éste código, se produce un overflow y el Olly se entra en DeadLock

Tendremos que Debuggear al Debugger para solucionar esto? jijijij

Con esta sencilla instrucción detectas si hay Debugger y en caso de ser OllyDbg, lo "matas".

PD. No es una técnica 100% anti-debugg, pero pone el nivel más dificil al cracker.
Título: Re: Detectar Debugger (SRC)
Publicado por: cobein en 1 Septiembre 2008, 22:44 PM
Es verdad, hoy lo vi casualmente mientras leia un articulo.
Título: Re: Detectar Debugger (SRC)
Publicado por: ssccaann43 © en 1 Septiembre 2008, 22:46 PM
Esta bueno el ejemplo. Saludos
Título: Re: Detectar Debugger (SRC)
Publicado por: krackwar en 1 Septiembre 2008, 22:58 PM
Cita de: ||MadAntrax|| en  1 Septiembre 2008, 22:13 PM
Ummm, hay una forma más graciosa para implementar esta API, prueba esto:

Private Declare Function OutputDebugStringA Lib "kernel32" (ByVal lpString As String) As Long

Private Sub Form_Load()
    Dim AA As String
    Dim i As Integer
   
    For i = 1 To 200
        AA = AA & "%s"
    Next i
   
    MsgBox OutputDebugStringA(AA)
End Sub


Es el mismo ejemplo que el tuyo, pero en este caso creamos una variable con el valor "%s" repetido 200 veces: "%s%s%s%s%s%s%s...". Cuando OllyDbg intenta ejecutar éste código, se produce un overflow y el Olly se entra en DeadLock

Tendremos que Debuggear al Debugger para solucionar esto? jijijij

Con esta sencilla instrucción detectas si hay Debugger y en caso de ser OllyDbg, lo "matas".

PD. No es una técnica 100% anti-debugg, pero pone el nivel más dificil al cracker.
Te me adelantaaste  :P yo ya hiba a publicar el codigo para causar el error en el olly del cual obtuve informacionde como hacerlo en hackhound que esta un cod haci en asm pero no ocupa api-s.
Título: Re: Detectar Debugger (SRC)
Publicado por: cobein en 2 Septiembre 2008, 02:12 AM
@ ||MadAntrax||

Tengo el Olly 2.0 Alpha 6 y no pasa nada, supongo que esta parchado para evitar el overflow.
Título: Re: Detectar Debugger (SRC)
Publicado por: krackwar en 2 Septiembre 2008, 04:56 AM
Cita de: cobein en  2 Septiembre 2008, 02:12 AM
@ ||MadAntrax||

Tengo el Olly 2.0 Alpha 6 y no pasa nada, supongo que esta parchado para evitar el overflow.
Esto por lo que se es un bug de la 1.10.