Dessa, harás que me sonroje !!!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Public Function DoNotCall() As Long
'FUNCION VACIA QUE SERA PARCHEADA
End Function
Public Function CallAPIByName(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
Dim lPtr As Long
Dim bvASM(&HEC00& - 1) As Byte
Dim i As Long
Dim lMod As Long
lMod = GetProcAddress(LoadLibraryA(sLib), sMod) 'OBTENEMOS EL PUNTERO DEL API
If lMod = 0 Then Exit Function
lPtr = VarPtr(bvASM(0)) 'OBTENEMOS EL PUNTERO DEL ARRAY DE BYTES VACIO
CpyMem ByVal lPtr, &H59595958, &H4: lPtr = lPtr + 4 'COPIAMOS EN EL ARRAY CODIGO ASM
CpyMem ByVal lPtr, &H5059, &H2: lPtr = lPtr + 2 'COPIAMOS EN EL ARRAY CODIGO ASM
For i = UBound(Params) To 0 Step -1 'POR CADA PARAMETRO...
CpyMem ByVal lPtr, &H68, &H1: lPtr = lPtr + 1 'METEMOS UN PUSH...
CpyMem ByVal lPtr, CLng(Params(i)), &H4: lPtr = lPtr + 4 '...CON EL VALOR
Next
CpyMem ByVal lPtr, &HE8, &H1: lPtr = lPtr + 1 'METEMOS EL OPCODE DEL CALL
CpyMem ByVal lPtr, lMod - lPtr - 4, &H4: lPtr = lPtr + 4 ' Y LA DIRECCION RELATIVA
CpyMem ByVal lPtr, &HC3, &H1 'AHORA METEMOS EL RET
Dim lVTE As Long
Dim lRet As Long
CpyMem lVTE, ByVal ObjPtr(Me), &H4 'OBTENEMOS EL PUNTERO A LA vTABLE
lVTE = lVTE + &H1C 'OBTENEMOS EL PUNTERO A LA DIRECCION DE LA FUNCION "zDoNotCall"
CpyMem lRet, ByVal lVTE, &H4 ' SACAMOS LA DIRECCION ORIGINAL
CpyMem ByVal lVTE, VarPtr(bvASM(0)), &H4 'PARCHEAMOS LA FUNCION PARA QUE EJECUTE NUESTRO CODIGO ASM
CallAPIByName = DoNotCall
CpyMem ByVal lVTE, lRet, &H4 'RESTAURAMOS LA FUNCION
End Function
'KERNEL32
Private Declare Function OpenFile Lib "KERNEL32" (ByVal lpFileName As String, ByRef lpReOpenBuff As Any, ByVal wStyle As Long) As Long
Private Function DoFileExists(ByVal sPath As String) As Boolean
Dim OFSTRUCT(&H21) As Long
DoFileExists = CBool(OpenFile(sPath, OFSTRUCT(0), &H4000) <> -1)
End Function
ManijaProceso = pi.hProcess
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_asi_funcionan_los_crypters_encriptando_malware_a_mano-t262806.0.html