Autor
|
Tema: [Source] Inyeccion Dll en VB (Leído 24,241 veces)
|
~~
|
1-podrias publicar ese codigo de inyeccion para C# (es posible eso?) Buscalo por el foro de Net, q ya está posteado de todas maneras el 90% del code son apis, no te costará mucho traducirlo tu mismo 2-se puede crear un DLL (dinamico) con C# Si, si se puede crear una dll, pero no te valdrá para inyectar, ya q usa codigo MSIL, no codigo nativo como puede usar C/C++ 3- osea si quiero crear mi libreria (*.DLL) y inyectarlo con C# (*.exe) a una cierta aplicacion... tengo que crear todas mis funciones en modo c++?
Si, puedes inyectar desde C#, pero la dll mejor q la hagas en C/C++ (sabiendo C# no te costará nada hacerrla en C++ ) Salu2
|
|
|
En línea
|
|
|
|
|
carolmuriel
Desconectado
Mensajes: 40
aqui no cabe lo que quiero decir
|
he aqui un ejemplo que solucionara muchas de sus dudas esta probado por lo tanto funciona asi que bueno no es mio pero se que esta hecho a la perfeccion de un user de aqui mismo
|
|
|
En línea
|
|
|
|
Freeze.
|
Aqui traigo una duda: Tengo esto en la dll: Option Explicit Public Function DLLMain( _ ByVal lhModule As Long, _ ByVal lReason As Long, _ ByVal lReserved As Long) As Long Select Case lReason Case DLL_PROCESS_ATTACH: Call RemomoveDll End Select DLLMain = 0 End Function Private Sub Main(): End Sub Private Sub RemomoveDll() Dim hLib As Long hLib = GetModuleHandle("DllInject") If Not hLib = ilNULL Then FreeLibrary (hLib) End Sub Public Sub Mensaje(texto As String) MsgBox texto End Sub
Y esto en el proyecto: Private Declare Function Mensaje Lib "lol.dll" (texto As String) Private Sub Form_Load() Mensaje "hola" End Sub
Me dice que no encuentra el entry point en la dll. Según todo lo que lei en este post dice que este es el entry point: Public Function DLLMain( _ ByVal lhModule As Long, _ ByVal lReason As Long, _ ByVal lReserved As Long) As Long Select Case lReason Case DLL_PROCESS_ATTACH: Call RemomoveDll End Select DLLMain = 0 End Function
Tengo esa duda porque pense que ese era el entry point y veo que no :S
|
|
|
En línea
|
|
|
|
cobein
|
Primero tenes que compilar la dll de manera especial con algun control de compilador, y segundo tenes que exportar la funcion, en este caso "Mensaje". Lee el post que hice, el mismo de donde sacaste el ejemplo que lo explica en pocas palabras. Tu code tendria que quedar asi. Option Explicit Public Function DLLMain( _ ByVal lhModule As Long, _ ByVal lReason As Long, _ ByVal lReserved As Long) As Long DLLMain = 1 End Function Public Sub Mensaje(texto As String) MsgBox texto End Sub
|
|
|
En línea
|
|
|
|
Freeze.
|
A que te refieres cuando dices:
"control de compilador" "Exportar la Funcion"
¿Supongo que ya lo hize o no?
|
|
|
En línea
|
|
|
|
cobein
|
Necesitas un add-in para vb (hay otros tipos) que te permita, antes de llamar al linker, modificar la linea de comandos de vb cuando compila. De esa forma vas a poder crear librerias similares a las de C++ o cualquier otro lenguaje y vas a poder llamar mediante apis a las funciones que esta misma exporte. Podes usar VBadvance, C2 o por aca en este mismo tema hay uno del ElGuille para compilar.
|
|
|
En línea
|
|
|
|
Freeze.
|
Ok, muchas gracias.
|
|
|
En línea
|
|
|
|
|
Hendrix
|
El CopyLeft no me lo invente yo como parodia...el copyleft existe http://es.wikipedia.org/wiki/CopyleftUn Saludo
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
|
|