我在程序集中写了一段代码,试图打开一个名为“Main”的文件(使用开放系统调用)并将其第一位更改为0.
我编译了它,并将最终的可执行文件命名为“Main”。我的目标是在运行时更改可执行文件“Main”。
但是,在调用open系统调用后,我得到一个负文件描述符,这意味着open失败。
我做错了什么,或者无法通过可执行文件要求自行打开?
答案 0 :(得分:1)
但是,在调用open系统调用后,我得到一个负文件描述符
执行开放系统调用的汇编代码可能不正确。
另一种可能的可能性是你有类似SELinux的东西,而且该政策实际上禁止写入可执行文件。
在strace
下运行您的程序(或您的操作系统的等效项),并查看开放系统调用返回的错误。
答案 1 :(得分:0)
执行程序时,无法修改可执行文件(系统已锁定)。你尝试了一些不可能的事情。