Datenbank-Typ unbekannt?

DB_Amateur

Neuer Benutzer
Beiträge
4
Guten Tag liebe Community,

ich habe angefangen mich mit einem Kumpel im Bereich Privatserver für Spiele zu begeben. Wir haben das Game auch soweit aufgesetzt und alles klappt wunderbar, bis auf eine Sache. Wir können in dem Spiel essenzielle Daten nicht ändern. Sowas wie Gegenstand-Drop-Tables oder ganze Gesprächsoptionen der NSC.... Rausgefunden haben wir soweit, dass einige der .db Dateien die wir haben nicht mehr in eine Editierbare SQL-Tabelle rückzuführen sind, zumindest wissen wir nicht mit welchem Tool diese konvertiert wurden.

Demnach die Frage an euch, kann sich einer das mal anschauen und mir da einen Tipp/Rat geben in welche Richtung sich das alles begibt? Da mein Kollege und ich im Thema Reverse-Engineering Laien sind benötigen wir da Hilfe.

Die Entwicklung des ehemaligen Offiziellen Spieles (leider seit über 4 Jahren bereits offline) begann Schätzungsweise gegen 2007 - 2009.
Ich habe da mal eine .db verpackt für die die es mal ausprobieren möchten.

Ich bin für Tipps und Ratschläge offen! Ich danke allen die sich die Mühe machen schon mal im Vorfeld! :)
 

Anhänge

  • prostone.zip
    9,2 KB · Aufrufe: 6
Werbung:
Also die Datei hat zwar eine Endung .db aber das ist dann auch erstmal alles, was einen Bezug zu Datenbanken herstellt. Die Datei ist nicht mit einem Editor lesbar, was ja bei Progam-Dateien jetzt nicht ungewöhnlich ist.

Ich kann da keinen Zusammenhang mit SQL ableiten, SQL ist ja eine Sprache um mit DBMSystemen zu "sprechen", der Inhalt wird aber vermutlich einfach irgendeine XML Struktur gehabt haben oder etwas in der Form.
 
Der TO sucht jemand, der in die Datei (mit einem hex Editor) schauen kann und aus diesen Datenstrukturen den DB Typ ableiten kann.
Hat erst mal nichts mit SQL zu tun sondern eher etwas mit Forensik.
 
Reverse-Engineering halt, aber eben nicht von Datenbanken (das mache ich auch) sondern von Anwendungen und ihren "Daten-Dateien".
 
Uh. Super zu wissen, dass die Ursprünglichen Entwickler da etwas ganz anderes genutzt haben. Hm, das stellt dann doch eine größere Schwierigkeit dar als ich gedacht habe....

Ukulele du klingst da etwas versierter, kannst du mir da irgendeine Empfehlung aussprechen in die ich da forschen sollte, da du dir das ja grob angeschaut hast?

Noch besser wäre natürlich direkt der Lösungsvorschlag, aber ich möchte dich ja auch nicht die ganze Arbeit machen lassen.^^

Ansonsten gibt es ggf. ein "Reverse-Engineering" Forum das ihr da kennt? Bin für jede Hilfe dankbar!
 
Das klingt vielleicht so, bin ich aber nicht :) Ich hab mich früher auch mit Cracks und Mods zu Spielen rum geschlagen, habe aber nie selbst gemoddet. Ich weiß nur das "Sicherheit" bei so älteren Spielen meist eher security by obscurity war, nicht tatsächliche Verschlüsselung von Informationen. Aber das hilft natürlich auch nicht weiter, ich hab vielleicht drei mal in meinem Leben einen Hexeditor benutzt...
 
Du musst mit einem Hex Editor die Datei öffnen und bekannte Pattern suchen. Eine SQLite hat andere Pattern, wie eine SQL Server Datei oder eine Postgresql Datei.

Wenn keine DB genutzt wurde sondern eine eigenen Datenstruktur wirst du aber nicht weiter kommen. Da müsstetest du die Datenstruktur identifizieren.

Hier ist die Frage ob sich das lohnt. Was ist das für ein Spiel und was ist denn euer Ziel?
 
Das ist ein mittlerweile 11 Jahre altes MMORPG. Ich denke die haben alles dafür selbst erschafft.. Der WorldEditor ist z.B. auch mehr oder minder in eigenregie gemodded worden. Riesen aufwand den aufzusetzen..

Ziel für uns ist es das Spiel in einen Zustand zu bekommen, dass wir es nach belieben anpassen können und als Langzeitprojekt laufen lassen können für die Community die dieses Spiel noch lieben. Also mehr Erhaltung des Spieles, ohne monetarisierung bis auf Patreon zum finanzieren des servers.

@Dukel, Ich lese mich mal über den kommenden Tag ein bezüglich des Hex Editor´s. Zu der Datenstruktur soweit ich meinen Kumpel richtig verstanden habe läuft das alles wort wörtlich über Excel sheets...
 
Einfach mal grob die Datei durchsehen, besonders den Anfang. Als erstes mit einem normalen Editor, der nicht bei mehr als 100 MB zusammenbricht. Außerdem sollte der die Darstellung von ASCII und UTF8 beherrschen. Bei ASCII siehst Du nur Blödsinn, wenn es MultiByte Encoded ist. Das Gleiche gilt für den Hexeditor.
Wenn es ein proprietäres Format ist, dann ist die nächste Frage Text basierend oder binär. Ersteres würde man einfach lesen können, z,B, XML oder JSON. (Beides nicht unbedingt kompakt bzw. performant). Also vielleicht eher eine schnöde Recordstruktur. Darin würde man Längenmuster erkennen mit bloßem Auge, auch diese Einträge wären tw. lesbar, wenn sie Text enthalten und das Encoding des Lesetools richtig passt.
Ein Hinweis wäre auch die Untersuchung des Programmcodes. Dort kann man rausfinden, womit er erstellt wurde. C, C++, C#, .. und Rückschlüsse auf verwendete Storage Technik machen.

Man kann auch ein Tool einsetzen, das Dateiformate erkennt. Neulich noch nebenan im Thread ein Thema gewesen. "file" ein Linuxprogramm. Da kann man alle Dateien einer Installation durchjagen. Das Gesamtbild sagt vielleicht auch etwas, selbst wenn viele einzelne Dateien unbekannt bleiben. Auch das Setup des Spiels, vorher-nachher, ergibt vielleicht ein Bild, welche Tools, Treiber oder Libs/DLL sind danach da, die vorher nicht da waren.
 
Habt ihr mal versucht zu den damaligen Entwicklern Kontakt zu knüpfen und euer Interesse bekundet, an dem Projekt was zu machen?
 
Ich habe das mal meinem Kollegen gezeigt und der hat das mit Notepad++ und paar weitere tools probiert und es gab teilweise lesbaren Text, allerdings niemals eine komplette Zeile. Da liegt soweit wir gesehen haben keine Verschlüsselung vor. Erstellt wurde das soweit ich gesehen habe alles mit "LuaScript".

"file" wäre doch nur, wenn es auf Linux laufen würde. Allerdings ist das für einen Windows-Server ausgelegt und läuft darüber auch flüssig.
Einfach mal grob die Datei durchsehen, besonders den Anfang. Als erstes mit einem normalen Editor, der nicht bei mehr als 100 MB zusammenbricht. Außerdem sollte der die Darstellung von ASCII und UTF8 beherrschen. Bei ASCII siehst Du nur Blödsinn, wenn es MultiByte Encoded ist. Das Gleiche gilt für den Hexeditor.
Wenn es ein proprietäres Format ist, dann ist die nächste Frage Text basierend oder binär. Ersteres würde man einfach lesen können, z,B, XML oder JSON. (Beides nicht unbedingt kompakt bzw. performant). Also vielleicht eher eine schnöde Recordstruktur. Darin würde man Längenmuster erkennen mit bloßem Auge, auch diese Einträge wären tw. lesbar, wenn sie Text enthalten und das Encoding des Lesetools richtig passt.
Ein Hinweis wäre auch die Untersuchung des Programmcodes. Dort kann man rausfinden, womit er erstellt wurde. C, C++, C#, .. und Rückschlüsse auf verwendete Storage Technik machen.

Man kann auch ein Tool einsetzen, das Dateiformate erkennt. Neulich noch nebenan im Thread ein Thema gewesen. "file" ein Linuxprogramm. Da kann man alle Dateien einer Installation durchjagen. Das Gesamtbild sagt vielleicht auch etwas, selbst wenn viele einzelne Dateien unbekannt bleiben. Auch das Setup des Spiels, vorher-nachher, ergibt vielleicht ein Bild, welche Tools, Treiber oder Libs/DLL sind danach da, die vorher nicht da waren.
Habt ihr mal versucht zu den damaligen Entwicklern Kontakt zu knüpfen und euer Interesse bekundet, an dem Projekt was zu machen?
Haben wir schon versucht über die Kanäle die wir gefunden haben. Soweit ich die Reaktion richtig übersetzt habe, haben die das Projekt bereits für gescheitert erklärt und bietet somit keine Hilfe mehr an.... Das Entwicklerstudio ist aus dem Asiatischen Bereich und hat da im Bezug auf Stolz so seine Angewohnheiten....
 
Werbung:
file sagt dazu nur data oder so, kann es nicht zuordnen. strings liefert ne ganze Menge, also viel lesbarere text. that's all.
 
Zurück
Oben