- Imports System.Diagnostics 
- Public Class Form1 
-     Private TargetProcessHandle As Integer 
-     Private pfnStartAddr As Integer 
-     Private pszLibFileRemote As String 
-     Private TargetBufferSize As Integer 
-     Dim proc As Process 
-   
-     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   
-         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 Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
-         TextBox1.Clear() 
-     End Sub 
-   
-     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
-         If IO.File.Exists(OpenFileDialog1.FileName) Then 
-   
-         End If 
-         Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text) 
-         If TargetProcess.Length = 0 Then 
-   
-             Label3.Text = ("Waiting for: " + TextBox1.Text + ".exe...") 
-         Else 
-             Timer1.Stop() 
-             Label3.ForeColor = Color.Green 
-             Label3.Text = "Injection Successful!" 
-             Call Inject() 
-             If CheckBox1.Checked = True Then 
-                 Me.Close() 
-             Else 
-             End If 
-         End If 
-     End Sub 
-   
-   
-     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
-         Close() 
-     End Sub 
-     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 
-         OpenFileDialog1.Filter = "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 
-         For i As Integer = (Dlls.SelectedItems.Count - 1) To 0 Step -1 
-             Dlls.Items.Remove(Dlls.SelectedItems(i)) 
-         Next 
-     End Sub 
-   
-     Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click 
-         Dlls.Items.Clear() 
-     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 
-                 Label3.Text = ("Waiting for:" + TextBox1.Text + ".exe" + "....") 
-             Else 
-                 Timer1.Stop() 
-                 Label3.Text = "Injection Successful!" 
-                 Call Inject() 
-                 If CheckBox1.Checked = True Then 
-                     Me.Close() 
-                 End If 
-   
-             End If 
-         End If 
-     End Sub 
-     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
-         Timer1.Interval = 2 
-         Timer1.Start() 
-         Label6.Visible = False 
-         ProgressBar1.ForeColor = Color.Cyan 
-     End Sub 
-     Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged 
-         Timer1.Start() 
-     End Sub 
-     Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged 
-         Timer1.Stop() 
-     End Sub 
-   
-     Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
-         ShowIcon = True 
-     End Sub 
-   
-     Private Sub Button7_Click_1(sender As Object, e As EventArgs) Handles Button7.Click 
-         For Each proc As Process In Process.GetProcesses 
-             ListBox1.Items.Add(proc.ProcessName) 
-         Next 
-         ProgressBar1.Value = 100 
-         Label7.Text = ProgressBar1.Value 
-         Label6.Visible = True 
-   
-   
-   
-     End Sub 
-   
-     Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click 
-         TextBox1.Text = ListBox1.SelectedItem 
-     End Sub 
-   
-     Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged 
-         TextBox1.Text = ListBox1.SelectedItem 
-     End Sub 
-   
-     Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click 
-         MessageBox.Show("Made by ImWhacky (eblank)" & vbCrLf & "If you have any errors, report them to the [censored] thread and i will try to fix them in the next update." & vbCrLf & " " & vbCrLf & "Thanks!", 
-             "xCal v1.5") 
-     End Sub 
- End Class