打开外国文件扩展名,如在游戏文件,它是如何做到的

本文关键字:文件 何做 游戏 扩展名 | 更新日期: 2023-09-27 18:04:29

为了这个游戏,我正在修改,它的存档以"结尾。Rpf "(是'rage engine package file'的缩写)

程序员究竟是如何找到方法来打开这些类型的文件/存档,而不需要访问rage引擎?

一个人需要知道什么才能开始尝试打开一个外国文件扩展名?由于OpenIV团队创建了打开文件所需的程序,这些文件可以被打开,但是开发人员究竟如何弄清楚甚至知道在开发要完成打开另一个文件任务的应用程序时从哪里开始呢?

打开外国文件扩展名,如在游戏文件,它是如何做到的

这叫做逆向工程
您使用十六进制编辑器查看文件,注意到一些文本或数字看起来像偏移量。你运用自己的经验编写类似的东西,做一些假设,并检查它是否对多个条目是正确的,等等。

有很多方法可以打开这样的文件。首先,您可以使用特定的程序来打开它们,例如OpenIV for RPF归档。例如,如果你试图Mod或编写一个作弊程序,大多数人会反汇编程序或用十六进制编辑器打开它们。

像HexEdit这样的程序将程序的二进制值转换为十六进制数,例如将字节10100101转换为十六进制0xA5h (A5)。

另一种方法是反汇编程序。像ollyDbg、IDA Pro或其他程序将二进制值反汇编成汇编代码。现在你可以搜索一些偏移量,地址和文本,你可以删除或编辑它们,让程序做你想做的。

一些程序能够生成C或c#的伪代码,例如()。. NET Reflector),它可以帮助您了解程序的功能。

在你读取了一些内存地址和它们的偏移量之后,你可以在反汇编程序中修改它们(JNZ(如果不是零则跳转)到JMP(跳转),例如在任何情况下都直接跳转),并将这些代码写在可执行文件中,或者你可以在自己的程序中实现它们,修改它们或修补它们。

这是您查找的原则,以了解程序如何工作,然后您添加一些自己的功能或编写一个完整的新应用程序来完成打开任何文件的任务。就像弗拉德说的,这就是所谓的逆向工程。