Results 1 to 5 of 5
  1. #1
    noname_2's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Posts
    6
    Reputation
    10
    Thanks
    0

    Injecting C++ DLL

    Hi guys,

    so i will explain my problem, i try to inject a dll (my dll) in c++ in a process... I have create my dll injector... And that work in some process, and in other process he don't work (like notepad, and my game). So i google it, and i saw this.
    Code:
    BOOL ObtenirDebugPrivileges()
    {
       BOOL               bRET = FALSE;
       TOKEN_PRIVILEGES   tp;
       HANDLE             hToken;
    
       if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid))
       {
          if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
          {
             if (hToken != INVALID_HANDLE_VALUE)
             {
                tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
                tp.PrivilegeCount = 1;
                if (AdjustTokenPrivileges(hToken, FALSE, &tp, 0, 0, 0))
                   bRET = TRUE;
                CloseHandle(hToken);
             }
          }
       }
       return bRET;
    }
    But still not work... And i have run as admin... If u have some idea, or example... Thanks. Sorry for my english.

  2. #2
    Stik77's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Posts
    7
    Reputation
    10
    Thanks
    0
    Try my Injector....

    [SPOILER]
    Code:
    Public Class Form1
        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
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "Browse..."
            Label1.Text = "Waiting for users input"
            Timer1.Interval = 50
            Timer1.Start()
        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")
    
                Else
                    Timer1.Stop()
                    Me.Label1.Text = "Successfully Injected!"
                    Call Inject()
                End If
            Else
    
            End If
    
        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.Substring(OpenFileDialog1.FileName.LastIndexOf("\"))
            Dim DllFileName As String = FileName.Replace("\", "")
            Me.TextBox2.Text = (DllFileName)
        End Sub
    End Class
    [/SPOILER]

    ---------- Post added at 12:37 PM ---------- Previous post was at 12:37 PM ----------

    Or use PerX

  3. #3
    noname_2's Avatar
    Join Date
    Jun 2012
    Gender
    male
    Posts
    6
    Reputation
    10
    Thanks
    0
    I will try, your injector, and perx don't work...

    ---------- Post added at 01:42 PM ---------- Previous post was at 01:07 PM ----------

    Your injector don't work...

  4. #4
    Sneaks's Avatar
    Join Date
    Nov 2008
    Gender
    male
    Posts
    73
    Reputation
    10
    Thanks
    12
    Quote Originally Posted by Stik77 View Post
    Try my Injector....

    [SPOILER]
    Code:
    Public Class Form1
        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
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "Browse..."
            Label1.Text = "Waiting for users input"
            Timer1.Interval = 50
            Timer1.Start()
        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")
    
                Else
                    Timer1.Stop()
                    Me.Label1.Text = "Successfully Injected!"
                    Call Inject()
                End If
            Else
    
            End If
    
        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.Substring(OpenFileDialog1.FileName.LastIndexOf("\"))
            Dim DllFileName As String = FileName.Replace("\", "")
            Me.TextBox2.Text = (DllFileName)
        End Sub
    End Class
    [/SPOILER]

    ---------- Post added at 12:37 PM ---------- Previous post was at 12:37 PM ----------

    Or use PerX

    Well using VB with C++ wouldn't exactly work well.

  5. #5
    'Bruno's Avatar
    Join Date
    Dec 2009
    Gender
    male
    Location
    Portugal
    Posts
    2,883
    Reputation
    290
    Thanks
    1,036
    My Mood
    Busy
    Nice necro ;x
    Light travels faster than sound. That's why most people seem bright until you hear them speak.

Similar Threads

  1. [Release] CF-Inject - Another DLL Injector
    By HolySinX in forum CrossFire Hacks & Cheats
    Replies: 40
    Last Post: 03-02-2010, 11:17 AM
  2. injecting a dll that displays IAT table list
    By Anddos in forum General Hacking
    Replies: 0
    Last Post: 12-31-2009, 07:37 PM
  3. HOW TO INJECT Plural DLLs?
    By chenxiu94 in forum Alliance of Valiant Arms (AVA) Hacks & Cheats
    Replies: 4
    Last Post: 10-24-2009, 12:23 PM
  4. How To Inject A .DLL
    By miksdubom in forum General
    Replies: 6
    Last Post: 08-05-2009, 07:36 PM
  5. could not inject the dll...????Zeas simple....HELP!!!!
    By lox in forum Combat Arms Hacks & Cheats
    Replies: 1
    Last Post: 03-10-2009, 12:26 PM