[Source] Inyeccion Dll en VB

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

0 Miembros y 1 Visitante están viendo este tema.

dark_hat

#40
Cita de: Hendrix. en 15 Junio 2007, 17:11 PM
Aqui les dejo este codigo que ya e traducido a C#, ahora a VB...mi proximo reto es traducirlo a ensamblador con el Fasm.... :xD :xD


En ensamblador sería así (con masm):
Código (asm) [Seleccionar]

.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib


.const
ID_proceso EQU 2964   ;La ID del proceso q sea

.data
Kernel32 db "kernel32.dll", 0
LoadLibrary_nombre db "LoadLibraryA", 0
DLL db "C:\DLL.dll", 0



.data?
Proceso_ID DWORD ?
Proceso_handle DWORD ?
Kernel32_offset DWORD ?
LoadLibrary_offset DWORD ?
String DWORD ?
Proceso PROCESSENTRY32 <?>



.code
Start:
invoke GetModuleHandle, addr Kernel32
mov Kernel32_offset, eax
invoke GetProcAddress, Kernel32_offset, addr LoadLibrary_nombre
mov LoadLibrary_offset, eax



mov Proceso.dwSize, 296

invoke OpenProcess, PROCESS_ALL_ACCESS, FALSE, ID_proceso
mov Proceso_handle, eax
invoke VirtualAllocEx, Proceso_handle, NULL, 64, MEM_COMMIT + MEM_RESERVE, PAGE_READWRITE
mov String, eax
invoke WriteProcessMemory, Proceso_handle, String, addr DLL, 64, NULL
invoke CreateRemoteThread, Proceso_handle, NULL, NULL, LoadLibrary_offset, String, NULL, NULL
invoke CloseHandle, Proceso_handle
invoke ExitProcess, 0




End Start


invoke en el masm es:

invoke A,B,C...


=


...
push C
push B
call A
Eso que huele es un poco de incienso,
eso marrón una tableta de turrón...

Hendrix

"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

Freeze.

Iba a escribir otra cosa pero se iba a ir a discucion...

Gracias..Supongo... ;)

c3r0x

#43
seria bueno un api hook

salu2

[GB]

pregunta:

se puede programar una dll que ejecute un .exe?

o sea abro el programa que inyecta una dll en notepad, abro el notepad y se ejecuta la dll inyectada que a su vez ejecuta otro ejecutable, es posible?
si es posible a ver alguien que me facilite un ejemplo jeje

~~

Cita de: [GB] en  6 Agosto 2007, 00:07 AM
pregunta:

se puede programar una dll que ejecute un .exe?

o sea abro el programa que inyecta una dll en notepad, abro el notepad y se ejecuta la dll inyectada que a su vez ejecuta otro ejecutable, es posible?
si es posible a ver alguien que me facilite un ejemplo jeje


Si, solo tienes q poner en la dll una funcion q ejecute el archivo deseado, si no kieres complicarte mucho usa system q es como el shell de VB

Freeze.

Estare yo confundido?

system("comando");

Eso no es de C???

o hay algo asi para VB?

~~

Si, es de C pero como e repetido ya en 2 post y 3 con este, la dll tiene q estar en C!!! (weno o en otro lenguaje q genere dll's de verdad, no como VB...) comento como hacerlo en C por q es el q yo domino ;)

Freeze.


jfalcon

hola Hendriҳ y a los demas  ;D

tengo algunas dudas.  :huh:

1-podrias publicar ese codigo de inyeccion para C# (es posible eso?)
2-se puede crear un DLL (dinamico) con C# (yo creo dll con C#, pero primera vez que leo que hay tipo dinamico, podrias explicar su propiedad de un dinamico)

lo que entiendo por dinamico es k lo lee (es compatible) cualquier lenguaje? ya que el c++ es la madre de los lenguajes...

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

gracias por tu aporte  :xD