Source Code Visual Basic - How to create a DLL Injector.

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

DarkSnow

Jr.Coder
Full Member
Nobleman
May 24, 2012
52
434
0
Hey,
Today I'm going to show you how to make an dll Injector :)
Its pretty easy, so move on.
---


*Let's get started:
1. Open your Visual Basic 2010 (or lower)
2. Make a windows form application project
3. Add to your project...
• 2 Textboxes
• 1 Button
• 1 Timer
• 1 OpenFileDialog
• 1 Label



4. Double click the form then type:
C++:
button1.text = "browse"
label1.text = "Waiting for users input"
timer1.interval = 50
timer1.start()


5. Double click in your timer then type:
C++:
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


*The line "
C++:
Dim TargetProcess As Process() = Process.GetProcessesByName(TextBox1.Text)
"
means: the process where you want the dll to be injected.

6.Go to Public Class Form1 then type below:
C++:
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
*The line "1:
Me.Show" means: if the dll injected successfully then it remains open (running) but already inject.

7. Then double click in your button 1 then type:
C++:
OpenFileDialog1.Filter = "DLL (*.dll) |*.dll|(*.*) |*.*"
OpenFileDialog1.ShowDialog()
Dim FileName As String
FileName = OpenFileDialog1.FileName.Substring(OpenFileDialog1.FileName.LastIndexOf(""))
Me.TextBox2.Text = OpenFileDialog1.FileName


-=Questions=-
1. What is textbox1 for?
Answer= It is where you will put the process name, should be just (eg."soldierfont") - without quotation mark and without ".exe".

2. Is this Automatically INJECTED?
Answer= Yes. You Can also make it Manully injected by making a radiobutton1 and put this:
C++:
Timer1.stop()

*Then Make a additional button then type inside:
Timer1.Start()
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")

Else
Timer1.Stop()
Me.Label1.Text = "Successfully Injected!"
Call Inject()
End If
Else

End If
And your done, Have fun!
Credits: DXTGaming & DarkSnow for making the browser work correctly.

~DarkSnow
 
S

Sleinzel

1. Thanks for your tutorial
2. This Mechanism is easily detectable. Most games don't do, but they could easily if they wanted to... Pay Attention. You could get banned.
3. Why would somebody create an Injector in VisualBasic if you have to code the .dll in C++ (There are some ways to load the CLR to inject managed code etc, but most dlls are coded in unmanaged C++ code today)
 

DarkSnow

Jr.Coder
Full Member
Nobleman
May 24, 2012
52
434
0
Sleinzel said:
1. Thanks for your tutorial
2. Never Create an Injector which adds the .exe by himself... There are some games like aion who do not run a .exe file... (Aion ==> aion.bin called process)
3. This Mechanism is easily detectable. Most games don't do, but they could easily if they wanted to... Pay Attention. You could get banned.
4. Why would somebody create an Injector in VisualBasic if you have to code the .dll in C++ (There are some ways to load the CLR to inject managed code etc, but most dlls are coded in unmanaged C++ code today)
True, but I have made it when I didn't started coding with c++ yet..
You got some points.. I didn't know those :D
But I just wanted to show there is a way for visual basic too 8)
 

Fleep

Founder
Meme Tier VIP
May 20, 2012
572
11,023
6
Thanks for the addition DarkSnow, perfect for people starting out. :D

Fleep
 
S

Sleinzel

Ok.

It's definitly a nice and easy way to write an injector if you just started coding
 

Mindspin

Newbie
Full Member
May 24, 2012
10
242
0
I'm glad to see some hacking related stuff in a language i'm actually know pretty well haha
 

DarkSnow

Jr.Coder
Full Member
Nobleman
May 24, 2012
52
434
0
Mindspin said:
I'm glad to see some hacking related stuff in a language i'm actually know pretty well haha
Haha, so I thought too first, lol.When you get bored of a language, and want to do somethingdifference, it's always fun to try a second coding language.I think I am going to make some video tutorials soon too (Visual Basic). :D
 

Mindspin

Newbie
Full Member
May 24, 2012
10
242
0
I would most defiantly look foward to seeing that.

Though theres not much hacking you can do in VB since you cant read or write to memory :(
 

DarkSnow

Jr.Coder
Full Member
Nobleman
May 24, 2012
52
434
0
Mindspin said:
I would most defiantly look foward to seeing that.Though theres not much hacking you can do in VB since you cant read or write to memory :(
[glow=white,2,300]No, that's true. (could be possible a way I think, but I don't know xD).I can make very different projects,Like I've ever made my own 'group-messenger' program, and my FTP Downloader/Uploader;Which where very complicated projects, but at the end you can think... wow, I am awesome, lol.Nah, you can make cool things with it :DI'll make some tuts soon!~Have fun with coding :)[/glow]
 
S

Sleinzel

Import WriteProcessMemory and ReadProcessMemory from Kernel32.dll and then you can read/write in a VB Project...

Basically you can do the same things as in C# (both are .NET and have the same (its managed code) Assembly Language).

A .dll created in C# can also be used in a VB Project
 

Mindspin

Newbie
Full Member
May 24, 2012
10
242
0
Sleinzel said:
Import WriteProcessMemory and ReadProcessMemory from Kernel32.dll and then you can read/write in a VB Project...

Basically you can do the same things as in C# (both are .NET and have the same (its managed code) Assembly Language).

A .dll created in C# can also be used in a VB Project
I did not know that, ill have to go give that a try and see what i can do
 

Spirit

Newbie
Full Member
May 24, 2012
34
322
0
Guys, i used that code in my private hack loader.
Works well.
But i changed it to make no-detection, no crash e.t.c.....
 

konsowa

Coder
Full Member
Nobleman
May 24, 2012
178
753
3
Yea, wud luv to know what the name of the game u were testing it on is :)
 

DarkSnow

Jr.Coder
Full Member
Nobleman
May 24, 2012
52
434
0
Spirit said:
Guys, i used that code in my private hack loader.
Works well.
But i changed it to make no-detection, no crash e.t.c.....
Lol Made it non-crash?
like this?

Try
Catch exception As
end try?

Lol.
It never crashed at me btw.
 

Spirit

Newbie
Full Member
May 24, 2012
34
322
0
Fleep said:
Sounds good, what game did you test it on?

Fleep
COD4, Warface

DarkSnow said:
Spirit said:
Guys, i used that code in my private hack loader.
Works well.
But i changed it to make no-detection, no crash e.t.c.....
Lol Made it non-crash?
like this?

Try
Catch exception As
end try?

Lol.
It never crashed at me btw.
No, harder way =)
 
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods League of Legends Accounts