Injector Help...

Posts 1–15 of 17 · Page 1 of 2
Injector Help...
I'm Attempting to make a Injector but when Debugging i get an error

"{"Unable to find an entry point named 'CloseHandleA' in DLL 'kernel32'.":""}"

Here is my Code:
Code:
Public Class Form3
    Private Sub Form3_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 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)
        Me.Close()
    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
Simple:

Clean up your code and use the debug

To many ByVal's in my opinion use one line (Dim) for all those declarations..

Or what do you mean?
Quote Originally Posted by CptnDutch View Post
Simple:

Clean up your code and use the debug

To many ByVal's in my opinion use one line (Dim) for all those declarations..

Or what do you mean?
ByVals do not cause kernel errors
Quote Originally Posted by Blubb1337 View Post
ByVals do not cause kernel errors
Pff didn't thought of that one, well still he needs to clean his code up cause this is confusing!
Or atleast for me...
Quote Originally Posted by CptnDutch View Post
Simple:

Clean up your code and use the debug

To many ByVal's in my opinion use one line (Dim) for all those declarations..

Or what do you mean?
It Debugs fine but when the process loads and it trys to inject and i get that error.
Quote Originally Posted by Blubb1337 View Post
ByVals do not cause kernel errors
By that you mean errors regarding importing functions from kernel32.dll, cause actual kernel errors will probably result in a blue screen of death, assuming you're on windows.
Quote Originally Posted by Void View Post
By that you mean errors regarding importing functions from kernel32.dll, cause actual kernel errors will probably result in a blue screen of death, assuming you're on windows.
By that I mean, no matter how many ByVals he has in his code, that does not necessarily matter.
Ugh, I hate asking for help.
What OS are you running and is it x64 or x86?

Back in the day when I tried to copy an injector code I had similar errors with a similar code, never found a resolution though. I think your best bet is just to find a different injector source.
CloseHandleA?

A would be ANSI, but you don't have any parameters that are strings, so I don't see why it would be there, thus, it doesn't exist in the kernel32 library. Try removing the A.

But I don't know any VB, so I wouldn't know.
"Unable to find an entry point named....." basically means that the function or API you are trying to use does not exist in the dll file you are trying to use it from. So as Void said, try removing the A from the function name and see what happens.
Quote Originally Posted by master131 View Post
"Unable to find an entry point named....." basically means that the function or API you are trying to use does not exist in the dll file you are trying to use it from. So as Void said, try removing the A from the function name and see what happens.
It won't work, I'm 99% sure . I remember trying that when I had the same problem, I even manually import the kernel dll (with dllimports), no dice. I dunno what it is.
Quote Originally Posted by Jason View Post


It won't work, I'm 99% sure . I remember trying that when I had the same problem, I even manually import the kernel dll (with dllimports), no dice. I dunno what it is.
.....
Quote Originally Posted by pinvoke
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Integer) As Integer
Quote Originally Posted by master131 View Post
.....
Code:
Public Declare Function CloseHandle Lib "kernel32"(ByVal hObject As Integer)
why call the Alias?
try close handle

CloseHandle

with out the a
Posts 1–15 of 17 · Page 1 of 2
This thread is closed for replies.

Tags for this Thread

None

Need help?