我的朋友有一个管理客户的系统。每个程序都很糟糕,我的朋友失去了与开发人员的联系。
案例是,现在我的朋友失去了对程序的访问权限(开发人员称之为“锁定到计算机”的东西)因此当移动到另一台计算机时,他失去了对程序和数据的访问权。
我的任务是尝试恢复数据库,迁移到另一个数据库,并为我的朋友创建一个很酷的程序。
现在我需要发现开发人员使用的数据库。我知道程序是使用Visual Basic编写的,因为MSVBVM60.DLL是必需的。
有一些程序可以读取.dat文件中的元数据并发现使用了哪个数据库?
答案 0 :(得分:2)
您可以尝试使用Determining File Format工具。
不幸的是,您的.dat文件可能是“随机访问文件”,而不是数据库。
在这种情况下,如果您不知道文件的结构,则无法读取数据。记录以块的形式写入,您必须知道块的确切大小才能从一个块跳到下一个块。可能会使用某种加密方式。
答案 1 :(得分:1)
如果文件是random access file(VB意义),则不应该太难来反向设计格式。
第一步是确定你应该能够用很少的前向知识做的记录的大小:这只是找到字符串开始和结束的位置并寻找重复的问题。例如,查找看起来像某人的名字的字符串,然后向前扫描,直到找到看起来像名字的下一个字符串。这是你的记录大小。
下一步将涉及制定实际领域。这将需要更多的工作,但基本上你会想要在原始软件中查找记录,然后尝试在第一个中找到相应的记录(例如,查找应该相对的名字/姓氏)简单)。然后,只需将UI中的字段与文件中的字段进行匹配即可。例如,日期整数等。
当然,这只是一个概述,假设该文件采用VB的本机“随机访问”格式。祝你好运!
答案 2 :(得分:1)
除了尝试对文件本身进行反向工程,如其他响应中所建议的那样,您也可以尝试对应用程序进行逆向工程(DLL或EXE。)
有几种可用的反编译器,例如VB P-code/native compiler。有试用版。我没有尝试过这个软件,但是它可能足以让你了解数据文件中存储的内容,或者帮助填补你无法从数据文件本身中找出数据含义的空白。