重用已编译的.exe文件中的字符

抢断

很久以前,出于好奇,我尝试十六进制编辑游戏“ Dangerous Dave”的可执行文件。我在文件中四处寻找可以找到的任何字符串,并进行了一些随机编辑以查看它是否会真正改变游戏中显示的文本。

我很惊讶地看到结果,现在已经使用十六进制编辑器和DOSBox重新创建了结果: 在此处输入图片说明

可以看出,在字符串“ ROMERO”中编辑两个字符“ RO”导致更改了4个字符,结果变为“ ZUMEZU”。好像程序正在重用两个字符,并在该字符串的开头和结尾打印它们。

是什么原因造成的?我的第一个猜测是尝试使可执行文件更小,但是仅重用字符的代码可能需要比保存这2个字节更多的空间。这仅仅是作者的a俩,还是一些编译器的伏都教?

黄昏-无效-

可以肯定地说,没有逆向工程就很棘手,但是我的猜测是,程序中的许多恒定数据都是使用LZ系列算法压缩的这些压缩方案基本上以您观察到的方式工作:它们将重复的子字符串编码为对先前已解码文本的引用。

这些压缩算法可能不仅用于一个字符串,而且不仅用于文本。它们很有可能还用于压缩其他数据,例如图形或关卡布局。简而言之,使用此算法可能会节省很多钱!

在旧游戏中,通常使用这些压缩算法来节省磁盘空间,但这并不是自动的-罗梅罗添加了自己的东西,因此可能会实施该算法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重用已编译的Theano函数

来自分类Dev

重用已编译的Theano函数

来自分类Dev

修改已编译的.Net Exe

来自分类Dev

修改已编译的.Net Exe

来自分类Dev

重用MSSQL中已删除的ID字段

来自分类Dev

如何使用javascript通过nexe访问已编译.exe中的捆绑文件

来自分类Dev

将清单添加到jar的已编译exe文件中

来自分类Dev

在Jenkins中运行已编译的Jar文件

来自分类Dev

WAR文件中缺少已编译的类

来自分类Dev

从更少的文件中获取已编译的CSS

来自分类Dev

如何从已编译的.exe文件向终端窗口输出帮助?

来自分类Dev

使用文件作为输入运行已编译的python .exe

来自分类Dev

如何使用 Java 程序修改已编译的 .jar 中的类文件中的字符串?

来自分类Dev

显示已编译二进制文件中的字符串

来自分类Dev

通过批处理文件运行已编译的批处理文件(exe)文件

来自分类Dev

重用Neo4j中已删除的节点ID

来自分类Dev

资产:已预编译到达文件末尾

来自分类Dev

使用GDB调试已编译的NASM文件

来自分类Dev

可以提取已编译的Flash文件吗?

来自分类Dev

Gulp任务仅编译已更改的文件

来自分类Dev

AndroidStudio:语言xml文件是否已编译到apk中?

来自分类Dev

Python:已编译源代码中的ImportError

来自分类Dev

IBatis中的查询是否已预编译?

来自分类Dev

如何获取已编译为python exe的文件夹的路径?

来自分类Dev

如何从批处理文件本身中找到已编译的 bat (.exe) 目录?

来自分类Dev

.NET中动态编译的文件是否使用csc.exe?

来自分类Dev

.NET中动态编译的文件是否使用csc.exe?

来自分类Dev

如何在已编译的 exe 中查找和替换某些十六进制值

来自分类Dev

交叉构建的本机编译器问题:编译器或已编译二进制文件中的段错误

Related 相关文章

  1. 1

    重用已编译的Theano函数

  2. 2

    重用已编译的Theano函数

  3. 3

    修改已编译的.Net Exe

  4. 4

    修改已编译的.Net Exe

  5. 5

    重用MSSQL中已删除的ID字段

  6. 6

    如何使用javascript通过nexe访问已编译.exe中的捆绑文件

  7. 7

    将清单添加到jar的已编译exe文件中

  8. 8

    在Jenkins中运行已编译的Jar文件

  9. 9

    WAR文件中缺少已编译的类

  10. 10

    从更少的文件中获取已编译的CSS

  11. 11

    如何从已编译的.exe文件向终端窗口输出帮助?

  12. 12

    使用文件作为输入运行已编译的python .exe

  13. 13

    如何使用 Java 程序修改已编译的 .jar 中的类文件中的字符串?

  14. 14

    显示已编译二进制文件中的字符串

  15. 15

    通过批处理文件运行已编译的批处理文件(exe)文件

  16. 16

    重用Neo4j中已删除的节点ID

  17. 17

    资产:已预编译到达文件末尾

  18. 18

    使用GDB调试已编译的NASM文件

  19. 19

    可以提取已编译的Flash文件吗?

  20. 20

    Gulp任务仅编译已更改的文件

  21. 21

    AndroidStudio:语言xml文件是否已编译到apk中?

  22. 22

    Python:已编译源代码中的ImportError

  23. 23

    IBatis中的查询是否已预编译?

  24. 24

    如何获取已编译为python exe的文件夹的路径?

  25. 25

    如何从批处理文件本身中找到已编译的 bat (.exe) 目录?

  26. 26

    .NET中动态编译的文件是否使用csc.exe?

  27. 27

    .NET中动态编译的文件是否使用csc.exe?

  28. 28

    如何在已编译的 exe 中查找和替换某些十六进制值

  29. 29

    交叉构建的本机编译器问题:编译器或已编译二进制文件中的段错误

热门标签

归档