Tropang '(~.O)' Bakit


    How to Creat Your Own Injector

    Share
    avatar
    +_Kazan_+
    Website Owner
    Administrator

    Website Owner  Administrator

    Location : Cavite
    Posts : 474
    Points : 10090930
    Reputation : 39
    Join date : 2011-07-25
    Age : 27

    How to Creat Your Own Injector

    Post  +_Kazan_+ on Thu Jul 28, 2011 4:45 am

    1.) Download VB : http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express

    2.) Make A New Project

    3.) Add the following:


    5 Buttons
    2 Groupboxes
    2 Radiobuttons
    2 Labels
    2 Listboxes
    2 Timers
    1 OpenFileDialog
    1 Checkbox
    1 Textbox


    4.) Double Click the form and in between of this: "Public Class Form1" and "Private Sub Form_Load... blah blah blah..." , add this:
    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)



    5.) Below that code, put this:
    Code:
    Code:
    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

    Code:
    Below this code :
    Code:
    Private Sub GetProcesses()

            Processes.Items.Clear()

            Dim p As Process

            For Each p In Process.GetProcesses
                Processes.Items.Add(p.ProcessName)
            Next

        End Sub


    6.) Rename the following:

    Quote:Button1 = "Browse"
    Button2 = "Remove Selected"
    Button3 = "Clear List"
    Button4 = "Clear Process"
    Button5 = "Inject"

    Quote:GroupBox1 = "Injection Settings"
    GroupBox2 = "Injection Mode"

    Quote:RadioButton1 = "Manual"
    RadioButton2 = "Automatic"

    Quote:Label1 = "Waiting for settings..."
    Label2 = ".exe"

    ListBox1 = "DLLs"(this time it's not the 'TEXT', it's for the real name
    ListBox2 = "Processes"(same as the ListBox1)
    CheckBox1 = "Close if injection is done"
    TextBox1 = "specialforce"(or any process name you want)


    7.) Change the settings of the following:
    Form1 :

    Code:
    Text = "Any Name You Want"
        FormBorderStyle = Any border that is not resizable
        Show Icon = True(If you have no icon, set it to false)
        BackColor/BackGroundImage = Any Color/Any Image(If image, set BackGroundImageLayout to 'Stretch')
        Icon = Select a .ico image file
        Maximize Box = False
        Start Position = Center Screen


    Processes(ListBox2) : ScrollAlwaysVisible = True
    RadioButton2 : Checked = True
    CheckBox1 : Checked = True

    8.) Now for the coding...

    Code:
    Form_Load:
    Code:
    GetProcesses()
            Button1.Text = "Browse"
            ListBox1.Name = "DLLs"
            Button1.Text = "Browse"
            Label1.Text = "Waiting for Process Start..."
            Timer1.Interval = 50
            Timer1.Start()

    Button 1(Browse):

    Code:
    OpenFileDialog1.Filter = "DLL (*.dll) |*.dll|(*.*) |*.*"
            OpenFileDialog1.ShowDialog()
            OpenFileDialog1.InitialDirectory = Application.StartupPath
            Dim FileName As String
            FileName = OpenFileDialog1.FileName.Substring(OpenFileDialog1.FileName.LastIndexOf("\"))
            Dim DllFileName As String = FileName.Replace("\", "")
            Me.DLLs.Items.Add(DllFileName)

    Button 2(Remove Selected):

    Code:
    Code:
    For i As Integer = (DLLs.SelectedItems.Count - 1) To 0 Step -1
                DLLs.Items.Remove(DLLs.SelectedItems(i))
            Next

    Button 3(Clear List):
    Code:
    DLLs.Items.Clear()

    Button 4(Clear Process):
    Code:
    TextBox1.Text = Nothing

    Button 5(Inject):

    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 Injection...")
                Else
                    Timer1.Stop()
                    Me.Label1.Text = "Successfully Injected!"
                    Call Inject()
                    If CheckBox1.Checked = True Then
                      End
                    Else
                    End If
                End If
            Else
            End If

    Radio Button 1(Manual):

    Code:
    Button5.Enabled = True
            Timer1.Enabled = False

    Radio Button 2(Automatic):
    Code:
    Button5.Enabled = False
            Timer1.Enabled = True

    Timer1 :

    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 Injection...")
                Else
                    Timer1.Stop()
                    Me.Label1.Text = "Successfully Injected!"
                    Call Inject()
                    If CheckBox1.Checked = True Then
                      End
                    Else
                    End If
                End If
            Else
            End If

    Timer2 :

    Code:
    GetProcesses()

    Debug, Build and then Release it to the public!!!

    Video Tutorial:





      Current date/time is Mon Sep 25, 2017 5:27 am