.dat auslesen Inhalt unbekannt



  • Weiss ich nicht genau. Glaub fürs deinstallieren von einem Programm. Wie gesagt, es geht mir eher um eine Vorgehensweise im allgemeinen als um eine spezielle Datei.



  • @Gast : Danke, sehr ausführlich. Das hat mich inzeressiert.

    Noch eine allgemeine Frage... Ich mach nur hobby kleine programme und hab es noch nie gebraucht : Für was für Anwendungen braucht man es im oraxisleben, eine Datei binär zu öffnen oder was binary zu schreiben? Ios_base::binary ist mir irgendwie suspekt...



  • Praxisleben sollte das heissen



  • ios_base::binary:
    http://en.cppreference.com/w/cpp/io/c#Binary_and_text_modes

    In kurz: In einigen Betriebssystemen (z.B. Windows) ist das Zeilenende durch \r\n dargestellt.
    Wenn du eine Datei im Testmodus oeffnest und etwas daraus liest, wir \r\n "automatisch" zu \n (in deinem Programm). Du liest also einfach ein endline.

    Wenn du aber tatsaechlich jedes einzelne Zeichen genau lesen moechtest, ohne automatische Umwandlungen zu haben, musst du die Datei eben im Binaermodus oeffnen. Hier gibt es keine Interpretation ueber den Inhalt der Datei.



  • ich glaube dir fehlt noch sehr viel Erfahrung - wenn diese Vorhanden wäre würdes du völlig andere Fragen stellen

    aber du scheinst tatsächlich google nicht wirklich zu nutzen (womit du schon mal zeigst das du schon per se nicht alle Informatsquelle nutzt - was ein grosses Manko bei Dateianalyse wäre)

    http://www.iwriteiam.nl/Ha_HTCABFF.html
    http://en.wikibooks.org/wiki/Reverse_Engineering/File_Formats
    http://www.zachtronics.com/yoda-stories/
    http://www.rumint.org/gregconti/publications/2008_VizSEC_FileVisualization_v53_final.pdf

    solltest du Probleme mit Englisch haben wird es auch schwer, es gibt fast nur Infos in der Sprache

    Dateiformat ReverseEngineering ist eine der Königsdisziplinen der Softwareentwicklung/Analyse - da geht man nicht einfach so ran ohne mehrjährige Erfahrung in der Softwareentwicklung - am besten mit Expertenwissen in C/C++ und Assembler

    eine Datei zu analysieren kann Wochen oder Monate dauern - das ist definitiv keine Sache von Tagen - hoechstens das Format ist total trivial



  • dat_frage schrieb:

    Für was für Anwendungen braucht man es im praxisleben, eine Datei binär zu öffnen oder was binary zu schreiben? Ios_base::binary ist mir irgendwie suspekt...

    Gibt viele Anwendungen dafür.
    Viele weitverbreitete File-Formate sind einfach binär. Ich würde sogar sagen: die meisten. Mach z.B. mal ein Bild in einem Format deiner Wahl in Notepad oder einem Hex-Editor auf. Das einzige bekannte Bildformat, das mir gerade einfällt, das textbasiert ist, ist SVG. Dagegen BMP, JPEG, PNG, TIFF, TGA - alles binär.

    Textbasierte Formate sind in letzter Zeit, wo RAM und Festspeicher sehr billig geworden sind, wieder in Mode gekommen. Davor waren auch die gängigen Formate für z.B. Office-Dokumente binär.
    Bzw. sind sie eigentlich sogar heute noch, da es primär mal .zip Archive sind, und .zip Archive sind auch Binärfiles.
    (Erst in den entpackten .zip Archiven drinnen findet man dann bei den neueren Office-Formaten XML Files.)

    Binärfiles haben u.A. die Vorteile dass sie kompakt sind (weniger Speicherplatz brauchen) und mit Programmen sehr einfach zu lesen und schreiben sind. Sogar dass sie von Menschen ohne die passenden Programme schwer zu lesen/modifizieren sind kann ein Vorteil sein.
    Und wenn diese Punkte wichtig sind, nimmt man halt ein binäres Format.



  • Du kannst im ersten Versuch mal gucken, ob du sowas wie eine Kennung am Anfang der Datei findest. View Formate benutzen eine Kennung, die das Dateiformat bezeichnet, manchmal steht sie als ASCII oder 2/4/8 Byte Folge zu Beginn der Datei. Und dann könntest du danach suchen, ob sich im Netzt eine Formatbeschreibung findet.



  • Also die Datei an sich ist mir eigentlich egal, mir gehts eher um die vorgehensweise usw
    ...
    Danke, sehr ausführlich. Das hat mich inzeressiert.
    ...
    Für was für Anwendungen braucht man es im oraxisleben, eine Datei binär zu öffnen oder was binary zu schreiben

    er will gar kein Format entschüsseln - nur verstehen wie ma sowas macht und unsere Posts + Links erklären das wirklich zu genüge, aber auf seiner Seite fehlt wirklich noch viel zu viel Praxiswissen



  • Richtig, da fehlt Praxiswissen. Wird aber auch nicht kommen, da ich wie gesagt nur als Hobby bisschen programmiere, aber ich wollte einfach mal von den Profis wissen, wie man "theoretisch" an sowas rangeht.



  • DocShoe schrieb:

    Du kannst im ersten Versuch mal gucken, ob du sowas wie eine Kennung am Anfang der Datei findest. View Formate benutzen eine Kennung, die das Dateiformat bezeichnet, manchmal steht sie als ASCII oder 2/4/8 Byte Folge zu Beginn der Datei. Und dann könntest du danach suchen, ob sich im Netzt eine Formatbeschreibung findet.

    Wobei noch dazuzusagen wäre dass das alles nur Heuristiken sind. (Wobei ich mit "das" meine: das was Programme machen die verschiedenste File-Formate aufmachen bzw. identifizieren können ohne sich auf die Extension zu verlassen.)
    Für jedes Dateiformat das eine Kennung an Stelle X stehen hat, gibt es Dateiformate die dort "Nutzdaten" stehen haben -- und diese Nutzdaten können durch Zufall auch jede beliebige Kennung enthalten.
    D.h. nur weil etwas mit "BM" anfängt muss es kein .BMP File sein, nur weil etwas mit "MZ" anfängt kein .EXE/.DLL File etc.


Anmelden zum Antworten