well hello guys i am here to do someone a favor by givving you guys a detailed TUT of how to make an injector
which will include the following
>multiple dll inject
>automatic inject
>manual inject
>close after inject
>browse for Dlls
>clear selected
>clear list BEFORE U DO ANYTHING MAKE SURE YOU ADD THIS IN ORDER so no more errors Buttons
fromat
order = button text
first button
1=Browse
2=Remove Selected
3=Clear List
4=Clear Process
and a updating label that states evrything that is happening
first open VB 2008 express
/create a new windows form application
/name it whatever u want
then resize it, customize it and do anything u want
/first double click the form and bellow the public class form1
add this code
Code:
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
<<<<< this is declares what the form does (inject)
/now under where u typed u shuld see private sub form1 load
in there add this code
Code:
Button1.Text = "Browse"
Label1.Text = "Waiting for Process Start..."
Timer1.Interval = 50
Timer1.Start()
<<<<< that explained some stuff with the buttons so now u shuld hav an error that says lable1 is not delcared...........dont worry cuz ur about to add some buttons and stuff
/now u have the load and declaration part of ur injector done
/add a timer to ur form
/ double click it and add this code
Code:
If IO.File.Exists(OpenFileDialog1.FileName) Then
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
If TargetProcess.Length = 0 Then
Me.Label1.Text = ("Waiting for " + TextBox1.Text + ".exe...")
Else
Timer1.Stop()
Me.Label1.Text = "Successfully Injected!"
Call Inject()
If CheckBox1.Checked = True Then
Me.Close()
Else
End If
End If
Else
End If
End Sub
<<<<< that is the main dll injecting part
/add a textbox and add a listbox underneath it [MAKE SURE TO CHANGE THE LISTBOX NAME TO "Dlls" this is to ensure there are no errors]
now i am going to be randomly add stuff
/add a button and change the text to clear selected. then double click it and add this code
Code:
For i As Integer = (Dlls.SelectedItems.Count - 1) To 0 Step -1
Dlls.Items.Remove(Dlls.SelectedItems(i))
Next
/ then add another button and change txt to clear process. then add this code to the button.
Code:
TextBox1.Clear()
/add another button and change txt to clear list and add this code to it.
Code:
Dlls.Items.Clear()
/add a openfiledialog to ur form
/ add button, change txt to Browse and add the following code
Code:
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)
<<<<this browses for the Dlls(u can do the same thing with textbox1 to search for ur game
/add a button and this one's txt is inject. this is the button for manual inject. add this code this is similar to the timer code.
Code:
If GetAsyncKeyState(Keys.F12) Then
If IO.File.Exists(OpenFileDialog1.FileName) Then
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
If TargetProcess.Length = 0 Then
Me.Label1.Text = ("Waiting for " + TextBox1.Text + ".exe Injection(F12)...")
Else
Timer1.Stop()
Me.Label1.Text = "Successfully Injected!"
Call Inject()
If CheckBox1.Checked = True Then
Me.Close()
Else
End If
End If
Else
End If
End If
^^^^^^^you can change the hotkey to whateveras long as it is in here (keys._ _ _)
/add a checkbox saying that says close after inject and u dont need a code for this because we already added it in the timer code
/add a group box and inside it add 2 radiobox. change one of them manual and the other one to automatic. then add this code for manual.
Code:
('add the name of Inject button i.e button 3).Enabled = True
Timer1.Enabled = False
<<<<remove the quatations after button3 and infront of 'add.
/ for the automatic add this code.
Code:
Button6.Enabled = False
Timer1.Enabled = True
i belive u guys are done u shuld hav at least
5 buttons
1 group box
2 radio buttons
1 checkbox
1 listbox
1 textbox
this TUT shuld probebly hav errors becuz i am tired and hyper [i am only 12]
important notes
the image is my version that i am releasing so it may not look like urs but ur tools are suppose to be at the same place.
if u click browse and click cancel u might hav an error
[/CODE]
Now, everyone race to make this, and claim it as there own!
Good job, i'll look over it later.
Thanks Hope, I appreciate it .
Good But I already made my
I'm getting an error when I debug...
Originally Posted by ballotra
I'm getting an error when I debug...
what does the error say
nice i knew hot to make inj for warrock (only ) but now i know more
yay ima do this an give u credits whwen ur is patched
edit; DOSNT work lors of errors and u didnt explain witch button is for what code.
yep thts what i thought wat went wrong kk i will try to fix it
Fixed should now hav no problems
i will test it
I got 30 Errors...
Plz pm me with ur errors
I am testing and I will be seen tell you the errors!
If it works will make some injectors and to post!
hopefordope i dont understand this, that must i do:this: /now under where u typed u shuld see private sub form1 load
in there add this code /// can you please record or photo this "form1 load" cuz i have only errors. help hopefordpe