Injector will nicht injecten

05/29/2012 00:19 robot609#1
Jo, mein Problem steht eigentlich oben.
Er soll eine DLL in S4Client.exe injecten, und dann ins Label "Success" schreiben.
Passiert leider nicht.

Code:
    Private Sub Inject()
        On Error GoTo 1 
        Timer1.Stop()
        Dim TargetProcess As Process() = Process.GetProcessesByName("S4Client")
        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)
        Label2.Text = "Successfully Injected!"
1:      Me.Show()
    End Sub
(ich weiß, C&P, aber vllt lernt man ja daraus(oder nicht))
Wäre dankbar, wenn jemand wüsste, was falsch ist.

EDIT: Ja, ich starte das als Admin.
05/29/2012 00:40 qickly#2
Ich glaub .Net kann nur in Netprozesse injecten, bekanntlich ist S4 kein Net Framework Programm
05/29/2012 10:16 xNopex#3
Quote:
Ich glaub .Net kann nur in Netprozesse injecten
Laber nicht.

@TS: Wo bricht dein Code ab?
05/29/2012 14:58 robot609#4
Das weiß ich nicht, ich weiß nur, dass

Code:
Label2.Text = "Successfully Injected!"
nicht passiert.
05/29/2012 15:05 Kraizy​#5
Dann setz nen Haltepunkt
05/29/2012 15:27 .SkyneT.#6
Probier mal PROCESS_ALL_ACCESS zu verwenden.
05/29/2012 15:50 qickly#7
Nopex, ich war da wohl gerade auf einem anderen Planeten. Ich dachte an was anderes.
05/29/2012 19:14 נιяαιуα#8
Quote:
Originally Posted by qickly View Post
Nopex, ich war da wohl gerade auf einem anderen Planeten. Ich dachte an was anderes.
Interessiert hier keinen.
-
Wird die dll denn injected?
05/29/2012 19:53 robot609#9
Nein wird sie nicht.
05/30/2012 13:49 Shawak#10
Dann mach doch mal das On Error Goto weg und debugge dein Programm.
05/30/2012 16:33 robot609#11
So, habs weggemacht und jetzt krieg ich diese Fehlermeldung:

"Der Einstiegspunkt "CloseHandleA" wurde nicht in der DLL "kernel32" gefunden."
05/30/2012 16:54 xNopex#12
Mach das "A" bei "CloseHandleA" weg. Das ist natürlich völliger Unsinn..
05/30/2012 18:46 2n0w#13
Hier hast du ein schönes Tutorial, ist zwar C, aber die Vorgehensweiße ist natürlich gleich, und dir werden die Api-Funktionen erklärt, kannst auch noch wenn dir eine Funktion nicht ganz klar ist im msdn nachlesen.
[Only registered and activated users can see links. Click Here To Register...]
05/31/2012 16:11 robot609#14
Quote:
Originally Posted by xNopex View Post
Mach das "A" bei "CloseHandleA" weg. Das ist natürlich völliger Unsinn..
Hab ich weggemacht, jetzt kommt keine Fehlermeldung, er injected aber nichts.
Der Text wird aber im Label angezeigt.
05/31/2012 18:16 xNopex#15
Versuch eine Test-Dll in einen anderen Prozess zu injizieren. Wenn das gelingt, dann besorge dir Debug Privileges, um in S4 zu injizieren.