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
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.
Es verdad, hoy lo vi casualmente mientras leia un articulo.
Esta bueno el ejemplo. Saludos
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.
@ ||MadAntrax||
Tengo el Olly 2.0 Alpha 6 y no pasa nada, supongo que esta parchado para evitar el overflow.
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.