是否可以调用可执行文件的函数?

是否可以调用可执行文件的函数?

我想知道是否可以通过直接调用程序内部工作方法/函数来绕过可执行文件的 GUI。

假设可执行文件是 C/C++ 程序,在 Linux 上具有工作的 Gnome 或 KDE 界面。

答案1

特殊情况下可以这样做。您所描述的类似于通过 C 动态链接加载器动态加载插件:尝试man dlopen了解相关详细信息。通常,所谓的代码必须编译为“位置无关”,因此对于任何特定程序来说,几乎肯定会运气不佳。

你可以看看用户态执行代码以获取有关如何完成此操作的一些提示,但几乎肯定无法执行您所描述的操作。

答案2

这还没有经过测试,这只是我会尝试的。
所以我不知道这是否可以算作答案。

如果您设法使用调试器跟踪执行情况(这是一项耐心的工作)。记下要运行的函数的地址后。您也许可以通过脚本远程控制调试器。请注意,大多数应用程序必须首先执行一些初始化步骤。

会:

  1. 启动调试器
  2. 加载可执行文件
  3. 应用程序初始化后设置断点
  4. 跑步
  5. 到达断点后跳转到函数。

相关内容