Injektor Probleme

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von fufu.

    Injektor Probleme

    Hi Leute habe ein Problem

    Ich habe aus dem Internet ein Modul für einen Dll-Injector. Ich habe mein Programm so gestaltet zum Injekten was auch ohne Probleme funktioniert hat.
    Jetzt habe ich das Problem das ich mein Programm weiter gemacht habe und wenn ich jetzt den Injektor benutzten will passiert einfach nichts.
    Injector Modul:

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. Imports System.Text
    3. Module ModInject
    4. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    5. Private 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
    6. Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByVal lpBuffer() As Byte, ByVal nSize As Integer, ByVal lpNumberOfBytesWritten As UInteger) As Boolean
    7. Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Integer, ByVal lpProcName As String) As Integer
    8. Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Integer
    9. Private 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, ByVal lpThreadId As Integer) As Integer
    10. Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Integer, ByVal dwMilliseconds As Integer) As Integer
    11. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    12. Public Function inject(ByVal ProcessID As Long, ByVal DLLPath As String) As Boolean
    13. On Error GoTo exiterror
    14. Dim DProc As Integer
    15. Dim DAdd As Integer
    16. Dim DWrote As UInteger
    17. Dim DAll As Integer
    18. Dim DThe As Integer
    19. Dim DMHD As Integer
    20. DProc = OpenProcess(&H1F0FFF, 1, ProcessID)
    21. DAdd = VirtualAllocEx(DProc, 0, DLLPath.Length, &H1000, &H4)
    22. If (DAdd > 0) Then
    23. Dim DByte() As Byte
    24. DByte = StrChar(DLLPath)
    25. WriteProcessMemory(DProc, DAdd, DByte, DLLPath.Length, DWrote)
    26. DMHD = GetModuleHandle("kernel32.dll")
    27. DAll = GetProcAddress(DMHD, "LoadLibraryA")
    28. DThe = CreateRemoteThread(DProc, 0, 0, DAll, DAdd, 0, 0)
    29. If (DThe > 0) Then
    30. WaitForSingleObject(DThe, &HFFFF)
    31. CloseHandle(DThe)
    32. Return True
    33. Else
    34. GoTo exiterror
    35. End If
    36. Else
    37. GoTo exiterror
    38. End If
    39. inject = True
    40. Exit Function
    41. exiterror:
    42. inject = False
    43. End Function
    44. Private Function StrChar(ByRef strString As String) As Byte()
    45. Dim bytTemp() As Byte
    46. Dim i As Short
    47. ReDim bytTemp(0)
    48. For i = 1 To Len(strString)
    49. If bytTemp(UBound(bytTemp)) <> 0 Then ReDim Preserve bytTemp(UBound(bytTemp) + 1)
    50. bytTemp(UBound(bytTemp)) = Asc(Mid(strString, i, 1))
    51. Next i
    52. ReDim Preserve bytTemp(UBound(bytTemp) + 1)
    53. bytTemp(UBound(bytTemp)) = 0
    54. StrChar = bytTemp
    55. End Function
    56. End Module


    Injekt code:

    VB.NET-Quellcode

    1. Try
    2. inject(TextBox1.Text, ListView1.SelectedItems.Item(0).Text)
    3. Catch ex As Exception
    4. MsgBox(ex.Message)
    5. End Try


    Es kommt kein Fehler es passiert einfach nichts!
    Und wenn ich in den Injekt code direkt alles eintrage also ohne Textbox1.text und so dann passiert auch nicht.
    Vielleicht könnt ihr mir weiter helfen.

    LG Lucas

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lucas06“ ()

    zunächst: Wie füge ich Quellcode korrekt im Forum ein?

    Hab ich jetzt bearbeitet. :)

    was steht in Textbox1 ? Ein Link? oder was ?

    Da steht die Prozess ID.

    Mach deine Veränderungen rückgängig und teste den PseudoCode nochmal. Dann kannst du Testen welche Veränderung was verändert.

    Ich habe nur das Design verändert und eine ListView lade und speicher Funktion + ListBox Suche eingebaut.
    Zu Nr2: Teste alle Version der ID(mit/ohne .exe, klein oder Groß)

    Zu Nr3: Okay und in der Listview steht der Pfad zur Lib?

    Meine Vermutung: In der Listview wird eine DLL angezeigt, jedoch wurde der Pfad zu dieser Lib nirgendswo gespeichert. Ergo kann nichts Injected werden, außer sinnloser Text. Warum keine Exception geworfen wird liegt daran, weil der Code nicht prüft ob der Pfad existiert soweit ich das sehen kann.

    Änder das mit der Listview (zu ner Textbox mit richtigen Pfad)
    Darf ich erfahren was du "injektest" ? Das würde helfen..

    Die ID ist die Prozess ID die mit der ListBox angezeigt wird. Also daran liegt das nicht.
    In der ListView steht als erstes der Pfad und in der zweiten Spalte der Name der dll.
    Wenn mann dann auf den Inject Button drückt wird die Prozess ID und der makierte Pfad genommen.
    Und wenn ich die ID und den Pfad selber reinschreibe also so:

    VB.NET-Quellcode

    1. Try
    2. inject(9032, "C:\Temp\radar.dll")
    3. Catch ex As Exception
    4. MsgBox(ex.Message)
    5. End Try


    geht das auch nicht.
    Sicher dass es die richtie ID ist ? Woher hast du diese Zahl?

    Ich glaube du hast dich 1-2 Tage mit visualstudio bzw. vb.net auseinandergesetzt und willst sofort irgendwas "cooles" programmieren. Lädst irgendeine Code aus dem Internet runter und nachdem er nicht mehr klappt, hast du null Plan was du machen musst.

    Lucas06 schrieb:

    Ich habe Visual Basic seit dem 25.03.2012 installiert

    "VisualBasic" ist die Programmiersprache. Zudem proggst du in vb.net..kleiner Unterschied. "Visual Studio" ist die Entwicklungsumgebung (IDE) ..sagte ich ja. Ich habe den Internetexplorer seit 2009 installiert.. trotzdem noch nie genutzt. Verstanden?

    Entweder injectest du, merkst es aber nicht wegen ner schrottigen DLL (was auch immer radar.dll bezwecken soll)
    Oder .. worauf ich eher Tippe: Der Code ist Müll.

    Du kannst nicht einfach irgendwelche Librarys in irgendein Prozess einbinden.. die Lib muss schon was bewirken.

    Gut ich korrigiere: Du kannst nicht programmieren und willst dass das Forum deine Arbeit macht, weil du einen Code aus dem Internet verranzt hast und nicht weiterkommst. Das ist kein Problem für was das Forum eigentlich da ist...

    Befass dich mit der Materie und versuch den Fehler zu finden. Das geht nicht von jetzt auf gleich.. oder"warte ich frag mal das Internet".

    <p>Die Lib bewirkt auch was. Wenn ich es mit einen richtigen Injector mache dann geht das auch.</p>

    <p>Ich will auch nicht das ihr meine Arbeit macht denn ich habe damit schon viel getestet was mich aber nicht weitergebracht hat.</p>
    Der hier gezeigte Code kann unter Umständen zu unerwünschten Zwecken missbraucht werden. Unabhängig von den Zielen des TE wird dieser Thread geshlossen, da hier mögliche Cheats/Gamehacks/Malware nicht unterstützt werden.


    Geschlossen.
    ~fufu