[Help] Gekko Injector

Posts 1–10 of 10 · Page 1 of 1
[Help] Gekko Injector
Ok, i have a problem here. i prolly sound a little kiddish but this is suppost to be my first release... ever... so bare with me please.

I have a problem with my injector. So far i have gotten everything to work perfectly. I recently introduced a feature that allowed is to save the settings for itself inside a .ini file, and when the program started up, if the .ini file existed it would read lines off it and input the settings as shown.

Here is a picture w/o settings.


Like i said, i can get everything working perfectly fine.




When i input the settings by myself, without the help of the .ini file the injector does what its suppost to. everything works great. but my problem is when the file is present and the program loads its settings from it, nothing happens. the injector just sits there and does nothing!

would anyone happen to know whats wrong? i can give my coding if needed
plz give code, I cannot understand the problem without it...

EDIT: nice GUI
EDIT2: Я также выступаю русский, как вы!
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
settings.ini does not exist, because the computer thinks its just C:\settings.ini
use this:
Code:
If FileExists(application.startuppath & "\settings.ini") Then
that should work if it is in the same folder
Quote Originally Posted by mnpeepno2 View Post
settings.ini does not exist, because the computer thinks its just C:\settings.ini
use this:
Code:
If FileExists(application.startuppath & "\settings.ini") Then
that should work if it is in the same folder
no dude, ive already got it set up that If the file does not exist, it does not load anything. Else, it will just create a new one where the application exists. Thats why i had it set like that. its not hard to make a new settings file :/

but Thats not the problem that im having. If you look up, i say that the program loads the settings and everything properly, everything works fine. but when i load the settings nothing happens. it says everything works but when i open CA nothing happens. if i apply the settings myself it works, but if the "settings.ini" file applies them for me (cuz im lazy) it doesnt work. Thats what im having trouble with

if u have teamviewer, then post info pl0x
Think this is fixed code now... hoping...
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)
	goto 2
1:      Me.Show()
        MsgBox("injection failed...")
2:	If checkbox1.checked = true then
	me.close()
	else
	end if
	
    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

    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
it doesnt work :/ same problem!
You sure your injection code is proper?
Posts 1–10 of 10 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us