[Source] Inyeccion Dll en VB

Iniciado por Hendrix, 15 Junio 2007, 17:11 PM

0 Miembros y 2 Visitantes están viendo este tema.

~~

Citar1-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

Citar2-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++

Citar3- 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

cobein

#51
Bueno al parecer no paran de discutir acerca de esto :D aca les dejo un ejemplo de un programa que inyecta una dll para modificar el aspecto del escritorio, esta todo hecho en VB y compilado con el mismo.

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=65301&lngWId=1
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

carolmuriel

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

Citarhttp://foro.elhacker.net/index.php/topic,188986.0.html

de un user de aqui mismo

Freeze.

Aqui traigo una duda:

Tengo esto en la dll:
Código (vb) [Seleccionar]

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:

Código (vb) [Seleccionar]

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:
Código (vb) [Seleccionar]

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

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.

Código (vb) [Seleccionar]
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

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

Freeze.

A que te refieres cuando dices:

"control de compilador"
"Exportar la Funcion"

¿Supongo que ya lo hize o no?

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.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

Freeze.


invisible_hack

Jajaja oye Hendrix muy bueno lo de...CopyLeft...ajajajaajaj....en vez de CopyRigth.. :xD :xD

No, ahora en serio, excelente code, si me lo permites lo posteare en mi foro....con los respectivos creditos claro...

Saludos :P
"Si no visitas mi blog, Chuck te dará una patada giratoria"

Hendrix

El CopyLeft no me lo invente yo como parodia...el copyleft existe

http://es.wikipedia.org/wiki/Copyleft

Un Saludo  :)
"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