可执行文件,它在运行时打开

时间:2014-06-06 13:52:47

标签: assembly elf

我在程序集中写了一段代码,试图打开一个名为“Main”的文件(使用开放系统调用)并将其第一位更改为0.

我编译了它,并将最终的可执行文件命名为“Main”。我的目标是在运行时更改可执行文件“Main”。

但是,在调用open系统调用后,我得到一个负文件描述符,这意味着open失败。

我做错了什么,或者无法通过可执行文件要求自行打开?

2 个答案:

答案 0 :(得分:1)

  

但是,在调用open系统调用后,我得到一个负文件描述符

执行开放系统调用的汇编代码可能不正确。

另一种可能的可能性是你有类似SELinux的东西,而且该政策实际上禁止写入可执行文件。

strace下运行您的程序(或您的操作系统的等效项),并查看开放系统调用返回的错误。

答案 1 :(得分:0)

执行程序时,无法修改可执行文件(系统已锁定)。你尝试了一些不可能的事情。