none
Ajuda Com Erro De injeção de DLL RRS feed

  • 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..... 
    segunda-feira, 26 de maio de 2014 18:43