Inquiridor
Ajuda Com Erro De injeção de DLL

Pergunta
-
Olá, Bom criei um programa de injeção automática (Loader) Bom o programa é criado em VB 2010, ele tem uma dll que tá no Resource e dai ele copia para a pasta C:\Windows dai depois injeta em um processo chamado BlackShot , bom tenho este erro na hora que é para injetar : http://i.imgur.com/9DaNO7Z.png .
BOM MAS ESTE ERRO AI, ACONTECE EM OUTRO PC 64 BITS, AKI ELE FUNCIONA DIREITINHO (32 BITS).
MEU CÓDIGO DE TODA A PARTE DA INJEÇÃO E TALS E ESTE:
Public Class Form2 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("BlackShot") TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id) pszLibFileRemote = ("C:\Windows\Chams.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.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 Timer1.Interval = 2 Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick IO.File.WriteAllBytes("C:\Windows\Chams.dll", My.Resources.Chams) If IO.File.Exists("C:\Windows\Chams.dll") Then End If Dim TargetProcess As Process() = Process.GetProcessesByName("BlackShot") If TargetProcess.Length = 0 Then Me.Label1.ForeColor = Color.Red Else Timer1.Stop() Me.Label1.ForeColor = Color.Green Me.Label1.Text = "Sucesso ao injetar!" Call Inject() End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) For i As Integer = (Dlls.SelectedItems.Count - 1) To 0 Step -1 Dlls.Items.Remove(Dlls.SelectedItems(i)) Next End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click IO.File.WriteAllBytes("C:\Windows\Chams.dll", My.Resources.Chams) If IO.File.Exists("C:\Windows\Chams.dll") Then End If Dim TargetProcess As Process() = Process.GetProcessesByName("BlackShot") If TargetProcess.Length = 0 Then Me.Label1.Text = ("Esperando por " + "BlackShot" + ".exe" + "....") Else Timer1.Stop() Me.Label1.ForeColor = Color.Green Me.Label1.Text = "Injetado com sucesso!" Call Inject() End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Timer1.Start() Button3.Enabled = False End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim FileName As String = "C:\Windows\Chams.dll" FileName = FileName.Substring(FileName.LastIndexOf("\")) Dim DllFileName As String = FileName.Replace("\", "") Me.Dlls.Items.Add(DllFileName) End Sub Private Sub SiteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub AjudaToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox("Ao colocar o processo não coloque no final .exe pois não precisa e podera ocorre um erro.") End Sub Private Sub CreditosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub SairToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Application.Exit() End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Dlls_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dlls.SelectedIndexChanged End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked End Sub Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) IO.File.WriteAllBytes("C:\Windows\Chams.dll", My.Resources.Chams) If IO.File.Exists("C:\Windows\Chams.dll") Then End If Dim TargetProcess As Process() = Process.GetProcessesByName("BlackShot") If TargetProcess.Length = 0 Then Me.Label1.Text = ("Esperando por " + "BlackShot" + ".exe" + "....") Else Timer1.Stop() Me.Label1.ForeColor = Color.Green Me.Label1.Text = "Injetado com sucesso!" Call Inject() End If End Sub Private Sub Button1_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("Primeiro Abra Seu BlackShot, Depois De Ter Dado Start Game, Espere Uns 10 Segundos e Pronto, a DLL Será Injetada") End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) IO.File.WriteAllBytes("C:\Windows\Chams.dll", My.Resources.Chams) If IO.File.Exists("C:\Windows\Chams.dll") Then End If Dim TargetProcess As Process() = Process.GetProcessesByName("BlackShot") If TargetProcess.Length = 0 Then Me.Label1.Text = ("Esperando por " + "BlackShot" + ".exe" + "....") Else Timer1.Stop() Me.Label1.ForeColor = Color.Green Me.Label1.Text = "Injetado com sucesso!" Call Inject() End If End Sub End Class
POR FAVOR AE ALGUÉM ME AJUDA.....