使用十六进制编辑器修改库中的env变量名?

时间:2011-04-28 21:26:02

标签: c linux binary shared-libraries hex

是否可以使用某种编辑器修改库中的环境变量名称。我想也许是一个十六进制编辑器?

我希望修改名称但不改变其长度: envfoobar(9个字符) yellowbar(9个字符)

显然,重新编译会很完美,但我不知道用什么确切的标志来编译这个库。

2 个答案:

答案 0 :(得分:4)

什么阻止你?你甚至可以使用文本编辑器(只要它是一个不错的编辑器,并知道如何处理二进制数据,如vim所做的)。如果库通过字符串引用环境变量的名称,并且字符串在数据段的库中(即,它不是在运行时构建的字符串),那么以这种方式编辑库是微不足道的。只是不要删除或引入新字符。我在Linux下完成了这个。其他一些操作系统可能会对二进制文件进行数字签名并阻止其工作。某些操作系统使用标准校验和或散列,在这种情况下,您必须重新计算它。

答案 1 :(得分:0)

如果您可以在库中找到带有strings命令的名称,那么它可能。您可以在您喜欢的十六进制编辑器中加载库,更改字符串并给它一个镜头。

这是一个hacky事情,但它可以工作。请告诉我们。