Das klingt vielleicht nach einer lächerlichen Frage, aber ich muss es fragen, weil ich ein funktionierendes Produkt habe, das das tut.Auf die Interna eines laufenden Applets zugreifen
Ich habe ein Applet in einem Browser ausgeführt. Dieses Applet ist nicht irgendein Applet, sondern eine ziemlich komplexe Paketanwendung für CRM/ERP. Ich wurde von einer Herstellerfirma informiert, dass sie in der Lage sind, zu überwachen, was ein Benutzer innerhalb des Applets tut, indem er die Hauptklasse des Applets zur Laufzeit vor dem Start durch ihre eigene ersetzt. Der verwendete Begriff war "befürworten".
Ich bin jetzt ein bisschen ahnungslos. Wie können Sie in ein Applet schauen und auf Benutzerklicks und Tastaturereignisse lauschen, selbst wenn Sie sich irgendwie hineinhacken könnten? Ich kann Ihnen sagen, dass dies eine wahre Geschichte ist, weil ich die Anwendung dieses Anbieters gesehen habe und sie nur im Hintergrund sitzt und alle kontextuellen Informationen aufzeichnet (z. B. Benutzer füllte die Textbox im Applet, den Namen der Textbox und etc).
Sind sie irgendwelche Hacks auf Classloading-Ebene (ich fühle mich dumm, das zu fragen), oder etwas anderes, das ich nicht in Java gefunden habe, das dich etwas 'urban legendär' so machen lässt?
Ich habe ein bisschen Forschung zu diesem Thema. Es sieht so aus, als könnte man seine eigene Implementierung für standardisierte Bibliotheken schreiben und sie in den empfohlenen Lib-Ordner für die JRE setzen, um Standard-JDK-Bibliotheken wie jax-ws, jaxp usw. zu überschreiben. Nun, im Kontext meiner Frage kann ich nicht verstehen, wie eine der standardisierten Bibliotheken verwendet werden kann, um zu beobachten, was in einem Applet vor sich geht. Nehmen wir zum Beispiel an, ich würde meine eigenen jax-ws schreiben, um alle Netzwerknachrichten zu protokollieren. Dies wird mir nicht helfen, da das ERP Verschlüsselung und ein benutzerdefiniertes Protokoll über HTTP und nicht SOAP verwendet. – Jay
Was ist, wenn sie nur die Swing-Bibliothek ersetzen? – tak3shi
im jre? ok, du meinst wie benutze java code base, schreibe ihren eigenen code, kompiliere und ersetze den jre? - Ich denke, das ist ein langer Schuss. Plausibel, aber angesichts der Größe dieser Aufgabe glaube ich nicht, dass sie es so machen. – Jay