Option Explicit
'NTDLL
Private Declare Function LdrLoadDll Lib "NTDLL" (ByVal pWPathToFile As Long, ByVal Flags As Long, ByRef pwModuleFileName As UNICODE_STRING, ByRef ModuleHandle As Long) As Long
Private Declare Function LdrGetProcedureAddress Lib "NTDLL" (ByVal ModuleHandle As Long, ByRef paFunctionName As Long, ByVal Ordinal As Integer, ByRef FunctionAddress As Long) As Long
Private Declare Sub RtlInitUnicodeString Lib "NTDLL" (DestinationString As Any, ByVal SourceString As Long)
Private Type UNICODE_STRING
uLength As Integer
uMaximumLength As Integer
pBuffer As Long
End Type
Public Function NtLoadLibrary(ByVal sName As String) As Long
Dim US As UNICODE_STRING
Call RtlInitUnicodeString(US, StrPtr(sName))
Call LdrLoadDll(ByVal 0&, ByVal 0&, US, NtLoadLibrary)
End Function
Public Function NtGetProcAddr(ByVal lModuleHandle As Long, ByVal sProc As String) As Long
Dim i As Long
Dim ANSI() As Byte
ReDim ANSI(0 To Len(sProc))
For i = 1 To Len(sProc)
ANSI(i - 1) = Asc(Mid$(sProc, i, 1))
Next i
Call LdrGetProcedureAddress(lModuleHandle, VarPtr(ANSI(0)), ByVal 0&, NtGetProcAddr)
End Function
http://www.advancevb.com.ar/?p=306
Es el equivalente nativo de LoadLibrary+GetProcAddress :D
Ejemplo: Option Explicit
'KERNEL32
Private Declare Function LoadLibrary Lib "KERNEL32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "KERNEL32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Sub Form_Load()
MsgBox Hex$(NtGetProcAddr(NtLoadLibrary("KERNEL32"), "ExitProcess")) & vbCrLf & Hex$(GetProcAddress(LoadLibrary("KERNEL32"), "ExitProcess"))
End Sub
Cualquier duda... preguntar! ;)
Saludos ::)
Excelentes aportes Karcrack, sin embargo muchos usuarios o la gran mayoría tiene menos de un 50% de conocimientos en VB y les sería util si explicas en tus aportes la finalidad del source que posteas con el fin de que puedan comprender como usarlo.
Cita de: ssccaann43 en 10 Febrero 2010, 19:13 PM
Excelentes aportes Karcrack, sin embargo muchos usuarios o la gran mayoría tiene menos de un 50% de conocimientos en VB y les sería util si explicas en tus aportes la finalidad del source que posteas con el fin de que puedan comprender como usarlo.
a mi solo explíquenme el ASM o un Manual online ( Pagina jejejeje ).
P.D.: Como pasas el código ASM a OpCode (asi se le dice No mmm ¬¬"), lo digo por tus otros Post.
Sangrientas Lunas!¡.
.
Cita de: BlackZeroX▓▓▒▒░░ en 10 Febrero 2010, 19:19 PMComo pasas el código ASM a OpCode (asi se le dice No mmm ¬¬"), lo digo por tus otros Post.
Ensamblo las instrucciones de ASM con FASM en modo binario (*.BIN) luego con algun editor Hexadecimal (Como el Hex WorkShop) se pueden sacar el formato Currency,Long,Byte... etc..
Cita de: ssccaann43 en 10 Febrero 2010, 19:13 PM
Excelentes aportes Karcrack, sin embargo muchos usuarios o la gran mayoría tiene menos de un 50% de conocimientos en VB y les sería util si explicas en tus aportes la finalidad del source que posteas con el fin de que puedan comprender como usarlo.
Cualquier duda que tengan que posteen, si es coherente respondere sin ningun problema... Ademas, este codigo esta claro lo que hace no? :P