| Autor | Beitrag | 
| Christoph1972 
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Mi 13.08.14 20:59 
 
Hallo Leute,
 ich würde gerne eure Meinung hören. Und zwar habe ich eine Binärdatei von einer Messegerätesoftware. In dieser Datei sollen Laut Internet X Y Koordinaten stehen mit denen ein Chart gezeichnet wird. Dieses Chart möchte ich nun gerne in einem Programm von mir zeichnen, dazu muss ich diese Datei auslesen und genau dass ist das Problem. Dieses Vorhaben hatten auch schon andere User im Internet, eine Lösung wurde bisher nicht präsentiert. Es gibt jedoch einige Firmen die Editoren für genau diese Datei anbieten, die haben es irgendwie geschafft die Struktur der Datei aufzuklären. Ein Open Source Projekt gibt es auch, aber genau dieser Teil ist nicht frei    Es ist gut möglich, das diese Datei mit .Net erzeugt wird, da es ein .Net Programm ist. Es ist aber auch möglich, das der Programmabschnitt noch eine Altlast aus den Zeit vor .Net ist. Das Programm ist an sich recht alt und wurde vor ein paar Jahren auf .Net umgestellt.
 Was meint ihr, besteht eine realistische Möglichkeit die Point Liste aus der Datei zu extrahieren?_________________ Gruß
 Christoph
 | 
|  | 
| Ralf Jansen 
          Beiträge: 4708
 Erhaltene Danke: 991
 
 
 VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
 
 | 
Verfasst: Mi 13.08.14 21:13 
 
	  | Zitat: |  	  | Was meint ihr, besteht eine realistische Möglichkeit die Point Liste aus der Datei zu extrahieren? | 
 Wenn du weißt was für Daten drin abgelegt sind klar. Du hast dann genug Anhaltpunkte nach denen man die Datei untersuchen kann. Ob dann letztlich das Reverse Enginnering einfach, schwer oder unmöglich ist weißt du erst nachher. Aber die Grundlage mit der du arbeiten kannst ist zumindest gegeben. | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Mi 13.08.14 21:24 
 
	  |  Ralf Jansen hat folgendes geschrieben  : |  	  | Du hast dann genug Anhaltpunkte nach denen man die Datei untersuchen kann. | 
 Ich habe mir die Datei mit einem Hex Editor angschaut, das hat mich aber nicht schlauer gemacht....
 Wie geht man die Sache üblicherweise an? Das ist leider absolutes Neuland für mich._________________ Gruß
 Christoph
 | 
|  | 
| ub60 
          Beiträge: 764
 Erhaltene Danke: 127
 
 
 
 
 | 
Verfasst: Mi 13.08.14 21:57 
 
Hier mal einige Möglichkeiten:
 Nach Möglichkeit einen der beiden oder beide Werte konstant halten.
Anschließend mehrfach auftauchende Byte-Folgen im Hex-Code suchen.
Unbedingt einige Werte aus der Messreihe aufschreiben.
Diese Werte in Byte, Word, Integer, Single, Double, ... unwandeln und die entstehenden Bytefolgen im Hex-Code suchen.
 ub60 | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Do 14.08.14 06:00 
 
[quote="[user]Christoph1972[/user]"(688536)] 	  |  ub60 hat folgendes geschrieben  : |  	  | 
 Nach Möglichkeit einen der beiden oder beide Werte konstant halten.
Anschließend mehrfach auftauchende Byte-Folgen im Hex-Code suchen.
Unbedingt einige Werte aus der Messreihe aufschreiben.
Diese Werte in Byte, Word, Integer, Single, Double, ... unwandeln und die entstehenden Bytefolgen im Hex-Code suchen.
 ub60
 | 
 Ich hatte bereits nach Werten mit dem Hex Editor gesucht, leider ohne Treffer. Ich vermute das könnte an berechneten Werten liegen. Ich werde das heute noch mal angehen. Vielen Dank schon mal so weit!_________________ Gruß
 Christoph
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Do 14.08.14 06:46 
 
Man sollte auch ausprobieren, ob die Werte im Little- oder Big-Endian-Format gespeichert werden. _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| Nersgatt 
          Beiträge: 1581
 Erhaltene Danke: 279
 
 
 Delphi 10 Seattle Prof.
 
 | 
Verfasst: Do 14.08.14 06:58 
 
Stell die Datei hier ins Forum und formuliere irgend eine obskure Geschichte um die Datei, in dem Wichtel und Weihnachtsmänner vorkommen. Dann ist das Format in 1-2 Tagen geknackt...   _________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi) Für diesen Beitrag haben gedankt: bole, Christian S., FinnO, Martok, Tastaro, ub60, Xion
 | 
|  | 
| Horst_H 
          Beiträge: 1654
 Erhaltene Danke: 244
 
 WIN10,PuppyLinux
 FreePascal,Lazarus
 
 | 
Verfasst: Do 14.08.14 08:45 
 
Hallo,
 dann schreibe Dir doch einen eigenen Datendeuter.
 In dem Du Daten bei x und x+Offset anzeigen lässt:
 Vertikale Memo links die Daten ab einem verschieblichem StartWert rechts ab StartWert+verschieblichem Offset.( eventuell bei Startwert +2xOffset )
 In den Memos alle Varianten an Ausgaben, die Dir einfallen ,
  jeweils little und big endian
 Byte integer Word ,longint,long Word Int64  Double extended ,TdateTime
 Dann als zum Beispiel 16 Byte als HEX -Werte
 und 16 Byte als Char oder unicode ( Schreibt ein Messgerät Texte außer im Header ?? )
 Das müßte doch fix gehen.
 Aber   Nersgatt  hat recht, eine typische Wichtelmann-Frage     Gruß Horst | 
|  | 
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Do 14.08.14 15:55 
 
Du könntest ja auch so mal eine Datei posten    Am Besten irgendwas mit bekannten Messwerten, 0 oder so._________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Do 14.08.14 16:04 
 
	  |  Martok hat folgendes geschrieben  : |  	  | Du könntest ja auch so mal eine Datei posten   
 Am Besten irgendwas mit bekannten Messwerten, 0 oder so.
 | 
 Hi Leute,
 hier ist schon mal die Datei. Messwerte kann ich erst morgen nachliefern.
Einloggen, um Attachments anzusehen!
 
_________________ Gruß
 Christoph
 | 
|  | 
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Do 14.08.14 19:02 
 
Ist das ein Agilent Format? | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Do 14.08.14 19:06 
 
Ja _________________ Gruß
 Christoph
 | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Do 14.08.14 19:27 
 
Bei den Werten würde Little Endian am besten passen, die Werte liegen immer um die 7.5, eigentlich sollte sie um die 10 sein. Ist aber gut möglich das da ein Faktor herangezogen wird. Die 7.5er würden gut als Y-Wert passen. Igrendie sind das aber alles Zahlen im selben Bereich, das passt nicht zu den X-Werten..... 
 Eine interessante Geschichte jedenfalls    Vielen Dank schon mal für eure Unterstützung!_________________ Gruß
 Christoph
 | 
|  | 
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Do 14.08.14 20:06 
 
Also angeblich sollte aus dem Gerät CDF/AIA rausfallen, das ist das aber nicht.
 Bei den Werten würde ich ja auf IBM-Double tippen, da kommt man schon in die richtige Ecke (falls noch irgendwo ein Exponent abhanden gekommen ist...)
 _________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 | 
|  | 
| GuaAck 
          Beiträge: 378
 Erhaltene Danke: 32
 
 Windows 8.1
 Delphi 10.4 Comm. Edition
 
 | 
Verfasst: Do 14.08.14 20:26 
 
Hallo,
 die Datei scheint von einem HP Agilent Gaschromatografen zu stammen. Evtl. gibt es da eine Doku.
 Ab $1800 sind ist die Datenreihe, m.E. little Endien, IEEE single (32 Bit) Gleitpunkt, auf 64 bit Grenze. Dann ist das eine Zahlenreihe mit Werten zwischen 7.5 und 9. Bei jeder anderen Interpretation kommen merkwürdige Zahlen raus. 
 Sie Dir mal "Tiny Hexer" (www.mirkes.de)  das, das kleine Tool zeigt die Daten in einem wählbaren Format an.
 Gruß GuaAck | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Do 14.08.14 21:28 
 
	  |  GuaAck hat folgendes geschrieben  : |  	  | die Datei scheint von einem HP Agilent Gaschromatografen zu stammen. Evtl. gibt es da eine Doku. | 
 Ja genau da kommt die Datei her. Eine Doku gibt es wohl nicht, im Internet habe ich nichts gefunden, auch keine Macros mit denen ich mir helfen könnte, und in unseren Dokus steht auch nichts....
 Die Werte mit 7.5 könnten die Basislinie bilden, die liegt ungefähr bei 10, ist somit nicht abwägig... 
 Das Tool werde ich mir morgen mal anschauen!_________________ Gruß
 Christoph
 | 
|  | 
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Fr 15.08.14 01:28 
 
Stimmt, ihr habt Recht, das war ein Fall von Overthinking bei mir    Die Daten haben trotz Double als Datentyp keine Kommastellen, sondern einen festen Faktor 1E5. Die Detektionsachse(Zeit oder Retentionsfaktor müsstest noch rausbekommen) dürfte fest skaliert sein, das kann dann ja nur eine der Werte davor sein.
   Der zweite Peak ist bei {5516,5014017}.
 Was sehen wir da eigentlich? Spektrometer könnt ich sogar was raten, aber Chromatographie braucht man mit Metallen so selten..._________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Fr 15.08.14 05:46 
 
Wow, das ging aber schnell! Scheinbar habe ich hier bei dem einen oder anderen schlaflose Nächte angezettelt     Was man da sieht ist ein Lösemittelgemisch, ein Benzin dürfte auch enthalten sein.
 Hast Du das als Text eingelesen und die Werte gesplittet? Das habe ich gestern versucht, das passte leider noch nicht._________________ Gruß
 Christoph
 | 
|  | 
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Fr 15.08.14 14:15 
 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 | 
|  | 
| Christoph1972  
          Beiträge: 690
 Erhaltene Danke: 16
 
 
 VS2015 Pro / C# & VB.Net
 
 | 
Verfasst: Fr 15.08.14 19:42 
 
Also, ich habe heute "fast" den ganzen Tag versucht die Datenreihe einzulesen. (Ich habe das mit .Net File.ReadAllBytes(File) gemacht) Was ich da einlese macht bisher keinen Sinn. Hier ist jetzt schon 2* $1800 gefallen, wo habt ihr das her? Das sehe ich weder in meinem Hex Editor, noch in meinem Stream. Da ich keinen gescheiten Entry Point gefunden habe, habe ich den Stream von hinten nach vorne gelesen und dann umgekehrt. Die Byte Arrays habe ich mit der BitConverter.ToSingle(Array, 0) Methode in Double umgewandelt. Da kommen dann die Werte raus die ich mit dieser Website (www.scadacore.com/fi...-hex-converter.html)  ermittelt habe (zumindest die ersten und letzten Werte der Datenreihe stimmen).
 Ich vermute das beim einlesen der Daten etwas durcheinander gerät....
 Die Datenreihen setzen sich ja aus vierer Reihen zusammen. Gibt es dafür fertige Methoden zum lesen?_________________ Gruß
 Christoph
 | 
|  |