Tutorial Pembuatan Simple Universal Injector (Otomatis Suspend)
Berikut componen2 yang harus dibuat:
- 2 label, dengan name label1 dan label2. untuk label2 beri caption exit.
- 1 timer, dengan name timer1, jangan lupa set interval pada properties timernya 100
- 1 Check, dengan name check1 dan beri caption Auto Exit After Injection (Pilih Value = 1-Checked pada propertis check1)
- 1 modul, klik menu project --> add modules, beri nama ModUniversal
Pengaturan Properties dan Design pada form2 masih sama seperti form 1 jadikan borderstyle = 0 None
untuk desain silakan kreasikan semaunya.
untuk pilihan image terserah download saja. Untuk menambahkan image pada form, klik pada Picture pada properties form1, maka akan muncul kotak dialog, pilih image berdasarkan yg kita siapkan.
KLo samPUN dibuat semua, tinggal kita masuka source code (ss) nya yaitu :
1. Source Code Form2
klik kanan pada form --> pilih view code lalu isikan kode berikut pada form2,
Spoiler:
Option Explicit
'Created Date: 8 Agustus 2011
'Form1 Universal Injector by QBlue
'This Code N` Tutorial Credit Goes to N3, Do As N3 Rule.
Private winHwnd As Long
Private NamaDll As String
Private Const WM_NCLBUTTONDOWN As Long = &HA1
Private Const HTCAPTION As Integer = 2
Private Declare Sub ReleaseCapture Lib "user32" ()
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Form_Load()
CenterForm Me
NamaDll = App.Path & "\nama-dll-anda.dll" 'sesuaikan nama dll dibawah ini dengan nama dll yg ingin di injectkan.
'nama game target terserah, misalnya pointblank
FileTarget = "PointBlank.exe"
'jika ingin injector disetting otomatis exit
'berikan nilai 1 pada kode check1 dibawah, sebaliknya
'jika tidak berikan nilai 0
Check1.Value = 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
'auto open url setelah form di close
OpenURL "http:wangkiz.blogspot.com", Me.hwnd 'terserah isi pake alamat blog/web anda
End Sub
Private Sub Label2_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
winHwnd = GetProcessWndByName(FileTarget)
If Not winHwnd = 0 Then 'jika ditemukan
NTProcessList 'deteksi process game
InjectExecute NamaDll 'inject library
If Check1.Value = 1 Then 'jika check1 dicentang (Auto Exit After Injection) maka
End 'tutup otomatis injector
End If
Else 'jika tidak
Label1.Caption = "Waiting Game..."
End If
End Sub
Private Sub CenterForm(frm As Form)
frm.Top = Screen.Height / 2 - frm.Height / 2
frm.Left = Screen.Width / 2 - frm.Width / 2
End Sub
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
If Button = 1 Then
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
Screen.MousePointer = vbDefault
End Sub
2. Source ModUniversal
Spoiler:
Option Explicit
'Created Date: 8 Agustus 2011
'Modul Universal Injection by QBlue
'beberapa bagian code berasal dari sourcecode Gesp 1.3
'credit by eRGe@Nyit-Nyit.Net dan
'VB6 Trainer SDK by Wiccaan@cheatengine.org
'Optimized code by QBlue
Public FileTarget As String
Private sFlDLL As String
Private IdTargetOne As Long
Private Const TH32CS_SNAPHEAPLIST As Long = &H1
Private Const TH32CS_SNAPPROCESS As Long = &H2
Private Const TH32CS_SNAPTHREAD As Long = &H4
Private Const TH32CS_SNAPMODULE As Long = &H8
Private
Const TH32CS_SNAPALL As Double = (TH32CS_SNAPHEAPLIST Or
TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Private Const MAX_PATH As Integer = 260
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 260
End Type
Private Type THREADENTRY32
dwSize As Long
cntUsage As Long
th32ThreadID As Long
th32OwnerProcessID As Long
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, _
ByVal lProcessID As Long) As Long
Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As MODULEENTRY32) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, _
ByVal lpProcName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, _
lpAddress As Any, _
ByVal dwSize As Long, _
ByVal fAllocType As Long, _
flProtect As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, _
ByVal lpBaseAddress As Any, _
lpBuffer As Any, _
ByVal nSize As Long, _
lpNumberOfBytesWritten As Long) As Long
Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal ProcessHandle As Long, _
lpThreadAttributes As Long, _
ByVal dwStackSize As Long, _
ByVal lpStartAddress As Any, _
ByVal lpParameter As Any, _
ByVal dwCreationFlags As Long, _
lpThreadID As Long) As Long
Public Function GetFName(fn) As String
Dim f As Integer
Dim n As Integer
GetFName = fn
f = InStr(fn, "")
Do While f
n = f
f = InStr(n + 1, fn, "")
Loop
If n > 0 Then
GetFName = Mid$(fn, n + 1)
End If
End Function
Public Function GetProcessIdByName(ByVal szProcessName As String) As Long
Dim pe32 As PROCESSENTRY32
Dim hSnapshot As Long
Dim bFoundProc As Boolean
Dim dwProcId As Long
dwProcId = 0
pe32.dwSize = Len(pe32)
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
bFoundProc = Process32First(hSnapshot, pe32)
Do While bFoundProc
If Right$(LCase$(Left$(pe32.szExeFile, InStr(1, pe32.szExeFile,
vbNullChar) - 1)), Len(szProcessName)) = LCase$(szProcessName) Then
dwProcId = pe32.th32ProcessID
Exit Do
End If
bFoundProc = Process32Next(hSnapshot, pe32)
Loop
CloseHandle hSnapshot
GetProcessIdByName = dwProcId
End Function
Public Function GetProcessWndByName(ByVal szProcessName As String) As Long
Dim dwProcId As Long
Dim dwProcWnd As Long
dwProcId = GetProcessIdByName(szProcessName)
If dwProcId = 0 Then
GetProcessWndByName = 0
Else
dwProcWnd = OpenProcess(PROCESS_ALL_ACCESS, False, dwProcId)
CloseHandle dwProcId
GetProcessWndByName = dwProcWnd
End If
End Function
Public Sub InjectDll(DllPath As String, _ProsH As Long)
Dim DLLVirtLoc As Long
Dim DllLength As Long
Dim inject As Long
Dim LibAddress As Long
Dim CreateThread As Long
Dim ThreadID As Long
Dim Bla As VbMsgBoxResult
g_loadlibary:
LibAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
If LibAddress = 0 Then
Bla = MsgBox("Can't find LoadLibrary API from kernel32.dll", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_loadlibary
Else
Exit Sub
End If
End If
g_virutalallocex:
DllLength = Len(DllPath)
DLLVirtLoc = VirtualAllocEx(ProsH, 0, DllLength, &H1000, ByVal &H4)
If DLLVirtLoc = 0 Then
Bla = MsgBox("VirtualAllocEx API failed! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_virutalallocex
Else
Exit Sub
End If
End If
g_writepmemory:
inject = WriteProcessMemory(ProsH, ByVal DLLVirtLoc, ByVal DllPath, DllLength, vbNull)
If inject = 0 Then
Bla = MsgBox("Failed to Write DLL to Process! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_writepmemory
Else
Exit Sub
End If
End If
g_creatthread:
CreateThread = CreateRemoteThread(ProsH, ByVal 0, 0, ByVal LibAddress, ByVal DLLVirtLoc, 0, ThreadID)
If CreateThread = 0 Then
Bla = MsgBox("Failed to Create Thead! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_creatthread
Else
Exit Sub
End If
End If
Form1.Label1.Caption = "Injected Successful!"
MsgBox "Dll Injection Successful!", vbInformation, "Success"
End Sub
Public Sub InjectExecute(ByVal sFlDLL As String)
Dim lProcInject As Long
lProcInject = OpenProcess(PROCESS_ALL_ACCESS, 0, IdTargetOne)
If lProcInject > "0" Then
InjectDll sFlDLL, lProcInject
End If
CloseHandle lProcInject
End Sub
Public Function NTProcessList() As Long
Dim FileName As String
Dim ExePath As String
Dim hProcSnap As Long
Dim hModuleSnap As Long
Dim lProc As Long
Dim uProcess As PROCESSENTRY32
Dim uModule As MODULEENTRY32
On Error Resume Next
hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
uProcess.dwSize = Len(uProcess)
lProc = Process32First(hProcSnap, uProcess)
Do While lProc
If uProcess.th32ProcessID <> 0 Then
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, uProcess.th32ProcessID)
uModule.dwSize = Len(uModule)
Module32First hModuleSnap, uModule
If hModuleSnap > 0 Then
ExePath = StripNulls(uModule.szExePath)
FileName = GetFName(ExePath)
If FileTarget = FileName Then
IdTargetOne = uProcess.th32ProcessID
End If
End If
End If
lProc = Process32Next(hProcSnap, uProcess)
Loop
CloseHandle hProcSnap
CloseHandle lProc
On Error GoTo 0
End Function
Private Function StripNulls(ByVal sStr As String) As String
StripNulls = Left$(sStr, lstrlen(sStr))
End Function
Public Sub OpenURL(situs As String, sourceHWND As Long)
Call ShellExecute(sourceHWND, vbNullString, situs, vbNullString, vbNullString, 1)
End Sub
Tambahan :
Bagaimana jika untuk inject lebih dari 1 dll saat bersamaan....?
jika yg dimaksud adalah inject dll sekaligus dalam waktu yg bersamaan, misal ada 3 dll di inject secara bersama maka:
Silakan edit kode timer1 di atas yang kita masukan sebelumnya menjadi seperti di bawah ini :
Spoiler:
Private Sub Timer1_Timer()
Dim nama_dll(3) As String
Dim x As Integer
nama_dll(1) = App.Path & "\nama_dll1.dll"
nama_dll(2) = App.Path & "\nama_dll2.dll"
nama_dll(3) = App.Path & "\nama_dll3.dll"
If FileTarget = "PointBlank.exe" Then
winHwnd = FindWindow(vbNullString, "HSUpdate") 'mencari jendela hsupdate
Else
winHwnd = GetProcessWndByName(FileTarget)
End If
If Not winHwnd = 0 Then 'jika ditemukan
NTProcessList 'deteksi process game
For x = 1 To 3
InjectExecute nama_dll(x)
DoEvents
Next x
End
End If
End Sub
Asumsi:
file dll yg di inject secara bersamaan adalah 3 dll. untuk 4 atau lebih silakan disesuaikan sendiri berdasarkan contoh kode timer seperti di atas. NB : Nama dll misalnya nama_dll1.dll,nama_dll2.dll, dan nama_dll3.dll silakan disesuaikan dengan dll yg dimiliki, juga pastikan berada di dekat injectornya dalam 1 folder.
Tahap Terakhir, Compile ke exe jika udah selesai, klik menu file pilih make project exe.
Harus Selalu di ingat simpan satu folder keseluruhan hasil akhir ( file injector.exe, dll file, file mp3) Biar ga ERROR
TAMBAHAN INTERAKTIF APLIKASI
1. Jika Ingin Membuat Text Kedap Kedip Pada Form 2 :
-Buat 1 label = Beri nama Caption nya dengan Text yang ingin di buat Berkedap-kedip dan Posisi Terserah
-Buat 1 Timer = Intervalnya 200
Double Klik pada Timer Lalu Masukan Code Sebagai Berikut :
Spoiler:
Private Sub Timer3_Timer()
If Label1.Visible = True Then
Label1.Visible = False
Else
Label1.Visible = True
End If
End Sub
2. Jika Ingin Menambahkan Lagu Di Injektor Anda :
- Buat -1 Timer :
- 1 MediaPlayer (Tekan CTRL+T , Check List windows Media Player)
- 1 file mp3 (simpan dalam 1 folder projcet)
Kemudian Klik kanan Form 2 pilih ViewCode lalu sisipkan Code Berikut Di bagian Form Load :
WindowsMediaPlayer1.URL = App.Path & "\sound.mp3" '
CocoKan nama Lagu anda Di bagian sound.mp3" misal susis.mp3
NAH Selesai deh...SELAMAT MENCOBA YA
Klo posting saya berguna cukup memberi +++ yg banyak untuk berterima kasih DAN Klo Tdk Berguna tdk perlu Junk Atau Comment Kasar Ya..
Berikut componen2 yang harus dibuat:
- 2 label, dengan name label1 dan label2. untuk label2 beri caption exit.
- 1 timer, dengan name timer1, jangan lupa set interval pada properties timernya 100
- 1 Check, dengan name check1 dan beri caption Auto Exit After Injection (Pilih Value = 1-Checked pada propertis check1)
- 1 modul, klik menu project --> add modules, beri nama ModUniversal
Pengaturan Properties dan Design pada form2 masih sama seperti form 1 jadikan borderstyle = 0 None
untuk desain silakan kreasikan semaunya.
untuk pilihan image terserah download saja. Untuk menambahkan image pada form, klik pada Picture pada properties form1, maka akan muncul kotak dialog, pilih image berdasarkan yg kita siapkan.
KLo samPUN dibuat semua, tinggal kita masuka source code (ss) nya yaitu :
1. Source Code Form2
klik kanan pada form --> pilih view code lalu isikan kode berikut pada form2,
Spoiler:
Option Explicit
'Created Date: 8 Agustus 2011
'Form1 Universal Injector by QBlue
'This Code N` Tutorial Credit Goes to N3, Do As N3 Rule.
Private winHwnd As Long
Private NamaDll As String
Private Const WM_NCLBUTTONDOWN As Long = &HA1
Private Const HTCAPTION As Integer = 2
Private Declare Sub ReleaseCapture Lib "user32" ()
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Sub Form_Load()
CenterForm Me
NamaDll = App.Path & "\nama-dll-anda.dll" 'sesuaikan nama dll dibawah ini dengan nama dll yg ingin di injectkan.
'nama game target terserah, misalnya pointblank
FileTarget = "PointBlank.exe"
'jika ingin injector disetting otomatis exit
'berikan nilai 1 pada kode check1 dibawah, sebaliknya
'jika tidak berikan nilai 0
Check1.Value = 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
'auto open url setelah form di close
OpenURL "http:wangkiz.blogspot.com", Me.hwnd 'terserah isi pake alamat blog/web anda
End Sub
Private Sub Label2_Click()
Unload Me
End Sub
Private Sub Timer1_Timer()
winHwnd = GetProcessWndByName(FileTarget)
If Not winHwnd = 0 Then 'jika ditemukan
NTProcessList 'deteksi process game
InjectExecute NamaDll 'inject library
If Check1.Value = 1 Then 'jika check1 dicentang (Auto Exit After Injection) maka
End 'tutup otomatis injector
End If
Else 'jika tidak
Label1.Caption = "Waiting Game..."
End If
End Sub
Private Sub CenterForm(frm As Form)
frm.Top = Screen.Height / 2 - frm.Height / 2
frm.Left = Screen.Width / 2 - frm.Width / 2
End Sub
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
If Button = 1 Then
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End If
Screen.MousePointer = vbDefault
End Sub
2. Source ModUniversal
Spoiler:
Option Explicit
'Created Date: 8 Agustus 2011
'Modul Universal Injection by QBlue
'beberapa bagian code berasal dari sourcecode Gesp 1.3
'credit by eRGe@Nyit-Nyit.Net dan
'VB6 Trainer SDK by Wiccaan@cheatengine.org
'Optimized code by QBlue
Public FileTarget As String
Private sFlDLL As String
Private IdTargetOne As Long
Private Const TH32CS_SNAPHEAPLIST As Long = &H1
Private Const TH32CS_SNAPPROCESS As Long = &H2
Private Const TH32CS_SNAPTHREAD As Long = &H4
Private Const TH32CS_SNAPMODULE As Long = &H8
Private
Const TH32CS_SNAPALL As Double = (TH32CS_SNAPHEAPLIST Or
TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Private Const MAX_PATH As Integer = 260
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 260
End Type
Private Type THREADENTRY32
dwSize As Long
cntUsage As Long
th32ThreadID As Long
th32OwnerProcessID As Long
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, _
ByVal lProcessID As Long) As Long
Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As MODULEENTRY32) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, _
ByVal lpProcName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, _
lpAddress As Any, _
ByVal dwSize As Long, _
ByVal fAllocType As Long, _
flProtect As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, _
ByVal lpBaseAddress As Any, _
lpBuffer As Any, _
ByVal nSize As Long, _
lpNumberOfBytesWritten As Long) As Long
Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal ProcessHandle As Long, _
lpThreadAttributes As Long, _
ByVal dwStackSize As Long, _
ByVal lpStartAddress As Any, _
ByVal lpParameter As Any, _
ByVal dwCreationFlags As Long, _
lpThreadID As Long) As Long
Public Function GetFName(fn) As String
Dim f As Integer
Dim n As Integer
GetFName = fn
f = InStr(fn, "")
Do While f
n = f
f = InStr(n + 1, fn, "")
Loop
If n > 0 Then
GetFName = Mid$(fn, n + 1)
End If
End Function
Public Function GetProcessIdByName(ByVal szProcessName As String) As Long
Dim pe32 As PROCESSENTRY32
Dim hSnapshot As Long
Dim bFoundProc As Boolean
Dim dwProcId As Long
dwProcId = 0
pe32.dwSize = Len(pe32)
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
bFoundProc = Process32First(hSnapshot, pe32)
Do While bFoundProc
If Right$(LCase$(Left$(pe32.szExeFile, InStr(1, pe32.szExeFile,
vbNullChar) - 1)), Len(szProcessName)) = LCase$(szProcessName) Then
dwProcId = pe32.th32ProcessID
Exit Do
End If
bFoundProc = Process32Next(hSnapshot, pe32)
Loop
CloseHandle hSnapshot
GetProcessIdByName = dwProcId
End Function
Public Function GetProcessWndByName(ByVal szProcessName As String) As Long
Dim dwProcId As Long
Dim dwProcWnd As Long
dwProcId = GetProcessIdByName(szProcessName)
If dwProcId = 0 Then
GetProcessWndByName = 0
Else
dwProcWnd = OpenProcess(PROCESS_ALL_ACCESS, False, dwProcId)
CloseHandle dwProcId
GetProcessWndByName = dwProcWnd
End If
End Function
Public Sub InjectDll(DllPath As String, _ProsH As Long)
Dim DLLVirtLoc As Long
Dim DllLength As Long
Dim inject As Long
Dim LibAddress As Long
Dim CreateThread As Long
Dim ThreadID As Long
Dim Bla As VbMsgBoxResult
g_loadlibary:
LibAddress = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
If LibAddress = 0 Then
Bla = MsgBox("Can't find LoadLibrary API from kernel32.dll", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_loadlibary
Else
Exit Sub
End If
End If
g_virutalallocex:
DllLength = Len(DllPath)
DLLVirtLoc = VirtualAllocEx(ProsH, 0, DllLength, &H1000, ByVal &H4)
If DLLVirtLoc = 0 Then
Bla = MsgBox("VirtualAllocEx API failed! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_virutalallocex
Else
Exit Sub
End If
End If
g_writepmemory:
inject = WriteProcessMemory(ProsH, ByVal DLLVirtLoc, ByVal DllPath, DllLength, vbNull)
If inject = 0 Then
Bla = MsgBox("Failed to Write DLL to Process! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_writepmemory
Else
Exit Sub
End If
End If
g_creatthread:
CreateThread = CreateRemoteThread(ProsH, ByVal 0, 0, ByVal LibAddress, ByVal DLLVirtLoc, 0, ThreadID)
If CreateThread = 0 Then
Bla = MsgBox("Failed to Create Thead! - try again?", vbYesNo, "ERROR")
If Bla = vbYes Then
GoTo g_creatthread
Else
Exit Sub
End If
End If
Form1.Label1.Caption = "Injected Successful!"
MsgBox "Dll Injection Successful!", vbInformation, "Success"
End Sub
Public Sub InjectExecute(ByVal sFlDLL As String)
Dim lProcInject As Long
lProcInject = OpenProcess(PROCESS_ALL_ACCESS, 0, IdTargetOne)
If lProcInject > "0" Then
InjectDll sFlDLL, lProcInject
End If
CloseHandle lProcInject
End Sub
Public Function NTProcessList() As Long
Dim FileName As String
Dim ExePath As String
Dim hProcSnap As Long
Dim hModuleSnap As Long
Dim lProc As Long
Dim uProcess As PROCESSENTRY32
Dim uModule As MODULEENTRY32
On Error Resume Next
hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
uProcess.dwSize = Len(uProcess)
lProc = Process32First(hProcSnap, uProcess)
Do While lProc
If uProcess.th32ProcessID <> 0 Then
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, uProcess.th32ProcessID)
uModule.dwSize = Len(uModule)
Module32First hModuleSnap, uModule
If hModuleSnap > 0 Then
ExePath = StripNulls(uModule.szExePath)
FileName = GetFName(ExePath)
If FileTarget = FileName Then
IdTargetOne = uProcess.th32ProcessID
End If
End If
End If
lProc = Process32Next(hProcSnap, uProcess)
Loop
CloseHandle hProcSnap
CloseHandle lProc
On Error GoTo 0
End Function
Private Function StripNulls(ByVal sStr As String) As String
StripNulls = Left$(sStr, lstrlen(sStr))
End Function
Public Sub OpenURL(situs As String, sourceHWND As Long)
Call ShellExecute(sourceHWND, vbNullString, situs, vbNullString, vbNullString, 1)
End Sub
Tambahan :
Bagaimana jika untuk inject lebih dari 1 dll saat bersamaan....?
jika yg dimaksud adalah inject dll sekaligus dalam waktu yg bersamaan, misal ada 3 dll di inject secara bersama maka:
Silakan edit kode timer1 di atas yang kita masukan sebelumnya menjadi seperti di bawah ini :
Spoiler:
Private Sub Timer1_Timer()
Dim nama_dll(3) As String
Dim x As Integer
nama_dll(1) = App.Path & "\nama_dll1.dll"
nama_dll(2) = App.Path & "\nama_dll2.dll"
nama_dll(3) = App.Path & "\nama_dll3.dll"
If FileTarget = "PointBlank.exe" Then
winHwnd = FindWindow(vbNullString, "HSUpdate") 'mencari jendela hsupdate
Else
winHwnd = GetProcessWndByName(FileTarget)
End If
If Not winHwnd = 0 Then 'jika ditemukan
NTProcessList 'deteksi process game
For x = 1 To 3
InjectExecute nama_dll(x)
DoEvents
Next x
End
End If
End Sub
Asumsi:
file dll yg di inject secara bersamaan adalah 3 dll. untuk 4 atau lebih silakan disesuaikan sendiri berdasarkan contoh kode timer seperti di atas. NB : Nama dll misalnya nama_dll1.dll,nama_dll2.dll, dan nama_dll3.dll silakan disesuaikan dengan dll yg dimiliki, juga pastikan berada di dekat injectornya dalam 1 folder.
Tahap Terakhir, Compile ke exe jika udah selesai, klik menu file pilih make project exe.
Harus Selalu di ingat simpan satu folder keseluruhan hasil akhir ( file injector.exe, dll file, file mp3) Biar ga ERROR
TAMBAHAN INTERAKTIF APLIKASI
1. Jika Ingin Membuat Text Kedap Kedip Pada Form 2 :
-Buat 1 label = Beri nama Caption nya dengan Text yang ingin di buat Berkedap-kedip dan Posisi Terserah
-Buat 1 Timer = Intervalnya 200
Double Klik pada Timer Lalu Masukan Code Sebagai Berikut :
Spoiler:
Private Sub Timer3_Timer()
If Label1.Visible = True Then
Label1.Visible = False
Else
Label1.Visible = True
End If
End Sub
2. Jika Ingin Menambahkan Lagu Di Injektor Anda :
- Buat -1 Timer :
- 1 MediaPlayer (Tekan CTRL+T , Check List windows Media Player)
- 1 file mp3 (simpan dalam 1 folder projcet)
Kemudian Klik kanan Form 2 pilih ViewCode lalu sisipkan Code Berikut Di bagian Form Load :
WindowsMediaPlayer1.URL = App.Path & "\sound.mp3" '
CocoKan nama Lagu anda Di bagian sound.mp3" misal susis.mp3
NAH Selesai deh...SELAMAT MENCOBA YA
Klo posting saya berguna cukup memberi +++ yg banyak untuk berterima kasih DAN Klo Tdk Berguna tdk perlu Junk Atau Comment Kasar Ya..