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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [VB6] [Ayuda con Invoke] en CryptAPI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [VB6] [Ayuda con Invoke] en CryptAPI  (Leído 2,448 veces)
STARZ

Desconectado Desconectado

Mensajes: 34



Ver Perfil
[VB6] [Ayuda con Invoke] en CryptAPI
« en: 20 Junio 2012, 23:14 pm »

Hola, estoy queriendo resumir y usar Invoke o CAbN (Call Api by Name) en el siguiente algoritmo de encriptacion basicamente porque es bastante rapido.

http://pastebin.com/R9eXK9gX

No tuve ningun problema en pasar todas funciones, pero me he trabado en esta parte (CryptDecrypt y CryptEncrypt)

Código
  1. Private Declare Function CryptEncrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long, ByVal dwBufLen As Long) As Long
  2. Private Declare Function CryptDecrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long) As Long
  3.  

Código
  1.  
  2.  'Encrypt or decrypt depending on the Encrypt parameter
  3.  lLength = Len(Text)
  4.  If (Encrypt) Then
  5.   If (CryptEncrypt(hKey, 0, 1, 0, Text, lLength, lLength) = 0) Then '<--- DUDA! No se como pasarlo a CAbN
  6.      Call Err.Raise(vbObjectError, , "Error during CryptEncrypt.")
  7.    End If
  8.  Else
  9.    If (CryptDecrypt(hKey, 0, 1, 0, Text, lLength) = 0) Then '<--- DUDA!
  10.      Call Err.Raise(vbObjectError, , "Error during CryptDecrypt.")
  11.    End If
  12.  End If
  13.  
  14.  

Agradeceria que alguien me explique como hacer para usar el CAbN en esos dos casos.
Supongo que voy a poner el codigo final (con todas las funciones pasadas a CAbN) cuando resuelva esta parte.


« Última modificación: 21 Junio 2012, 17:00 pm por STARZ » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [VB6] [Ayuda con Invoke] en CryptAPI
« Respuesta #1 en: 21 Junio 2012, 18:17 pm »

No se mucho del tema, pero tenes estos enlaces
Call API By Name Usin vtable Patch - cobein
Universal dll function caller, CDECL & stdcall with .bas/.cls/.frm/.ctl callbacks - Paul Caton
mZombieInvoke – Native VB6 Invoke :) - cobein

de todas formas podes pasar por Análisis y diseño de malware


En línea

STARZ

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: [VB6] [Ayuda con Invoke] en CryptAPI
« Respuesta #2 en: 22 Junio 2012, 03:35 am »

Gracias por responder, pero ese no es el problema, se como usar Invoke o Call Api by Name.
Mi problema es que no se por qué no puedo hacer andar esas dos APIS con Invoke:

CryptEncrypt y CryptDecrypt , ambas de "advapi32.dll"

¿Alguien sabe como invokar esas dos funciones para que funcione en el código que puse ahi arriba en el PasteBin?
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [VB6] [Ayuda con Invoke] en CryptAPI
« Respuesta #3 en: 22 Junio 2012, 03:54 am »

Pero es que no hay "un solo CallApiByName", cuál estas usando vos?

Aunque todos por lo general aceptan punteros o valores enteros como parametros. Asi que si tenes que pasar algo que no sea de tipo numero entero. Hacelo con VarPtr, ObjPtr o StrPtr segun corresponda. Cuando uses StrPtr, recuerda que este te devuelve un puntero a un string Unicode, así que la llamada debe ser a la version Unicode de la función o sino transformar el string a Array y de ahí pasarlo con VarPtr(miString(0))

Proba con el de Paul Caton que es muy probable que te funcione, despues vas comentando
« Última modificación: 22 Junio 2012, 04:10 am por raul338 » En línea

STARZ

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: [VB6] [Ayuda con Invoke] en CryptAPI
« Respuesta #4 en: 23 Junio 2012, 22:45 pm »

Wow!, por un segundo pensé que me había equivocado de Foro...
Gracias por responder @raul338 estoy probando lo que me decís.

Edit: Dejo el Code completo solo por si alguien quiere terminarlo así lo comparte
Están las líneas originales y los comments:
http://pastebin.com/rNg0v5hN
Serían esas dos líneas que marqué en mi comentario anterior lo que fataría invokar.

Uso este Invoke:
http://cobein.com/wp/?p=567
« Última modificación: 24 Junio 2012, 08:35 am por STARZ » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Invoke WININET y CopyMemory
Programación Visual Basic
STARZ 6 2,867 Último mensaje 30 Enero 2012, 08:56 am
por BlackZeroX
[HELP] How to use & invoke API function "MulDiv" « 1 2 »
Programación Visual Basic
msdl 12 8,677 Último mensaje 10 Junio 2012, 21:46 pm
por Swellow
[HELP] Invoke APIs
Programación Visual Basic
Swellow 1 1,636 Último mensaje 4 Mayo 2012, 10:01 am
por Swellow
[HELP] Invoke or Alternative to InternetReadFile API
Programación Visual Basic
Swellow 2 1,984 Último mensaje 22 Junio 2012, 04:31 am
por Swellow
[HELP] Invoke API's
Programación Visual Basic
Swellow 4 1,740 Último mensaje 24 Noviembre 2012, 17:58 pm
por Swellow
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines