views:

155

answers:

3

My friend have a system to manage customers. The program per si is terrible, and my friend lost contact with the developers.

The case is, now my friend lost the access to program (something that the developers say "locked to machine" so when moved to another pc, he lost the access to program and data.

I get mission of to try to recover the database, migrating to another database, and create a cool program to my friend.

Now I need to discover wich database was used by the developers. I know that the program was made using Visual Basic, because the MSVBVM60.DLL is required.

There is some program to read the metadata in the .dat files and discover wich database was used?

+2  A: 

You can try Determining File Format tools.

Unfortunately, it is possible that your .dat file is a "random access file", not database.

You cannot read data in that case, and if you don't know the structure of the file. The records are written in blocks and you have to know exact size of block to be able to jump from one block to next one. Probably some kind of encryptions are used.

SergeanT
+1  A: 

If the file is a random access file (the VB sense) then it shouldn't be too hard to reverse engineer the format.

The first step would be determine the size of the records which you should be able to do with little forward knowlegde: it's just a matter of finding where strings begin and end and looking for repeats. For example, look for a string that looks like someone's first name and then scan forward until you find the next string that looks like a first name. That's your record size.

The next step would involve working out the actual fields. This will require a little more work, but basically you'll want to look up a record in the original software and then try to find the corresponding record in the first (for example, look for the first name/last name which should be relatively easy). Then it's just a matter of matching up fields in the UI with what's in the file. For example, dates integers and the like.

Of course, that's just a general overview, and that's assuming the file is in VB's native "random access" format. Good luck!

Dean Harding
+1  A: 

As well as trying to reverse engineer the file itself, as suggested in other responses, you could also try reverse engineering the application (DLL or EXE.)

There are several decompilers available, for example VB P-code/native compiler. A trial version is available. I have not tried this software, but it may give you enough to understand what is being stored in the data file, or help fill in the gaps where you can't figure out the meaning of data from the data file itself.

mdma