Dll in jar injecten

Jonas Meyer

Mitglied
Kann ich eine Dll in ein Java Programm injection?
Falls das geht wie bekomme ich raus ob Java WSASend/Recv oder andere benutzt?

Was ich eigentlich vor habe ist das ich in Bot auf C++ schreiben möchte und das Spiel(Minecraft) auf Java ist. Und ich möchte hat die Tcp Protokolle modifizieren. Halt mir MS Detour.
 
Hi

a) wenn man wissen will, welche Bibliotheksfunktionen ein Programm verwendet,
ist keine DLL-Injection nötig.

b) Da es bei Java sowieso keine DLLs gibt, kann man auch keine injecten
(naja, in die JRE schon, aber sonst...).

c) Ist es für den Bot wichtig, mit welchen Socketfunktionen die Daten geschickt werden?
Meiner Meinung nach nicht. Nur die Daten sind wichtig.

d) Ms´Detours ist nicht dazu da, um TCP-Protokolle zu modifizieren
(was immer damit auch gemeint ist).
 
Ok und wie modifiziere ich denn jetzt die Tcp-Packete?
Kann ich denn die JRE mit einer Dll injecten und so die Packete modifizieren?
Mit Detours kann man doch eine Jump zu meiner Funktion machen und einen modifizierten Rückgabe wert geben oder hab ich da was falsch verstanden?

Zu e:
Wie das kostet Geld?
 
Ah, da gibts ja auch noch die Expressversion.
Sorry, mein Fehler, Punkt e entfernt :)

Zum Problem:
Unabhängig, was Detours kann oder nicht, es ist auf jeden Fall für native Programme.
Exe und Dll, in Sprachen wie C/C++ geschrieben.
Java ist da leider anders:
Ein eigenes Programmdateiformat, das mit dem von Exe überhaupt nicht zusammenpast,
und "echte" Hilfsprogramme, die die Javaprogramme in computerverständliche Sachen übersetzen (die Hilfsprogramme sind download- und installierbar)

Hat auch verschiedene Vorteile, aber für das hier...
mit nativem Injecten etc. kommst du nur in die Hilfsprogramme.
Lesen aus dem Javaprogramm aus "Sende" und rufen irgendeine Socket-Sendefunktion auf.
Es wäre zwar schon möglich, nur darüber alles zu machen,
 
Hallo Jonas Meyer

Wenn es dir nur um den Netzverkehr geht ist vermutlich pcap etwas für dich. (wobei ich gerade lese, dass du nur mithören kannst, modifizieren hat man weggelassen)

Bezüglich dll injection und java:
Du injizierst die DLL nicht in das Programm selber sondern halt in die java virtual machine dir für das Programm erstellt wird. Darin kannst du dann wiederum tun und lassen was du willst, API-Funktionen kannst du problemlos umleiten sofern diese denn von der JVM verwendet werden. Wichtig ist einfach anzumerken dass du nichts mit dem Javacode zu tun hast sondern mit der Implementation der JVM.

Grüsse
Cromon
 
Zurück