1 Como fazer um injetor de Dll - Script Defenders Sex Mar 16, 2012 9:10 am
Eae pessoa, aqui é o Nickguitar, e Vou encinar vocês a fazer um injetor de dll avançado em VB!
Vou fazer varios passos e vocês seguem eles ok ?
Vamos lá:
Antes, eu quero deixar um aviso :
Crie um novo projeto
Ajuste o form como você quiser
Adicione :
5 Buttons.
1 Label.
1 TextBox.
1 ListBox.
1 Timer.
1 OpenFileDialog.
1 CheckBox.
2 RadioButtons
Troquem os Captions dos botoes para:
Button1 "Limpar selecionado"
Button2 "Limpar processo"
Button3 "Limpar lista"
Button4 "Procurar"
Button5 "Injetar"
Troquem as propriedades para:
RadioButton1 = Automatico
RadioButton2 = Manual
CheckBox1 = Fechar Apos Injeção!
Agora na ListBox coloque o nome para " Dlls " < ( Escreva "Dlls" com D maiusculo e sem aspas. Escreva somente isso! )
Nas propriedades do OpenFileDialog1 vai estar: MultiSelect :False Mude para MultiSelect: True
No RadioButton1 vai tar Checked = false
Mude para Checked = True
Depois de Fazer isso Tudo, Clique 2 Vezes no Form1 e digite o seguinte codigo :
Bom pessoal, em breve farei uma video aula para isso...
Espero que gostem, estou a 1:30h escrevendo aqui...
Vlw gente, qualquer duvida só falar, ou me add no msn : Nickguitar.designer@hotmail.com
Ou no skype : niickguitar
Tchau gente \o/
Vou fazer varios passos e vocês seguem eles ok ?
Vamos lá:
Antes, eu quero deixar um aviso :
Quando o injetor estiver rodando, coloque somente o nome do processo sem o .exe
pois ele já reconhece como executavel
Se você colocar .exe ele vai reconhecer :
Processo.exe.exe
Crie um novo projeto
Ajuste o form como você quiser
Adicione :
5 Buttons.
1 Label.
1 TextBox.
1 ListBox.
1 Timer.
1 OpenFileDialog.
1 CheckBox.
2 RadioButtons
Troquem os Captions dos botoes para:
Button1 "Limpar selecionado"
Button2 "Limpar processo"
Button3 "Limpar lista"
Button4 "Procurar"
Button5 "Injetar"
Troquem as propriedades para:
RadioButton1 = Automatico
RadioButton2 = Manual
CheckBox1 = Fechar Apos Injeção!
Agora na ListBox coloque o nome para " Dlls " < ( Escreva "Dlls" com D maiusculo e sem aspas. Escreva somente isso! )
Nas propriedades do OpenFileDialog1 vai estar: MultiSelect :False Mude para MultiSelect: True
No RadioButton1 vai tar Checked = false
Mude para Checked = True
Depois de Fazer isso Tudo, Clique 2 Vezes no Form1 e digite o seguinte codigo :
Public Class Form1
Private TargetProcessHandle As Integer
Private pfnStartAddr As Integer
Private pszLibFileRemote As String
Private TargetBufferSize As Integer
Public Const PROCESS_VM_READ = &H10
Public Const TH32CS_SNAPPROCESS = &H2
Public Const MEM_COMMIT = 4096
Public Const PAGE_READWRITE = 4
Public Const PROCESS_CREATE_THREAD = (&H2)
Public Const PROCESS_VM_OPERATION = (&H8)
Public Const PROCESS_VM_WRITE = (&H20)
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
Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _
ByVal lpLibFileName As String) As Integer
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
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
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
Public Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Integer, _
ByVal bInheritHandle As Integer, _
ByVal dwProcessId As Integer) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Integer
Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _
ByVal hObject As Integer) As Integer
Dim ExeName As String = IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath)
Private Sub Inject()
On Error GoTo 1 ' If error occurs, app will close without any error messages
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 = OpenFileDialog1.FileName
pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")
TargetBufferSize = 1 + Len(pszLibFileRemote)
Dim Rtn As Integer
Dim LoadLibParamAdr As Integer
LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
CloseHandle(TargetProcessHandle)
1: Me.Show()
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Limpar selecionado"
Label2.Text = "Processo:"
Timer1.Interval = 2
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If IO.File.Exists(OpenFileDialog1.FileName) Then
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
If TargetProcess.Length = 0 Then
Me.Label1.ForeColor = Color.Red
Me.Label1.Text = ("Esperando por " + TextBox1.Text + ".exe" + "....")
Else
Timer1.Stop()
Me.Label1.ForeColor = Color.Green
Me.Label1.Text = "Sucesso ao injetar!"
Call Inject()
If CheckBox1.Checked = True Then
Me.Close()
End If
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i As Integer = (Dlls.SelectedItems.Count - 1) To 0 Step -1
Dlls.Items.Remove(Dlls.SelectedItems(i))
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Clear()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dlls.Items.Clear()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
OpenFileDialog1.Filter = "DLL (*.dll) |*.dll"
OpenFileDialog1.ShowDialog()
Dim FileName As String
FileName = OpenFileDialog1.FileName.Substring(OpenFileDialog1.FileName.LastIndexOf(""))
Dim DllFileName As String = FileName.Replace("", "")
Me.Dlls.Items.Add(DllFileName)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If IO.File.Exists(OpenFileDialog1.FileName) Then
End If
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
If TargetProcess.Length = 0 Then
Me.Label1.Text = ("Esperando por " + TextBox1.Text + ".exe" + "....")
Else
Timer1.Stop()
Me.Label1.ForeColor = Color.Green
Me.Label1.Text = "Sucesso ao injetar!"
Call Inject()
If CheckBox1.Checked = True Then
Me.Close()
Else
End If
End If
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
Timer1.Start()
CheckBox1.Checked = True
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
Timer1.Stop()
CheckBox1.Checked = True
End Sub
End Class
Bom pessoal, em breve farei uma video aula para isso...
Espero que gostem, estou a 1:30h escrevendo aqui...
Vlw gente, qualquer duvida só falar, ou me add no msn : Nickguitar.designer@hotmail.com
Ou no skype : niickguitar
Tchau gente \o/
2 Re: Como fazer um injetor de Dll - Script Defenders Seg Mar 19, 2012 10:53 am
Programa Usado = Delphi 7 ?