[SRC][SNIPPET] Tecnica AntiDebugging [ASM+VB #CallWindowProc#]

Iniciado por Karcrack, 5 Febrero 2009, 19:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Karcrack

Tenia este code guardado por ahi :xD, y bueno, aqui esta ;D

Codigo de ASM ejecutado:
Código (asm) [Seleccionar]
use32
    mov eax, [fs:30h]
    mov eax, [eax + 68h]
ret


Codigo Completo:
Código (vb) [Seleccionar]
'---------------------------------------------------------------------------------------
' Module    : ImDebug_ASM
' Author    : Karcrack
' DateTime  : 23/01/2009  15:02
' Purpose   : Saber si estamos siendo debuggeados
' Thanks    : Cobein, Por sus codes de ASM inline (:
'---------------------------------------------------------------------------------------

Option Explicit
Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Function ImDebug_ASM() As Boolean
    Dim bvASM(0 To 9)   As Byte
    bvASM(0) = &H64: bvASM(1) = &HA1: bvASM(2) = &H30: bvASM(3) = &H0: bvASM(4) = &H0: bvASM(5) = &H0: bvASM(6) = &H8B: bvASM(7) = &H40: bvASM(8) = &H68: bvASM(9) = &HC3
    ImDebug_ASM = CBool(CallWindowProc(VarPtr(bvASM(0)), 0&, 0&, 0&, 0&))
End Function


Saludos ;D

<[(x)]>


Muy bueno che.

y si me saca una duda mejor: para que usas los '&' en esta parte?
Código (vb) [Seleccionar]

CallWindowProc(VarPtr(bvASM(0)), 0&, 0&, 0&, 0&)


54¬ui)()5
<[(x)]>

Karcrack

Cita de: <[(x)]> en  5 Febrero 2009, 19:36 PM

Muy bueno che.

y si me saca una duda mejor: para que usas los '&' en esta parte?
Código (vb) [Seleccionar]

CallWindowProc(VarPtr(bvASM(0)), 0&, 0&, 0&, 0&)


54¬ui)()5
Sirve para que el 0 sea Long, no cualquier otro tipo de variable (Integer o Variant...) los pongo, porque el API esta declarada con ByVal Xxxx as Long ;)

Saludos ;D