[Request?] Dll injector

Posts 1–15 of 30 · Page 1 of 2
[Request?] Dll injector
Heyy guys!

I don't want to be greedy but I need an injector to inject dlls in any process other than warrock. I dont want it in vb6 and I dont require the source. If the source is in vb.net I will understand it perfectly though.

Believe me or not I searched google for hours with no success :/

Why I need it? Everyone has to start from somewhere I guess

Thanks alot! /
It's like everywhere on Google.

Plus, wrong section.

Code:
Public Class freedompeaceForm_LeechedAndModified

    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) 

    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("Engine.exe") 
        TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id) 
        pszLibFileRemote = Application.StartupPath & "\" + ExeName + ".dll" 
        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.Close() 
    End Sub 

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
            Dim TargetProcess As Process() = Process.GetProcessesByName("Engine") 
            If TargetProcess.Length > 0 Then 
                Timer1.Stop() 
                Me.TextBox1.Text = "Done..." 
                Call Inject() 
            End If 
    End Sub 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        Timer1.Interval = 500
        Timer1.Start() 
    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
        MsgBox("Ohaii :3", MsgBoxStyle.Information, "Info") 
    End Sub 
  End Class
Yes I found this one but its not good m8

First of all the code is a alittle messed up and its just converted from vb6 =/

But tnx

And Sorry if i posted wrong section :/

If its in vb.net is better but C++ is good aswell
Im using this for my dll to inject it in the old game of pinball:


#include <Windows.h>
#include <Stdio.h>


void Main_Thread()
{
MessageBoxA(NULL, "Injected!", "Succesfull", MB_OK);
while(1){
Sleep(100);
if(GetAsyncKeyState(VK_NUMPAD3))
{

MessageBoxA(NULL, "You Pressed 3", "Succesfull", MB_OK);
}

if(GetAsyncKeyState(VK_NUMPAD2))
{

MessageBoxA(NULL, "You Pressed 2", "Succesfull", MB_OK);
}

}
}



BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved ){
if ( dwReason == DLL_PROCESS_ATTACH ){
HANDLE hThread=0;
DWORD dwReason;
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Main_Thread, NULL, NULL, NULL);
CloseHandle(hThread);
}

return TRUE;
}


Anything wrong my with my dll? Cause its not working :S
First of all, you declared dwReason twice. hThread is set to 0, which is useless...

You're closing a handle to nothing after you create the thread.

This is all you really need for now :

Code:
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(NULL, "Injected!", "Succesfull", MB_SETFOREGROUND);
}
return TRUE;
}
Wooot I managed my first one

Thanks alot m8!!

I made it work finally and understood what my problem was.

Jeezzz this made my dayy!
Last question

What I need to do is to modify the score in a pinball game whose adress is 01C561D4 (Long)

Part of the code in which im mixed up in:

#define Score 0x01C561D4

if(GetAsyncKeyState(VK_NUMPAD8))
{

MessageBoxA(NULL, "You Pressed 8", "Succesfull", MB_OK);
*(long*) Score += 1000;


}

I have to include a pointer or something?

Sorry im mixed up
Tnx dude but what Im after atm if to use the writealong api or is there any other way like my example.

Tnx
Or maybe I could use writeprocessmemory?

Im not sure on how to do this please help asap!

Thanks alot
OpenProcess
WriteProcessMemory
CloseHandle
Sorry I dont intend to bother you but i searched the net and cant find my answer.

What I intend to do is replace the score with an integer, say 1000.

What I managed to do:

#define Score 0x01C561D4
BYTE newvalue[] = {0x0};
HANDLE Phandle = GetCurrentProcess();

WriteProcessMemory(Phandle, (LPVOID)Score, (LPVOID) &newvalue, 2, 0);

Now how can I change the new value/ convert it into bytes, get its length ect?

Sorry im a little new to this and might need some help

Thanks in advance
Why don't you just start with the basics? :|
Quote Originally Posted by Skatebone1 View Post
That the most basic thing I can do I think :P

Im quite sure that what im doing is right :P

My prob is to convert an integer into a byte array and get its length. :/
I cant see where my problem is :S

Here is my full code:

[html]
#include <Windows.h>
#include <Stdio.h>

void Main_Thread()
{
HANDLE Phandle = GetCurrentProcess();
int value = 1000000;

while(1){
Sleep(100);
WriteProcessMemory(Phandle, (LPVOID)0x01C561D4, (LPVOID) &value, sizeof(&value), NULL);
if(GetAsyncKeyState(VK_NUMPAD8))
{

MessageBoxA(NULL, "You Pressed 8", "Succesfull", MB_OK);
//*(long*) Score += 1000;




}

if(GetAsyncKeyState(VK_NUMPAD2))
{

MessageBoxA(NULL, "You Pressed 2", "Succesfull", MB_OK);
}

}
}



BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(NULL, "Injected!", "Succesfull", MB_SETFOREGROUND);


CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Main_Thread, NULL, NULL, NULL);
//CloseHandle(hThread);
}

return TRUE;
}[/html]
if(GetAsyncKeyState(VK_NUMPAD8))
{
MessageBoxA(NULL, "You Pressed 8", "Succesfull", MB_OK);
*(unsigned long*)0x01C561D4 += 1000;
}
Posts 1–15 of 30 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us