【发布时间】:2013-02-06 11:13:12
【问题描述】:
我希望能够将一些配置信息存储在可执行文件(C 程序)内的 char 数组中。而且我需要在运行时修改该数组的内容。 但我无法从进程中打开文件。 所以...有可能吗?如果是的话——有什么诀窍? 非常感谢。
[1] 问题是如何做,不是这是个好主意吗?
[2] 我想在运行时写入进程的自己的 EXEC 只是因为我很好奇如何做到这一点。让我们把它想象成有点 o hacking。
【问题讨论】:
-
可执行文件在磁盘上,而您的程序在内存中加载。运行时,对文件磁盘版本的任何更改都不会影响正在运行的程序。另外,如果您在可执行文件中有一个数组,您的意思可能是全局变量之类的?在这种情况下,您只需访问它并更改它!
-
谢谢!没错,它是一个全局 char 数组。问题是我得到的段错误。我刚刚用“string -tx a.out”找到了数组偏移量,并在程序中对其进行了硬编码,我应该 fseek() 和 fwrite()。但是我什至无法打开执行文件进行写入...
-
不要这样做。改为使用 ASCII 配置文件。这样做的好处是您可以拥有多个配置文件,并且还可以让您在事情停止工作时轻松查看可执行文件正在使用的配置
-
感谢您的回答。目标是写给执行官的想法……
-
再一次,就像我说的,获取文件中数组的偏移量与它在内存中的地址完全无关。
标签: c linux runtime executable