二进制模板文件

Bri*_*gon 1 binary templates reverse-engineering file

我继承了一个使用遗留文件格式来存储数据的项目,我可以访问进入该文件格式的数据,以及生成的文件,但我无权访问模板,我需要重新创建它.

什么是逆向工程二进制文件的最佳方法?如何确定使用的语言/加密,或者我甚至需要?一旦我做了,最好的程序(免费,首选)是什么来获取信息?这是在Windows系统上,但我运行一个OpenSUSE linux框,我不反对使用该问题的帮助.

eh9*_*eh9 5

大约一年前的评论是我所做的核心,即对行为格式进行逆向工程.将旧程序视为黑盒子.我假设你仍然能以某种方式运行遗留系统.首先,将整个遗留程序转换为可以某种方式调用的子程序.这可能意味着编写脚本,在VM中运行,模拟和/或模拟设备等; 什么工作.如果您不知道如何执行此操作,请针对您的具体情况单独提问.但是,目标是自动使用旧版软件,以便您可以针对它运行探测和测试套件.

你提到加密可能会被使用.首先处理这个问题.Strongs密码具有所谓的雪崩属性:改变输入的单个位会改变输出的50%位,这相当于伪随机位翻转.您希望使用avalanche属性来(1)测试是否存在加密,以及(2)找出加密结构.例如,如果数据库一次加密一行,则在任何地方更改存储行的一位将改变加密行的平均一半比特.显然,如果改变一位改变整个文件,你会遇到一种不同的问题,而不是只有几位改变(例如校验和等).).如果您有任何形式的加密,您可能需要在调试器下运行遗留并以这种方式计算算法; 这可能不值得.

正如您所看到的,所有这些都意味着需要对遗产进行大量调用以探测其行为.你不想手工做这件事; 见第一段.为了解决另一个问题,你不太可能找到现成的代码来提取数据; 这是一个自定义代码工作.因此,既然您的自动化正在运行,您需要设置单元测试,调用遗留代码以查看应该预期的内容.

这不是一个快速的过程,也不容易.始终将预期的成功成本与以其他方式获取数据的成本进行比较,包括支付手动数据输入费用.