right... heres the coding.
its alot :/
~~~declerations~~~
Code:
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
Dim w As IO.StreamWriter
Dim r As IO.StreamReader
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)
~~~main coding~~~
Code:
Private Function GetAsyncKeyState(ByVal vKey As Integer) As Short
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
End Function
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()
MsgBox("injection failed...")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Browse"
Label1.Text = "Waiting for " + TextBox1.Text + ".exe to start..."
Timer1.Interval = 50
Timer1.Start()
Timer2.Interval = 50
Timer2.Start()
Dim automatic As Boolean
Dim closeinjection As Boolean
If FileExists("settings.ini") Then
r = New IO.StreamReader(Application.StartupPath + "/" + "settings.ini")
While (r.Peek() > -1)
Listbox1.Items.Add(r.ReadLine)
TextBox1.Text = r.ReadLine()
automatic = r.ReadLine()
If automatic = "true" Then
RadioButton2.Checked = True
RadioButton1.Checked = False
Else
RadioButton2.Checked = False
RadioButton1.Checked = True
End If
closeinjection = r.ReadLine()
If closeinjection = "true" Then
CheckBox1.Checked = True
Else
CheckBox1.Checked = False
End If
End While
r.Close()
End If
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.Text = ("Waiting for " + TextBox1.Text + ".exe to start...")
Else
Timer1.Stop()
Timer2.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
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For i As Integer = (Listbox1.SelectedItems.Count - 1) To 0 Step -1
Listbox1.Items.Remove(Listbox1.SelectedItems(i))
Next
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
TextBox1.Clear()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Listbox1.Items.Clear()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.Filter = "DLL (*.dll) |*.dll|(*.*) |*.*"
OpenFileDialog1.ShowDialog()
Dim FileName As String
FileName = OpenFileDialog1.FileName()
Me.Listbox1.Items.Add(FileName)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
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
Timer2.Stop()
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
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
Button5.Enabled = True
Timer1.Enabled = False
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
Button5.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
cleaner.Show()
End Sub
Public Function FileExists(ByVal filename As String) _
As Boolean
Dim f As New IO.FileInfo(Application.StartupPath + "/" + filename)
Return f.Exists
End Function
Public Function FolderExists(ByVal FolderPath As String) _
As Boolean
Dim f As New IO.DirectoryInfo(FolderPath)
Return f.Exists
End Function
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Me.Label1.Text = ("Waiting for " + TextBox1.Text + ".exe to start...")
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim i As Integer
w = New IO.StreamWriter(Application.StartupPath + "/" + "settings.ini")
For i = 0 To Listbox1.Items.Count - 1
w.WriteLine(Listbox1.Items.Item(i))
w.WriteLine(TextBox1.Text)
If RadioButton2.Checked = True Then
w.WriteLine("true")
Else
w.WriteLine("false")
End If
If CheckBox1.Checked = True Then
w.WriteLine("true")
Else
w.WriteLine("false")
End If
Next
w.Close()
End Sub
so yeahhh...... halp plz :P
ps. i will release to public once i get this problem fixed. and ty for compliment
