我想以纯粹探索的方式尝试十六进制编辑简单程序。我知道这会危及相关程序的功能(这很好),但是运行随机编辑的二进制文件对我的系统(Linux)有什么风险?
可能发生的最坏情况是什么?是否有一些我应该始终避免的变化,我可以采取的预防措施?有没有与此相关的资源?(我已经搜索过,但找不到任何与此相关的内容)
编辑:我应该指定我实际上并不打算随机编辑;这只是一个假设。
我想以纯粹探索的方式尝试十六进制编辑简单程序。我知道这会危及相关程序的功能(这很好),但是运行随机编辑的二进制文件对我的系统(Linux)有什么风险?
可能发生的最坏情况是什么?是否有一些我应该始终避免的变化,我可以采取的预防措施?有没有与此相关的资源?(我已经搜索过,但找不到任何与此相关的内容)
编辑:我应该指定我实际上并不打算随机编辑;这只是一个假设。
如果您想自信地使用十六进制编辑器,这将有助于理解已编译程序的结构(尤其是 ELF 可执行文件,因为 ELF 是当今 Linux 中典型的可执行格式)。文件中的某些位置实际上并不是程序本身的一部分,而是告诉 Linux 如何加载和运行程序的元数据。
您还将发现对系统 CPU 的机器代码(或至少是汇编语言)的知识也非常宝贵。
无论如何,当您编辑任何不是明确的字符串数据时,您要么更改元数据,要么更改告诉 CPU 要做什么的实际指令。如果您在不确切知道自己在做什么的情况下这样做,如果幸运的话,程序将会崩溃。如果你不走运,你可能会导致它在每次修改部分运行时默默地、巧妙地破坏某些东西,并且你可能不会注意到它,直到为时已晚才能撤消。机器语言,作为 CPU 的实际语言,不受库限制等的约束;它对机器的访问权限与您一样多(有时甚至更多,如果它设置为以 root 身份运行或具有某些功能)。因此,几乎您可以造成的任何损害,该程序也可以造成。