我需要在执行 ELF 文件时执行命令。
例如:Running/usr/bin/file
这是一个已经编译好的ELF Binary,执行命令touch /tmp/file_is_executed
如果可以的话,我会重新编译代码并将我想要的命令添加到源文件中。但是,我没有源代码,所以我必须处理编译后的版本。
我需要在执行 ELF 文件时执行命令。
例如:Running/usr/bin/file
这是一个已经编译好的ELF Binary,执行命令touch /tmp/file_is_executed
如果可以的话,我会重新编译代码并将我想要的命令添加到源文件中。但是,我没有源代码,所以我必须处理编译后的版本。
如果您只是为了自己快速解决这个问题,您可以使用一个函数来覆盖目标命令:
但是,如果您希望它从不透明的应用程序中跟踪命令的执行情况,或者当其他人执行命令时,函数不一定在您需要时可用。
/usr/bin/file
同样,如果使用完整路径(即而不是)调用目标可执行文件file
,则不能使用此方法。在这些情况下,您可以创建自己的目标可执行文件实现。请注意,没有解决方案会更改您在问题中描述的 ELF 可执行文件。(修补二进制文件是一项非常重要的操作。)
/usr/bin/file
只为你工作的例子:创建一个脚本(您可能首先
~/bin/file.sh
需要):mkdir ~/bin
使脚本可读和可执行
将脚本安装为真实的东西
确保 ~/bin 在你
$PATH
之前/usr/bin
/usr/bin/file
适用于所有人的示例(您需要 root 权限才能执行此操作,因此需要sudo
、doas
或 之类的内容):su
创建一个脚本作为
/usr/bin/file.sh
使脚本可读和可执行
将脚本安装为真实的东西