File 二进制模板文件

File 二进制模板文件,file,templates,binary,reverse-engineering,File,Templates,Binary,Reverse Engineering,我继承了一个使用传统文件格式存储数据的项目,我可以访问该文件格式中的数据以及生成的文件,但我无法访问模板,我需要重新创建它 对二进制文件进行反向工程的最佳方法是什么?我如何知道使用了什么语言/加密,或者我甚至需要这样做?一旦我这样做了,什么是最好的程序(免费,首选)来获取信息?这是在Windows系统上,但我运行了一个OpenSUSE linux box,我不反对使用它来帮助解决这个问题。大约一年前的评论是我要做的核心,那就是从行为上对格式进行反向工程。将遗留程序视为黑盒。我假设你仍然可以运行遗

我继承了一个使用传统文件格式存储数据的项目,我可以访问该文件格式中的数据以及生成的文件,但我无法访问模板,我需要重新创建它


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

大约一年前的评论是我要做的核心,那就是从行为上对格式进行反向工程。将遗留程序视为黑盒。我假设你仍然可以运行遗留系统。第一件事是将整个遗留程序转换为可以以某种方式调用的子例程。这可能意味着脚本编写、在虚拟机内运行、模拟和/或模拟设备等。;只要行得通。如果你还不知道怎么做,针对你的特殊情况单独问一个问题。不过,我们的目标是自动化遗留软件的使用,以便您可以针对它运行探测和测试套件

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

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


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

大约一年前的评论是我要做的核心,即从行为上对格式进行反向工程。将遗留程序视为黑盒。我假设你仍然可以运行遗留系统。第一件事是将整个遗留程序转换为可以以某种方式调用的子例程。这可能意味着脚本编写、在虚拟机内运行、模拟和/或模拟设备等。;只要行得通。如果你还不知道怎么做,针对你的特殊情况单独问一个问题。不过,我们的目标是自动化遗留软件的使用,以便您可以针对它运行探测和测试套件

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

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


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

如果您无法访问项目来源,我会尝试使用一个样本输入集,一点一点地改变它,然后对文件格式进行二进制区分,以破译出发生了什么。对不起,我不明白,你能再解释一下吗?二进制文件的
是什么?模板是什么?它是做什么用的?你能举例说明文件格式和结果文件的一部分吗?顺便问一下,什么是头(二进制文件的第一个字符)?有很多关于逆向工程文件格式的文章。例如,如果您无法访问项目的源代码,我会尝试使用一个示例输入集,并一点一点地对其进行更改,然后对文件格式进行二进制区分,以解密发生了什么。对不起,我不明白,您能再解释一下吗?二进制文件的
是什么?模板是什么?它是做什么用的?你能举例说明文件格式和结果文件的一部分吗?顺便问一下,什么是头(二进制文件的第一个字符)?有很多关于逆向工程文件格式的文章。例如