2016-04-17 6 views
0

Ich bin mir eigentlich nicht sicher, ob es überhaupt möglich ist, andere Anwendungen dazu zu bringen, eine Datei aus dem Java-Prozess zu lesen, die die benötigten Bytes zurückgibt, anstatt die Datei zu lesen von der Festplatte, also zuerst diese Information kann hilfreich sein.andere apps zwingen, eine Datei aus einem Java-Prozess zu lesen

auch können Sie die zwingende Idee ignorieren! Kann ich andere Anwendungen aus meiner Java-Anwendung öffnen, zum Beispiel Adobe Acrobat Reader und injizieren Bytes, anstatt es einzeln zu öffnen und eine PDF-Datei damit zu lesen?

wenn es möglich ist, kann jemand erklären, wie? Ich habe zu viel im Internet gesucht und ich habe keine Antwort gefunden.

Vielleicht möchten Sie auch wissen, dass meine Idee ist, eine verschlüsselte Datei im Speicher zu entschlüsseln und eine andere Anwendung entschlüsselte Bytes aus meiner eigenen App verwenden zu lassen, anstatt die entschlüsselte Datei von der Festplatte zu lesen (die wiederhergestellt werden kann!)

+0

Sie können ein anderes Programm in Ihrem Programm ausführen und das erforderliche Argument oder die Eingabe eingeben. Aber ich bin mir nicht sicher, ob ich dich durch "Zwingen" verstanden habe? –

+0

@AliSeyedi Ich habe meine Frage bearbeitet. Dies ist hilfreich, Wie kann ich es tun? –

Antwort

1

Ein interessantes Konzept, aber ich fürchte, die Antwort wäre nein. Dies würde eine ganze Dose Würmer öffnen, der Stream, den Sie für die andere Anwendung bereitstellen, wäre nicht wirklich eine Datei auf der Festplatte, und das würde von der anderen Anwendung angenommen werden. Selbst wenn Sie die Rohdaten irgendwie als etwas weitergeben könnten, das die andere Anwendung lesen könnte (obwohl Sie normalerweise nur den Pfad in eine Datei übergeben könnten, und die Anwendung würde sie selbst öffnen), was würde passieren, wenn diese Anwendung versucht würde schreib es an? Es müsste den Speicher Ihrer Java-Anwendung ändern. Ich bin sicher, dass Sie die Auswirkungen davon sehen können.

Eine Möglichkeit, dies zu tun, besteht darin, ein verschlüsseltes Volume zu erstellen, das vom Betriebssystem gemountet wird (z. B. was TrueCrypt tut) und Ihre Daten dort als Datei zu speichern, damit die andere Anwendung nur Ihren Stream verarbeiten kann echte Datei. Auf diese Weise würden Sie die andere Anwendung völlig vergessen, dass Sie nur einen Stream präsentieren. Ihre Anwendung wird über Änderungen am bereitgestellten Volume oder an der Datei informiert und kann entsprechend darauf reagieren. Dies alles wäre jedoch alles andere als trivial.

+0

Nun, Sie haben Recht, ich denke, sogar gute Antiviren sollten meine App stoppen. und sicher dachte ich daran, ihnen keine Schreibrechte zu geben. aber das Problem ist immer noch da. Nun, ich habe meine eigene Encrypting Java App implementiert, kann die Erstellung verschlüsselter Lautstärke mir immer noch helfen? Kann ich es mit Java machen? (eine kleine Suche zeigt mir, dass es möglich sein könnte) –

+0

Ich bin mir sicher, dass es mit Java möglich ist, aber es wäre nicht einfach. Der TrueCrypt-Quellcode ist Opensource. Sie können sich das ansehen, wenn Sie es ausprobieren möchten. Btw wenn das hilfreich war, bitte upvote oder akzeptiere meine Antwort :) –

+0

Ich habe diese Antwort bereits upovoted. Was ist deine Vorstellung von virtuellen Dateien? –

0

Es scheint mir, dass Sie Ihre entschlüsselten Daten auf der Festplatte ruhen lassen und diese Daten mit jDelete oder Turbo Shredder vernichten können, ohne Anti-Virus-Probleme.

+0

Nun, ich lese viel darüber! Es ist zu riskant, irgendwelche Daten unverschlüsselt auf den Datenträger zu legen und sich auf eine Shredder- oder Festplatten-Cleaner-Anwendung zu verlassen, um sie vollständig zu entfernen. Es könnte immer noch möglich sein, es wiederherzustellen. Bessere Lösungen ist es, es von RAM oder verschlüsselten Volume oder Dateisystem zu öffnen! Wie auch immer, ich konnte keine Datei-Shredder-Quelle für Java finden, aber diese Idee hilft mir, ich könnte meine eigene schreiben, was immer noch riskant ist! –

+0

@SepehrGH Ich weiß sehr wenig über Ihre Anforderungen, wie viel Risiko oder warum Sie es für allgemeine Zwecke benötigen. Aber werfen Sie einen Blick auf diese Antwort, die erklärt, warum Shreddern nicht so schwierig oder riskant ist und Sie es selbst implementieren oder auf verfügbare Tools zurückgreifen können. http://stackoverflow.com/a/1046697/2123877 –

+0

Und Turbo Shredder src Dateien sind von [hier] (https://sourceforge.net/projects/turboshredder/files/src/) zugänglich. –