elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P  (Leído 3,248 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
[SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« en: 11 Agosto 2009, 13:54 pm »

Bueno, despues de estar investigando he conseguido sacar el Puntero de un API llamando a DllFunctionCall@MSVBVM60.DLL...

Como todo programador de VB6 debe saber al llamar un API externa desde VB se llama a DllFunctionCall para sacar el puntero... osea, las APIs declaradas directamente desde el codigo no se agregan a la IAT...

Y bueno, decidi aprovecharme de eso :rolleyes:

Código
  1. Option Explicit
  2. '---------------------------------------------------------------------------------------
  3. ' Module    : mGetAPIPtr
  4. ' Author    : Karcrack
  5. ' Now$      : 11/08/2009  13:07
  6. ' WebPage   : http://www.advancevb.com.ar
  7. ' Used for? : Get API Pointer withouth calling any external API
  8. ' Thanks.   :
  9. '       - Cobein: Support and Unicode-ANSI function (=
  10. '---------------------------------------------------------------------------------------
  11.  
  12. 'MSVBVM60
  13. Private Declare Function DllFunctionCall Lib "MSVBVM60" (ByRef typeAPI As tAPICall) As Long
  14.  
  15. Private Type tAPICall
  16.    ptsLIB              As Long ' Pointer to ANSI String that contains Library
  17.    ptsProc             As Long ' Pointer to ANSI String that contains Procedure
  18.    lReserved           As Long ' Just reserved...
  19.    lPointer            As Long ' Pointer to the buffer that will contain temp variables from DllFunctionCall
  20.    lpBuffer(3)         As Long ' Buffer that will contain temp variables
  21. End Type
  22.  
  23. Public Function GetAPIPtr(ByVal sLib As String, ByVal sProc As String) As Long
  24.    Dim tAPI            As tAPICall
  25.    Dim bvLib()         As Byte
  26.    Dim bvMod()         As Byte
  27.  
  28.    Call Unicode2ANSI(sLib, bvLib)
  29.    Call Unicode2ANSI(sProc, bvMod)
  30.  
  31.    With tAPI
  32.        .ptsLIB = VarPtr(bvLib(0))
  33.        .ptsProc = VarPtr(bvMod(0))
  34.        .lReserved = &H40000
  35.        .lPointer = VarPtr(.lpBuffer(0))
  36.    End With
  37.  
  38.    GetAPIPtr = DllFunctionCall(tAPI)
  39. End Function
  40.  
  41. 'COBEIN (=
  42. Private Sub Unicode2ANSI(ByVal sUNICODE As String, ByRef bvANSI() As Byte)
  43.    Dim i           As Long
  44.  
  45.    ReDim bvANSI(Len(sUNICODE))
  46.    For i = 1 To Len(sUNICODE)
  47.        bvANSI(i - 1) = Asc(Mid$(sUNICODE, i, 1))
  48.    Next i
  49. End Sub

Con esto solo no podemos llamar a las APIs, asi que he modificado el codigo de Cobein del cInvoke
para que llama al puntero que le pases... Aqui hay un ejemplo bastante claro:
Código:
http://www.box.net/shared/tbbihznz6r

Ah! Si pretendeis llamar APIs que pidan Strings recordar usar la version UNICODE de esa API (*W)

Saludos ;D


En línea

illuminat3d

Desconectado Desconectado

Mensajes: 231



Ver Perfil WWW
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #1 en: 11 Agosto 2009, 14:15 pm »

Muy bueno loco, me quedé medio confuso  :huh:, pero se ve muy bueno  ;-)


En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #2 en: 11 Agosto 2009, 18:19 pm »

que loco che, interesante

saludos y gracias
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #3 en: 11 Agosto 2009, 19:49 pm »

Exelente :D .

En línea



Yo le enseñe a Kayser a usar objetos en ASM
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #4 en: 15 Agosto 2009, 06:39 am »

Karcrack, despues tengo unos datos interesantes para pasarte de esta API, me colgue un rato con el IDA y vi unas cuantas cosas.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #5 en: 15 Agosto 2009, 15:31 pm »

Karcrack, despues tengo unos datos interesantes para pasarte de esta API, me colgue un rato con el IDA y vi unas cuantas cosas.
Perfecto :D, si no ves en el MSN enviame un MP por aqui o en HH ;)

Espero ansioso la informacion :xD

Saludos ;)
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.465


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #6 en: 15 Agosto 2009, 20:56 pm »

Muy bueno!

No conocia esa estructura...

Gracias!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [SRC]- mGetAPIPtr, sacar el puntero de un API... nuevo metodo :P
« Respuesta #7 en: 15 Agosto 2009, 23:36 pm »

Muy bueno!

No conocia esa estructura...

Gracias!
Claro que no :xD, la he hecho yo para imitar la llamada al API DllFunctionCall que hacen las aplicaciones del VB :xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines