InicioHazlo Tu Mismo[MEGA Tutorial] Injector de (.Dll) VB .Net
MEGA Tutorial
Injector de Dll en Visual Basic .Net



Hola a todos, Hoy les voy a explica como hacer un injector de librerias (.Dll) en Visual Basic .net , haci podran ustedes mismos hacer sus injectores para sus juegos sin tenmor alguno de que tenga virus o una configuracion que ustedes mismos quieran.
Empezemos!

Puntos interesantes


* En este tutorial voy a utilizar Visual Basic 2008 .Net (abajo les coloco la descarga de este)
* Algunos codigos del injector a crear cuando generen la aplicacion puede que los detecte como virus
Debido a que se realizan llamadas de procesos y escritura en memoria.

* No es repost ni nada por el estilo.. este tutorial es hecho 100% por mi y los codigos son mios...

[MEGA Tutorial] Injector de (.Dll) VB .Net


1) Lo primero que hay que hacer es crear un nuevo projecto en el visual basic (Archivo>Nuevo proyecto)

2) Les aparecera una ventana donde te muestran algunas plantillas, en el caso de nuestra apliacion le daremos Aplicacion de Windows Forms, el nombre de la aplicacion por defecto aparece WindowsApplication1 eso lo pueden cambiar a su gusto; ejempo: Injector de fulanito T! y acontinuacion le dan en Aceptar.



3) Acontinuacion veremos un formulario de windows que por defecto tiene de nombre Form1, (se puede cambiar esto dandole en propiedades y cambiandole el valor text al que ustedes quieran), Vamos a agregar unos cuantos controles a nuestro formulario.

* ListBox (ListBox1)
* TextBox (Textbox1)
* Label (Label1, Label2, Label3, Label4)
* Button (Button1, Button2)
* Timer (Timer1)
* OpenFileDialog (OpenFileDialog1)

* Agregen y acomoden los controles de la siguiente manera:




4)Nombrar los controles de la siguiente manera como muestro en la imagen





4) En el formulario de damos Clic Derecho y Ver Codigo (Vamos a declarar algunas Funciones y variables), Pegan despues del Public Class Form1 esto:


tutorial

Private TargetProcessHandle As Integer 'killerphantom T!
Private pfnStartAddr As Integer
Private pszLibFileRemote As String
Private TargetBufferSize As Integer 'killerphantom T!

Public Const PROCESS_VM_READ = &H10 'killerphantom T!
Public Const TH32CS_SNAPPROCESS = &H2 'killerphantom T!
Public Const MEM_COMMIT = 4096 'killerphantom T!
Public Const PAGE_READWRITE = 4 'killerphantom T!
Public Const PROCESS_CREATE_THREAD = (&H2) 'killerphantom T!
Public Const PROCESS_VM_OPERATION = (&H8) 'killerphantom T!
Public Const PROCESS_VM_WRITE = (&H20) 'killerphantom T!
Dim DLLFileName As String
Public Declare Function ReadProcessMemory Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpBaseAddress As Integer, _
ByVal lpBuffer As String, _
ByVal nSize As Integer, _
ByRef lpNumberOfBytesWritten As Integer) As Integer 'killerphantom T!

Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _
ByVal lpLibFileName As String) As Integer 'killerphantom T!

Public Declare Function VirtualAllocEx Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpAddress As Integer, _
ByVal dwSize As Integer, _
ByVal flAllocationType As Integer, _
ByVal flProtect As Integer) As Integer 'killerphantom T!

Public Declare Function WriteProcessMemory Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpBaseAddress As Integer, _
ByVal lpBuffer As String, _
ByVal nSize As Integer, _
ByRef lpNumberOfBytesWritten As Integer) As Integer 'killerphantom T!

Public Declare Function GetProcAddress Lib "kernel32" ( _
ByVal hModule As Integer, ByVal lpProcName As String) As Integer

Private Declare Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" ( _
ByVal lpModuleName As String) As Integer

Public Declare Function CreateRemoteThread Lib "kernel32" ( _
ByVal hProcess As Integer, _
ByVal lpThreadAttributes As Integer, _
ByVal dwStackSize As Integer, _
ByVal lpStartAddress As Integer, _
ByVal lpParameter As Integer, _
ByVal dwCreationFlags As Integer, _
ByRef lpThreadId As Integer) As Integer 'killerphantom T!

Public Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Integer, _
ByVal bInheritHandle As Integer, _
ByVal dwProcessId As Integer) As Integer 'killerphantom T!

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Integer 'killerphantom T!

Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _
ByVal hObject As Integer) As Integer

Dim ExeName As String = IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath) 'killerphantom T!

Dim dllproc As String = "0"
Dim aa As String = "0" 'killerphantom T!
injector


* En el codigo anterior hacemos llamado a las funciones de la libreria Kernel32 que nos permitira entrar en un proceso y hacer injecciones en la memoria, la variable dllproc es la ruta del dll que vamos a injectar y la aa una variable para controlar un timer que ahoras les mostrare.



5) Ya que nuestro injector va a constar con un pequeño Log de eventos les voy a mostrar como hacer algo con eso , hacen doble clic encima del formulario para que les muestre el codigo en el evento Load



* Ahi donde esta la linea roja pegan lo siguiente

[MEGA Tutorial] Injector de (.Dll) VB .Net

ListBox1.Items.Add("Iniciado KillerPhantom T! Injector..." )
ListBox1.Items.Add("Indicar proceso" )
ListBox1.Items.Add("Seleccionar DLL a injectar" ) 'killerphantom T!
ListBox1.Items.Add(".........................." )

Programacion


6) Vamos a agregar el codigo para abrir el dll (pues que el usuario lo busque en su pc), Le damos doble click el Button2 (que le pusimos Examinar), pegamos el siguiente codigo dentro del evento click

visual

OpenFileDialog1.ShowDialog()
dll


* Ahora le damos doble click al OpenFileDialog1 (que esta al lado del timer)



Y nos aparece el evento FileOk dentro de esa declaracion pegamos el siguiente codigo:

tutorial

dllproc = OpenFileDialog1.FileName
Label4.Text = OpenFileDialog1.SafeFileName 'KillerPhantom t!

injector


7) Llegamos a una parte interesante, vamos a agregar el codigo del Timer1, para eso repetimos lo mismo dar doble click y nos aparecera el evento Tick y pegamos el siguiente codigo dentro de ese evento

overkiller

If IO.File.Exists(dllproc) Then
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
If TargetProcess.Length = 0 Then 'killerphantom T!
If aa = "0" Then
ListBox1.Items.Add("Esperando a: " + TextBox1.Text + ".exe" ) 'killerphantom T!
aa = "1"
End If
Else
Timer1.Stop()
ListBox1.Items.Add("Injectando.." ) 'killerphantom T!
Call Inject()
End
End
End If
Else
ListBox1.Items.Add("Error: Dll no encontrado" ) 'killerphantom T!
End If

killerphantom


* El codigo anterior verifica si nustro Dll Existe con el codigo IO.File.Exists si el valor que devuelve es True osea verdadero verifica si el proceso tambien lo es con el codigo Process.GetProcessesByName, si todo esto se cumple el timer se detiene y llama a la instrucion inject (Call Inject()) que la veremos a continuacion!

Uffff esto esta buenisisisisisiiimooo.. demem un momento descanso las manos ..... jajajaja ya!

8) Vamos a crear la instruccion Inject! para eso vemos el codigo fuente de nuestra aplicacion sea que le des doble click en el formilario o en la pestaña form1.vb



* Escribimos despues de un End Sub y antes de que comienze un Private Sub lo siguiente

Programacion

Private Sub Inject()
On Error GoTo 1 'killerphantom T!
Timer1.Stop()
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id)
pszLibFileRemote = dllproc
pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32" ), "LoadLibraryA" )
TargetBufferSize = 1 + Len(pszLibFileRemote) 'killerphantom T!
Dim Rtn As Integer 'killerphantom T!
Dim LoadLibParamAdr As Integer 'killerphantom T!
LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
End 'killerphantom T!
CloseHandle(TargetProcessHandle) 'killerphantom T!
1: End
End Sub

visual




9).. Ya casi terminamos.. ahora vamos a darle el codigo a nuestro Button1 (Injectar), repetimos lo mismo darle doble click y en evento click.. pegamos lo siguiente

Basic

If TextBox1.Text.Length = 0 Then 'KillerPhantom T!
ListBox1.Items.Add("Por favor seleccione un proceso.." )
Else
If dllproc = "0" Then 'KillerPhantom T!
ListBox1.Items.Add("No se ha encontrado el DLL.." )
Else
ListBox1.Items.Add("Dll Encontrado.." ) 'KillerPhantom T!
Timer1.Start()
End If 'KillerPhantom T!
End If

tutorial


* Esto nos verificara si en el cuadro de texto se ha escrito un proceso y si existe el dll.. si devuelve valores True.. Hace correr el Timer1 ...

Bueno amigos.. Creo que ya terminamos.. Aqui esta el mio..




Gracias a todos por leer este post.. cualquier duda no se olviden en comentarmela.. ahh otra cosa. Cuando vallan a escribir el proceso en el cuadro de texto no le pongan el .EXE ya que la instruccion que hicimos del Kernel se la pone automaticamente

Descarga del Visual Basic 2008 .Net Express

Datos archivados del Taringa! original
77puntos
8,127visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
9visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

K
Usuario
Puntos0
Posts7
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.