Tenia este code guardado por ahi :xD, y bueno, aqui esta ;D
Codigo de ASM ejecutado:
use32
mov eax, [fs:30h]
mov eax, [eax + 68h]
ret
Codigo Completo:
'---------------------------------------------------------------------------------------
' 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
Muy bueno che.
y si me saca una duda mejor: para que usas los '&' en esta parte?
CallWindowProc(VarPtr(bvASM(0)), 0&, 0&, 0&, 0&)
54¬ui)()5
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?
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