打开外部文件扩展名,比如游戏文件,它是如何完成的?

时间:2016-08-28 16:40:19

标签: c# assembly lua game-engine reverse-engineering

为了这个游戏,我现在正在修改,其档案以" .rpf"结尾。 (这是'愤怒的引擎包文件')

的缩写

程序员如何才能找到打开这些类型的文件/档案的方法,而无需访问愤怒引擎?

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

2 个答案:

答案 0 :(得分:2)

它被称为Reverse engineering
您可以使用十六进制编辑器查看文件,注意一些文本或看起来像偏移的数字。你应用自己的经验编写类似的东西,做出一些假设并检查它是否适用于多个条目,依此类推。

答案 1 :(得分:0)

有很多方法可以打开这些文件。 首先,您可以使用特定程序打开它们,如OpenIV for RPF存档。 例如,如果您尝试Mod或写作弊,大多数人会反汇编程序或使用Hex-Editor打开它们。

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

另一种方法是反汇编程序。像ollyDbg,IDA Pro或其他程序将二进制值反汇编成汇编代码。现在,您可以搜索一些偏移量,地址和文本,然后可以删除或编辑它们,让程序按照您的意愿进行操作。

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

在您阅读了一些内存地址及其偏移量之后,您可以在反汇编程序本身中更改它们(JNZ(如果不是零跳转)到JMP(跳转),例如在每种情况下直接跳转)并编写这些代码在可执行文件上,或者您可以在自己的程序中实现它们,这些程序可以更改它们或修补它们。

这是您希望了解程序如何工作的原则,然后您添加自己的一些功能或编写一个完整的新应用程序来完成打开任何文件的任务。就像弗拉德说的那样简单地称为逆向工程。