elf

    1热度

    1回答

    我正在研究elfdump命令的克隆。 在所有可执行文件上运行elfdump -ecps *file*时,我的程序都正常工作。但是,当我在库文件上运行我的程序时,比如说libc.so,它会在.symtab节中为所有符号打印出错误的版本号(具体而言,它们都是零)。我已经仔细查看了文档,但我无法弄清楚为什么会发生这种情况。 有人可以提供一些提示吗?或者可能如何检测它是否是一个库,所以我可以硬编码一个0?

    0热度

    1回答

    是否存在一种方法来捕获写入写保护页面? 我打算做一个自我喜欢的对象系统,在其中复制对象来实例化它。 (因为它听起来简单而紧凑)显然,为此目的创建的对象应该以某种方式被写保护。我已经看到有一种方法可以标记ELF中程序头部写保护的内容。 (RE,RWE,RW-标志) 这是否提供写保护?我记得它应该引起段错误,这是真的吗?如何将写入写入写保护页面。这是一个很好的方式来实现我想要的,有没有更好的方法?

    3热度

    2回答

    我想让我的一些代码对非纯粹的ascii系统更友好一些,并且想知道是否有一个特定的字符编码用于ELF二进制文件中的NEEDED条目,或者它是非常不规范的,并且基于创建系统的文件系统编码(或者甚至直接传递给创建二进制文件的字节)(假如当前系统编码不适合我的用法,想想),非ASCII名称几乎被禁止或其他?

    3热度

    5回答

    我希望能够从shell中执行以下一项或多项操作: - 从程序中调用任何函数,而不仅仅调用主要的 - 传递不仅是字符串(不仅是字符串) - 的参数 - 程序返回不仅是int(来自main的返回码) - 将返回的值分配给shell级变量以便能够将它们传递给其他程序 您明白了。例如python toplevel允许python程序使用这个。 C++呢? 或在Linux上的ELF替代品,将允许?

    4热度

    4回答

    有一个动态链接到共享对象数的可执行文件。我怎样才能确定,他们中的哪一个符号(导入到可执行文件)属于哪个? 如果有不止一种可能性,我是否可以模拟ld并看看它被拍摄的位置?

    3热度

    1回答

    我一直对链接器的工作方式感到困惑,并且这是一个难以搜索的主题。 为了证明我的问题,并提供一个答案的框架,我会放下我所知道的(或想我知道)为止。我可能是非常错误的。 :) 首先,每个.cpp文件构建成中间文件(.o对于POSIX/ELF和.OBJ为Win/PE我相信)。该中间文件包含由它构建的.cpp定义的所有符号,并且具有关于需要正确解析哪些外部链接的说明。作为对此的扩展,Posix系统允许您将.

    4热度

    4回答

    我有一个由第三方创建的可执行模块。我想将我的代码(在单独线程中运行的看门狗)“注入”到这个过程中。 到目前为止,有两种可能的方式 - 一种是将我的代码作为可执行文件运行并动态地将代码加载到它上面(似乎非常困难和棘手),或者使我的代码成为共享对象,通过LD_PRELOAD并从一些静态变量构造函数初始化。 有没有更方便的方法来做到这一点? 我的操作系统是Linux x86和Solaris-SPARC。

    12热度

    5回答

    有没有一种实用工具,可以采取ALL的SO这么一个精灵的需要把它们变成静态然后转换精灵是如此的自由?