2

It is an accounting database whose database file format is proprietary data. But the problem is the database is highly unreliable, corruption go unnoticed for years after which it becomes unbearably difficult to recover data, we maintain accounts of lots of companies, so reversing the format will be highly useful. Also, the software is odbc compliant which might be very helpul for reversing it.The software is partially open-source, i.e. except database engine everything is open-source(and fully customizable), though they have there own different language.
I have no experience in reversing. we would like to reverse it in such a way that we could write data in that format directly.

1

If there is no documentation, there's almost no chance to reverse the file format without reverse engineering the database engine. Especially writing the files will be a nightmare.

For example, the (very old) dBase II file format is quite easy to read, since the data itself is stored in a quite basic format, and for reading the database, you can ignore all the indexing stuff, you just read the data records. The format for index files is much more complicated, since they are (probably) binary b-trees, and you need to get the indexes right as well if you want to write stuff.

Now in your case, if "the database is highly unreliable, corruption go unnoticed for years" it seems that even the original designers of the software and the file format didn't get things right, at least in some edge cases. Which means you can't fix this without investing a massive amount of effort and money - we're probably speaking about multiple developers for several years.

If your software is ODBC compliant, you'll probably have a much better chance at success by plugging a different ODBC backend to your software frontend. This will fail if your software uses advanced features of your specific database (good luck trying to get oracle stored procedures running on a MS SQL server), but if your software doesn't use more than basic sql statements, this might at least work.

  • The software is partially open-source, i.e. except database engine everything is open-source(and fully customizable), though they have there own different language. Is that going to help anyway? – spidersanghvi Sep 23 '15 at 9:18
  • I'd say this is even more reason to dump the database, replace it with something that works better, and fix any stuff that doesn't work with the new database in the application source code. – Guntram Blohm supports Monica Sep 24 '15 at 14:55
  • the software database is odbc compliant. is there a way to copy whole database to access or other databse type? – spidersanghvi Sep 24 '15 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.