Programm befehlen Informationen Preis zu geben?

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Programm befehlen Informationen Preis zu geben?

    Guten Abend zusammen, ich habe eine verrückte Idee, dafür muss mein Tool aber auch verrücktes können,
    ich glaube zwar nicht das dies unter dem Net Framework ohne weiteres möglich ist, aber ich kann ja mal schauen, vielleicht wisst ihr was.

    Also, ich habe ein Programm welches auf eine Datei zugreift, eine einfache Text Datei.
    Nun soll das nicht jeder lesen können, also habe ich mir gedacht das ganze zu verschlüsseln.
    klappt auch alles wunderbar, doch das Programm was drauf zugreift weiß nicht das es verschlüsselt ist...

    Nun kommt Tool 2, es soll entschlüsseln und diesen Text Freistellen (als String senden, oder ähnliches)
    vielleicht über die Commando Zeile.
    Weiß jemand ob man das über das Netframework hinbekommen könnte?
    Die exe soll sich praktisch auslesen lassen wie eine Textdatei, doch das Fremde Programm kann ich leider nicht beeinflussen.

    Vielen Dank!
    LG.L
    @bla
    Es geht mir darum das die exe so gesehen meinen String so ausgibt als würde das unabhängige Tool denken es sei eine Textdatei.

    @FlashTek
    hätte ich mir eigentlich schon ausmalen können, aber danke für die Bestätigung ^^
    @ bla

    Ich denke Du verstehst das Problem falsch.

    Die Text-Datei ist und soll auch verschlüsselt bleiben. Das zugreifende Programm kann daher zwar auf die Datei zugreifen aber mit dem Inhalt nichts anfangen.

    Daher war nun die Frage ob es möglich wäre dem zugreifenden Programm beim Zugriff direkt eine EXE als Text-Datei unterzuschieben und die EXE wirft dann den Text zurück. Die EXE hat dabei die Funktion den verschlüsselten Text zurück in Klartext zu verwandeln, aber nur für den Zugriff durch dieses Programm.

    Gruß

    Rainer

    raist10 schrieb:

    Daher war nun die Frage ob es möglich wäre dem zugreifenden Programm beim Zugriff direkt eine EXE als Text-Datei unterzuschieben und die EXE wirft dann den Text zurück.
    Das ist so ziemlich genau das, was Programme wie Truecrypt machen.
    Die hängen sich als Treiber tief ins Filesystem rein und ver-/entschlüsseln unmittelbar vor dem Schreiben / nach dem Lesen, so dass für die darüberliegenden Benutzerprogramme die Sache transparent erscheint, auf der Platte aber der verschlüsselte Inhalt liegt.

    So etwas selbst zu schreiben, ist nicht trivial.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @raist10
    Hast meine Gedanken gelesen ;) super formuliert.
    Genau sowas hab ich vor.


    ---
    Nur es das Problem ist das ich der anderen Anwendung welche die txt Datei ließt nicht befehlen kann Daten aufzuschnappen.
    Die hat jemand anderes Programmiert und vermutlich in c++.
    Deshalb muss ich die Text Datei praktisch (Emulieren) damit die C++ Anwendung denkt es sei eine text Datei.

    Und es soll halt wie raist10 gesagt hat alles verschlüsselt bleiben (im Haupt Ordner etc.)
    LG.L
    Deshalb muss ich die Text Datei praktisch (Emulieren) damit die C++ Anwendung denkt es sei eine text Datei.

    Aber wenn jetzt das beliebige Programm, sagen wir z.B. Notepad, daher kommt und versucht die Datei zu lesen, tut es dies ja nicht auf eigenem Weg. Die Funktionen zum Prüfen, ob es die Datei gibt, über das Aufrufen der Position der Daten auf dem Speichermedium bishin zur Übermittlung der Daten an das Programm as sie angefordert hat werden WinAPI- und Kernel- Funktionen genutzt.

    An einer dieser Stellen müsstest du dich einklinken. Du müsstest die Standart-Funktion zum Abrufen von Informations-Streams von einem Speichermedium durch eine eigene (manipulierte) Funktion ersetzen, die zuerst Prüft ob der übergebene Dateipfad auf dein Text-File verweist, und dann entscheiden ob das Entschlüsselungs-Tool angeworfen wird oder der Standart-Weg über API und Kernel beschritten werden soll.

    Allgemein ähnelt diese Vorgehensweise stark der eines Rootkits.
    ( ↓ guter Beitrag von SemperVideo dazu ↓ )



    Ich schätze mal das ist mit realistischem Aufwand wird das nicht zu realisieren sein (erst recht nicht mit .NET), aber selbst wenn dir das gelingt wirst du in Sekundenbruchteilen von jedem besseren Anti-Malware-Tool (insbesondere Anti-Rootkit-Tool) gefressen.
    Ok, sowas muss man erstmal bauen.
    Dann schlägt das Anti Virentool an, was will ich damit erreichen, den Schutz meiner eigenen Daten...
    Ich glaube da muss ich mir was anderes ausdenken.

    Ich suche mir einfach eine simplere Methode.
    Ist aber schwer einen bestimmten Text zu verstecken, der dann doch offen gelegt werden muss...
    das auslesen aus dem RAM wäre doch überhaupt nicht erforderlich :D

    so wie er das bisher angedeutet hat, gibt man einmal als authentifizierung, oder wenn man als anwender von einer sicheren umgebung ausgehen kann, in das entschlüsselungs-toll das passwort ein und danach wird jeder lesezugriff auf die datei entschlüsselt. :thumbup:

    warum sollte man sich also die mühe machen, aus einem RAM-abbild einen string heraus zuhacken wenn man die datei auch direkt mit notepad oder einem eigenen programm öffnen könnte? ^^
    Ich denke mal, das Problem ist lösbar über einen "File System Filter Driver".
    Info:
    msdn.microsoft.com/en-us/windows/hardware/gg462968

    Der Treiber muss so geschrieben werden, dass er zunächst prüft, ob er eine von dir verschlüsselte Datei öffnet.
    Falls ja, prüft er, ob das passende Passwort bereits vorhanden ist.
    Wenn das Passwort korrekt ist, reicht er die entschlüsselte Datei weiter.

    In allen anderen Fällen reicht er die Datei unbehandelt durch.

    Ich habe das noch nie getestet, aber es klingt wie eine interessante Herausforderung.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --