将带有重音符号的ASCII代码转换为纯文本

时间:2014-03-21 19:03:18

标签: encryption character ascii diacritics

我想通过创建额外内容来支持游戏中的一些文件。问题是,这些文件对我来说是不可读的。它们包含许多重音符号和ASCII控制字符(如NUL或SOH,更多信息在这里:http://donsnotes.com/tech/charsets/ascii.html)。下面我链接了示例文件的printscreen。打印屏幕在Notepad ++中完成,但在我的所有文本编辑器中看起来几乎相同。 Notepad ++找到了ASCII文件格式。我试图用Notepad ++转换函数转换它,但是没有可读的效果。

https://www.dropbox.com/s/ii7ndc6i4zgqo0h/shot_140321_193103.png

此文件由游戏内编辑器创建和编辑。游戏能够从这个文件中读取,所以我确信这个文件是可解密的。有没有办法将其转换为纯文本?如果是这样,我将能够为这个游戏创建工具,自动生成这些文件。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

您必须知道格式的精确规范才能将任何形式的转换转换为人类可读的格式。例如,如果您有配置文件,则可以存储8种不同设置的任意组合。在这种情况下,二进制文件可能只是一个字节,因为您可以让字节中的每个位表示相应的设置是打开还是关闭。

现在您如何将其转换为可读的文本形式?唯一的方法是弄清楚字节中每个位的含义。除非在某处记录,否则除了编辑位并查看程序行为如何变化并尝试推断格式之外别无选择。

当处理更复杂的文件以保存更复杂的信息以及软件内部的信息并且从不直接暴露给用户时,这会非常困难。如果没有文档,您可以选择对文件进行随机编辑+对代码进行逆向工程,即您将机器代码反汇编并尝试弄清楚程序的功能。

在这种特殊情况下,玩家个人资料可能不会包含那么多信息,因此您只需在十六进制编辑器中打开文件并执行以下操作:

  1. 在某处改变一点
  2. 启动游戏并加载播放器
  3. 查看个人资料中的更改内容或加载失败
  4. 这样做可以尝试推断出文件中每个字节代表的内容。