Hallo alle Java freaks!
Ich habe im Moment die Aufgabe für meine Firma einen Java Client zu schreiben. Die Aufgaben des Clients sind dabei erstmal nebensächlich. Für mein Problem ist folgendes von Bedeutung.
1. Ich muss eine Dll von unserem Webserver in eine Art Bytearray laden. In C++ gäbe es da die Möglichkeit über UrlOpenBlockingStream. Aber in Java?
2. Als nächstes muss diese Dll encrypted werden. Deswegen ist es von nöten ein Bytearray an der Hand zu haben. Die Verschlüsselung beruht auf eine simple Xor Verknüpfung anhand eines Keys der der Länge der Dll entspricht. Die Dll soll dabei niemals hart auf dem Rechner des Benutzers liegen!
3. Als finalen Schritt, muss dieses Bytearray nun in einen anderen Prozess gemappt werden und dessen DllMain aufgerufen werden. Ich glaube das wird in Java nicht gehen. Eventuell über JNI und einer C-Library? Dort treffe ich dann sicherlich auf Probleme die DllMain auszuführen. Müssen doch "Relocations" durchgeführt werden oder nicht? Eventuell sollte man die Dll erst im Stub encrypten?
Wie ihr schon seht. Die Sicherheit der C++-Dll hat oberste Priorität. Eventuell fallen auch andere Möglichkeiten ein, diese ohne Manual Mapping sicher in den Hostprozess zu laden.
Gruß an alle Tüftler. Ich hoffe ich stoße auf einige kreative Ideen, da mir das Gesamtkonzept nocht nicht ganz klar ist.
Frank
Die sicherhei
Ich habe im Moment die Aufgabe für meine Firma einen Java Client zu schreiben. Die Aufgaben des Clients sind dabei erstmal nebensächlich. Für mein Problem ist folgendes von Bedeutung.
1. Ich muss eine Dll von unserem Webserver in eine Art Bytearray laden. In C++ gäbe es da die Möglichkeit über UrlOpenBlockingStream. Aber in Java?
2. Als nächstes muss diese Dll encrypted werden. Deswegen ist es von nöten ein Bytearray an der Hand zu haben. Die Verschlüsselung beruht auf eine simple Xor Verknüpfung anhand eines Keys der der Länge der Dll entspricht. Die Dll soll dabei niemals hart auf dem Rechner des Benutzers liegen!
3. Als finalen Schritt, muss dieses Bytearray nun in einen anderen Prozess gemappt werden und dessen DllMain aufgerufen werden. Ich glaube das wird in Java nicht gehen. Eventuell über JNI und einer C-Library? Dort treffe ich dann sicherlich auf Probleme die DllMain auszuführen. Müssen doch "Relocations" durchgeführt werden oder nicht? Eventuell sollte man die Dll erst im Stub encrypten?
Wie ihr schon seht. Die Sicherheit der C++-Dll hat oberste Priorität. Eventuell fallen auch andere Möglichkeiten ein, diese ohne Manual Mapping sicher in den Hostprozess zu laden.
Gruß an alle Tüftler. Ich hoffe ich stoße auf einige kreative Ideen, da mir das Gesamtkonzept nocht nicht ganz klar ist.
Frank
Die sicherhei