Autor |
Beitrag |
IMM0rtalis
Hält's aus hier
Beiträge: 6
|
Verfasst: Sa 18.06.11 19:32
Hallihallo,
ich habe z.B. folgenden Dateiinhalt(aus dem Editor kopiert):
Quelltext 1: 2:
| ~ ,ˆSGetNewPriceHistory‚–˜ ¹ $objectCaching.CachedMethodCallResultutcmidnight_or_3hoursversionCheckŽsessionInfoMMethod Call.proxyˆ‚–˜ ¹ µÎš;,oÁ«^\Ã-Ì<rret/yëg\Ã-ÌK#,%dbutil.CRowsetb,blue.DBRowDescriptor%,historyDate@,lowPrice, highPrice,avgPrice,volume,orders--$*ÀšªJ-Ì<×(Å3Åá ´ë7H·Z--lret<version/II¶¾À-Ìrunid |
Mein Problem ist: wie kann ich am besten ermitteln, was dort an Zahlen etc drinnesteht?! (Das Auslesen der Dateien ist legal, allerdings will der Inhaber, die CCP, die Struktur nicht veröffentlichen)..
Die Daten sind quasi als Stream gespeichert... man erkennt Strings, aber halt die Zahlenwerte nicht...  und ich brauche alles zum verarbeiten...
Was ich von euch bräuchte: Wie gehe ich am besten vor, um diese zu ermitteln?!
mfg
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Sa 18.06.11 20:07
Hallo,
also was mir aufgefallen ist ist diese Stelle:
Quelltext 1:
| historyDate@,lowPrice, highPrice,avgPrice,volume,orders-- | Sind das die Zahlenwerte, die Du benötigst?
Wenn diese Kästchen angezeigt werden, so stimmt was mit dem Encoding nicht (aber es sind doch eigentlich Zahlen!?). Es sind also Zeichen enthalten, die durch den Editor nicht angezeigt werden können. Aber das Programm, das diese Dateien interpretiert, muss ja auch diese Daten verarbeiten.
Weißt Du denn, welche Werte anstelle der Kästchen dastehen sollten? Man kann aus einer Datei oft große Schlüsse ziehen, wenn man weiß, was denn drin stehen sollte.
Also ich würde es so lösen:
- erstelle eine Datei, von der Du die Zahlenwerte weisst
- lese die Datei byteweise mit C# ein und schaue, was die Kästchen für einen Bytewert haben (bzw. die Zahl, die dort stehen sollte)
- dann weisst Du, welches Byte welche Zahl darstellt
- wiederhole die Schritte, bis Du die Bytewerte aller 10 Zahlen hast.
- und wenn Du ganz großes Pech hast, so steht irgendwo in der Datei ein Wert, mit dem die Zahlen codiert werden, und es sich also immer ändert. Aber das denke ich nicht.
- wenn Du das alles hast, so parse die Datei in C#
Soviel erstmal,
LG,
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.06.11 20:22
Trashkid2000 hat folgendes geschrieben : | Wenn diese Kästchen angezeigt werden, so stimmt was mit dem Encoding nicht (aber es sind doch eigentlich Zahlen!?). |
Naja, es wäre ja auch unlogisch, wenn eine Zahl als String in eine "Binärdatei" geschrieben wird. Da werden dann für einen Integerwert die entsprechenden 4 Bytes geschrieben und fertig.
Nimm einfach einmal einen Hexeditor wie HxD und schau dir damit die Datei richtig an.
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Sa 18.06.11 21:22
jaenicke hat folgendes geschrieben : | Naja, es wäre ja auch unlogisch, wenn eine Zahl als String in eine "Binärdatei" geschrieben wird. Da werden dann für einen Integerwert die entsprechenden 4 Bytes geschrieben und fertig. |
Das stimmt natürlich, aber trotzdem müsste doch der stinknormale Editor die Zahlen richtig anzeigen, oder nicht?
Mit einer anderen Binärdatei klappt es ja auch.
Ansonsten gebe ich Dir recht, man sollte sich die Datei mal mit einem "ordentlichen" Editor angucken.
Ich würde da z.B. als kostenlose Alternative PSPad empfehlen, den es unter www.pspad.com/de gibt.
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.06.11 21:26
Trashkid2000 hat folgendes geschrieben : | Das stimmt natürlich, aber trotzdem müsste doch der stinknormale Editor die Zahlen richtig anzeigen, oder nicht? |
Naja, woher sollte denn der Editor "wissen" welche Bytes er als Zahlen anzeigen soll und welche als Text? Ich weiß nicht wie du dir das vorstellst...
Trashkid2000 hat folgendes geschrieben : | Mit einer anderen Binärdatei klappt es ja auch. |
Mit welcher?
Schön, bringt hier nur leider rein gar nichts...
Hier brauchst du wie gesagt einen Hexeditor wie diesen:
mh-nexus.de/de/hxd/
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Sa 18.06.11 21:50
Hallo jaenicke,
muss einfach mal mein Statement dazu abgeben.
jaenicke hat folgendes geschrieben : | Trashkid2000 hat folgendes geschrieben : | Mit einer anderen Binärdatei klappt es ja auch. | Mit welcher? |
z.B. mit einer Zertifikatsdatei (*.cer), die ich gerade auf meinem Desktop gefunden habe. Und das ist ja wohl eindeutig eine Binärdatei.
Dort werden die Zahlen im "normalen" Editor so angezeigt, wie ich sie auch im Hex-Editor sehe.
jaenicke hat folgendes geschrieben : | Schön, bringt hier nur leider rein gar nichts...
Hier brauchst du wie gesagt einen Hexeditor wie diesen:
mh-nexus.de/de/hxd/ |
PSPad ist auch ein Hex-Editor. Und ein normaler Editor. Es erkennt automatisch, ob die geladene Datei eine Binärdatei ist, dann ist die Anzeige als Hex, ansonsten halt als Textdatei.
Also finde ich schon, dass er ein sehr guter (und sehr schneller) Editor ist.
Aber das ist schon OffTopic.
Wollte bloß mal klarstellen, dass ich mich schon mit der Materie auskenne, und das Ganze nicht nur aus Spekulationen schreibe...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 18.06.11 22:17
Ich bin mir trotzdem nicht sicher, ob du weißt was ich meinte. Ist aber auch egal. Weshalb ich jedenfalls HxD angesprochen habe ist, weil man dort sehr einfach in der Datei befindliche Zahlen analysieren kann. Man markiert einfach die Bytes und sieht diese rechts als Zahl:
Wobei ich in diesem Fall nicht wirklich passende Zahlen sehe.
Aber ich weiß ja auch nicht was in der Datei denn für Zahlen drin sein könnten.
Einloggen, um Attachments anzusehen!
|
|
Dr. Hallo
      
Beiträge: 110
Erhaltene Danke: 13
XP
C/C++/C#
|
Verfasst: Mo 20.06.11 00:02
Wenn die datei binär geschrieben wurde, was spricht dagen sie auch wieder binär auszulesen?
also so dachte ich ...
C#-Quelltext 1: 2: 3: 4: 5: 6:
| FileStream fs = null; BinaryReader br = null;
fs = new FileStream(spath, FileMode.Open); br = new BinaryReader(fs); ergebnis = br.ReadString(); |
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Mo 20.06.11 19:38
Was ist denn eigentlich die CCP?
Vielleicht würde man dann auch schlauer werden.
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Mo 20.06.11 20:09
Okay, hört sich ganz nach
EVE-Central an.
Falls es jemanden interessiert...
//edit: eine interessante Seite dazu muss ich noch posten (ja, voll der Freak!)
Dann warte ich, bis sich der Postersteller wieder meldet.
www.eve-search.com/t...4561/author/Illusori
Das sieht doch der geposteten Struktur verblüffend ähnlich.
|
|
|