VB [Guida]Creare un injector completo per tutti i game!

Stato
Discussione chiusa ad ulteriori risposte.

Nogard00

Utente Jade
20 Novembre 2009
1,930
149
171
716
Ultima modifica:
Salve oggi vi vorrei spiegare come creare un injector completo :) credo che questa guida non sia stata postata... in tal caso:
Chiedo ai mod di chiudere la discussione!


Bene passiamo alla guida...
Occorrenti:
5 buttons
1 label
1 testbox
1 listbox
1 timer
1 open filedialog



Allora, ora vi spiego come fare...
-Prima di tutto rinominiamo le seguenti cose in:
-Button 1 lo rinominiamo in "Clear selected"
-Button 2 in "Clear Process"
-Button 3 in "Clear List"
-Button 4 in "Browse"
-Button 5 in "Inject"



E tutto senza virgolette.


Ora rinominate la listbox in
- "Dlls"


Clicchiamo sulle propietà del OpenFileDialog e mettiamo:


MultiSelect = True



Clicchiamo 2 volte sul form1, apparira una finestra con delle scritte...
Noi cancelliamo tutto e inseriamo il seguente codice:



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.Ex ecutablePath")
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 OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Clear Selected"
Label1.Text = "Waiting for Process Start..."
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
End If


End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i As Integer = (Dlls.SelectedItems.Count - 1) To 0 Step -1
Dlls.Items.Remove(Dlls.SelectedItems(i))
Next

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Clear()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dlls.Items.Clear()

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.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.Dlls.Items.Add(DllFileName)

End Sub
Private Function GetAsyncKeyState(ByVal vKey As Integer) As Short

If GetAsyncKeyState(Keys.F12) Then
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 Injection(F12)...")
Else
Timer1.Stop()
Me.Label1.Text = "Successfully Injected!"
Call Inject()
' If CheckBox1.Checked = True Then
'Me.Close()
'Else
' End If
End If
Else
End If
End If

End Function

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
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 Injection(F12)...")
Else
Timer1.Stop()
Me.Label1.Text = "Successfully Injected!"
Call Inject()
' If CheckBox1.Checked = True Then
'Me.Close()
'Else
End If
End If
End Sub
End Class



Crediti e fonte:
Crediti:
-www.cheatforge.net
-xxdragon00


Fonte: Me e qualche code non me lo ricordavo e lo ho copiato da un file dove tengo tutti i code di vb che uso :) e se dite che è copiata da qualche sito vi sparo ._. ( Naturalmente scherzo)



Saluti,
Dragon.



P.S= i +1 non demordono.
 
Ultima modifica:
se veramente l'hai fatta tu spiegami a cosa servono queste constanti:

Public Const PROCESS_VM_READ = &H10
Public Const TH32CS_SNAPPROCESS = &H2
Public Const MEM_COMMIT = 4096
Public Const PAGE_READWRITE = 4

se invece è come penso io è copiata completamente da IH

screenshot:




sono identiche.
 
Non lo so bene... io ricordo solo alcuni codici :)

--- Aggiornamento Post ---

Fonte: Me e qualche code non me lo ricordavo e lo ho copiato :) e se dite che è copiata da qualche sito vi sparo ._. ( Naturalmente scherzo)



Leggi bene :)

--- Aggiornamento Post ---

Non credo che sia copiata da IH ._. visto che i buttons qualunque guida dice di farli cosi ._. e poi io ho detto solo questi buttons xk il mio primo injector naque da quella guida... ma sta guida non la ho copiata da li... semplicemente ricordavo da quando avevo fatto il mio injector e tengo sempre i code che faccio salvati in un txt... poi uno può cambiare nome come gli pare :)
 
se è come dici te quindi è copiata visto che tu stesso ammetti che il codice originale l'hai preso da IH. o ho malinteso?
 
Hai malinteso... i code che non ricordo li metto sempre su un file ( QUELLI CHE N ON RICORDO) E qui i code che non ricordavo erano proprio pochi ._.
 
per favore dragon potresti mettere la fonte hai sinceramente rotto copiando le cose senza mettere fonte...
 
Stato
Discussione chiusa ad ulteriori risposte.