![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: egal
Defekte Firebird-DB gesucht - oder wie herstellen?
Servus,
ich brauche für Schulungszwecke eine defekte Datenbank, um mit gfix die Reparatur zu zeigen. Hat jemand ne Idee, wie ich einen Page-Indexfehler provoziere? Oder einen consistency check? |
AW: Defekte Firebird-DB gesucht - oder wie herstellen?
Datenbank Datei analysieren, schauen wie sie aufgebaut ist, Sprungmarken überschreiben (sozusagen out-of-bound machen) = page error
Datenbank Datei in einen Filestream laden, irgendwo zwischen 0-EOF springen, mit random bytes wahllos lang beschreiben = consistency error |
AW: Defekte Firebird-DB gesucht - oder wie herstellen?
Bekommt man das Ergebnis davon mit gfix auch wieder repariert?
|
AW: Defekte Firebird-DB gesucht - oder wie herstellen?
alternativ zum Filestream:
Datenbankdatei im hex editor (zB Ultraedit) öffnen und einfach mal mit binären 0 werten da kleine oder großflächig bereiche im hintereren Bereich überschreiben, die so aussehen als ob es daten enthält aus deinen eigenen Tabellen. Reicht fast immer, um die db dann noch öffnen zu können, beim select auf der Tabelle aber sofort einen consistency check error zu bekommen und die db mit bordmitteln nicht mehr reparieren zu können (bei kleineren Überschreibungen geht manchmal noch gfix mend vor dem backup/restore, je nach dem was du da erwischt hast, kann das aber auch scheitern, geht dann aber meistens mit ibexpert-tools-database inside trotzdem noch, das aber nur am Rande). Wenn die Fehler im vorderen Bereich sind, also da wo die Systemtabellen sind, dann wird es schwieriger bis unmöglich. Da toben sich auch die meisten trojaner aus, verschlüsseln fast immer nur die ersten 1-2 MB der Dateien, aber um das zu reparieren wird es komplizierter, wobei ich auch das schon geschafft hab. |
AW: Defekte Firebird-DB gesucht - oder wie herstellen?
danke, mit dem Hexeditor habe ich auch schon rumgespielt und die Struktur damit erfolgreich kaputt gespielt.
Ich habe jetzt im mittleren Bereich Daten überschrieben und damit PageErrors erzeugt bzw. dazwischen drin dann auch mal einen Index Page error, das sollte ausreichen :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz