Как узнать тип базы данных, проверяющий файл - PullRequest
3 голосов
/ 07 мая 2010

У моего друга есть система управления клиентами. Сама программа ужасна, и мой друг потерял связь с разработчиками.

Дело в том, что теперь мой друг потерял доступ к программе (то, что разработчики говорят, что "заблокирован на машине", поэтому при переносе на другой компьютер он потерял доступ к программе и данным.

Мне поручено попытаться восстановить базу данных, перейти на другую базу данных и создать классную программу для моего друга.

Теперь мне нужно выяснить, какая база данных использовалась разработчиками. Я знаю, что программа была сделана с использованием Visual Basic, потому что MSVBVM60.DLL требуется.

Есть какая-нибудь программа для чтения метаданных в файлах .dat и обнаружения, какая база данных использовалась?

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Вы можете попробовать Определение формата файла Инструменты.

К сожалению, возможно, что ваш файл .dat является " файлом произвольного доступа ", а не база данных .

Вы не можете читать данные в этом случае, и если вы не знаете структуру файла. Записи записаны в блоках, и вы должны знать точный размер блока, чтобы иметь возможность переходить с одного блока на следующий. Возможно, используются какие-то виды шифрования.

1 голос
/ 14 мая 2010

Помимо попыток выполнить обратный инжиниринг самого файла, как предлагается в других ответах, вы также можете попробовать выполнить обратный инжиниринг приложения (DLL или EXE-файл).

Существует несколько доступных декомпиляторов, например VB P-код / ​​собственный компилятор .Пробная версия доступна.Я не пробовал эту программу, но она может дать вам достаточно информации, чтобы понять, что хранится в файле данных, или помочь заполнить пробелы, в которых вы не можете понять значение данных из самого файла данных.

1 голос
/ 10 мая 2010

Если файл представляет собой файл произвольного доступа (в смысле VB), тогда не должно быть слишком сложно для обратного инжиниринга формата.Шагом было бы определить размер записей, которые вы могли бы сделать с небольшим продвинутым знанием дела: это просто вопрос поиска, где начинаются и заканчиваются строки, и поиска повторов.Например, найдите строку, которая выглядит как чье-то имя, а затем сканируйте вперед, пока не найдете следующую строку, которая выглядит как имя.Это ваш размер записи.

Следующим шагом будет разработка фактических полей.Это потребует немного больше работы, но в основном вы захотите найти запись в исходном программном обеспечении, а затем попытаться найти соответствующую запись в первой (например, найдите имя / фамилию, которая должна быть относительнолегко).Тогда нужно просто сопоставить поля в пользовательском интерфейсе с тем, что находится в файле.Например, целые числа дат и т. П.

Конечно, это всего лишь общий обзор, и предполагается, что файл имеет собственный формат произвольного доступа VB.Удачи!

...