Sie sind auf Seite 1von 3

--------------------------------------------------

CODINGZA DLL INJECT


------------------------------------------------
'''''Imports
Imports System.Threading

''''Class
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)
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 IntPtr) 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)
Dim SCurrentDll As String
Dim objMutex As Mutex

Private Sub Inject()


On Error GoTo 1
InjectTimer.Stop()
'Inject Dll
Dim TargetProcess As Process() =
Process.GetProcessesByName(ProcessTextBox.Text)
Dim lpThreadId As IntPtr
TargetProcessHandle = OpenProcess(&H1F0FFF, 0, TargetProcess(0).Id)
Dim FileDll = SCurrentDll
pszLibFileRemote = (FileDll)
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, lpThreadId)
1: Me.Show()
End Sub

''''''''FormLoad
objMutex = New Mutex(False, "ST70R")
If objMutex.WaitOne(0, False) = False Then
objMutex.Close()
objMutex = Nothing
MessageBox.Show("Error !!")
End
End If

'''''''InjectTimer
If IO.File.Exists(OpenFileDialog1.FileName) Then
Dim TargetProcess As Process() =
Process.GetProcessesByName(ProcessTextBox.Text)
If TargetProcess.Length = 0 Then
StatusLabel.ForeColor = Color.Red
StatusLabel.Text = ("Waiting for " + ProcessTextBox.Text + ".exe")
Else
InjectTimer.Stop()
DelayTimer.Start()
End If
Else
End If

''''''DelayTimer
If DelayNumeric.Value = 0 Then
DelayTimer.Enabled = False
StatusLabel.ForeColor = Color.Lime
StatusLabel.Text = "Successfully Injected!"
For i = 0 To (DllListBox.Items.Count + -1)
SCurrentDll = DllListBox.Items(i)
Call Inject()
If CloseCheckBox.Checked = True Then

End
Else
End If
Next i
Else
DelayNumeric.Value = DelayNumeric.Value - 1
End If

'''''''InjectButton
If IO.File.Exists(OpenFileDialog1.FileName) Then
Dim TargetProcess As Process() =
Process.GetProcessesByName(ProcessTextBox.Text)
If TargetProcess.Length = 0 Then
StatusLabel.ForeColor = Color.Red
StatusLabel.Text = ("Waiting for " + ProcessTextBox.Text + ".exe")
Else
InjectTimer.Stop()
DelayTimer.Start()
End If
Else
End If

''''''BrowseButton
OpenFileDialog1.Filter = "DLL (*.dll) |*.dll"
OpenFileDialog1.ShowDialog()

''''''RemoveButton
For i As Integer = (DllListBox.SelectedItems.Count - 1) To 0 Step -1
DllListBox.Items.Remove(DllListBox.SelectedItems(i))
Next

''''''ClearAllButton
DllListBox.Items.Clear()

''''''OpenFileDialog
Dim FileName As String
FileName =
OpenFileDialog1.FileName.Substring(OpenFileDialog1.FileName.LastIndexOf("\"))
Dim DllFileName As String = FileName.Replace("\", "")
DllListBox.Items.Add(DllFileName)

''''''AutoRadioButton
InjectButton.Enabled = False
InjectTimer.Enabled = True

''''''ManualRadioButton
InjectButton.Enabled = True
InjectTimer.Enabled = False

Das könnte Ihnen auch gefallen