elf

    0热度

    1回答

    我正在为writing a compiler这个过程生成用于i386平台的ELF可执行文件。 但是,我需要一个很好的参考文件格式(有关标题,重定位等信息)。 有没有这样的参考?

    2热度

    2回答

    我正在创建一个ELF可执行文件,我需要知道操作系统需要哪些部分才能加载和执行它。 详情: OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386 我认识到,下面很可能是必要的: 的.text 的.symtab .rel.text 有其他吗?

    3热度

    4回答

    如我们所知.bss包含未初始化的变量。如果在c代码中,程序员在使用它们之前初始化变量。那么.bss在执行C代码之前不必为零。 我对不对? 由于

    9热度

    2回答

    嘿,我已经手工创建了一个ELF文件,它有两个部分(.text和.shstrtab)和一个加载.text部分的程序头。 .text段是非常小的,它仅由以下三个指令...... # and exit movl $0,%ebx # first argument: exit code movl $1,%eax # system call number (sys_exit)

    19热度

    3回答

    我试过以下,但生成的文件仍然是一个ELF,而不是纯粹的部分内容。 $ objcopy --only-section=<name> <infile> <outfile> 我只是想要部分的内容。有没有可以做到这一点的工具?有任何想法吗?

    5热度

    5回答

    #include <stdio.h> const int str[1000] = {0}; int main(void) { printf("arr is %d\n", str[0]); return 0; } 具有以下的输出: [-exercises/adam/stack2]:size a.out text data bss dec hex f

    3热度

    1回答

    我有一个ELF共享对象,我想对其进行修改,以便系统函数memcpy的调用实际上路由到memcpy的自定义版本。 我一直研究和我看了一下PLT重定向和ELF感染,但即时通讯仍然不知道如何,我可以完成我的目标 任何人都可以给我一些暗示和提示,或详细阐述PLT重定向和ELF感染 问候 保罗

    2热度

    1回答

    假设x86 64和linux平台。 如果您查看ELF标头,偏移量都是64位。 因此,通过重定位R_X86_64_64可以轻松创建大于4G的目标文件。这意味着一个静态的.o文件和可执行文件可以像64位一样大。 但是,对于像gcc这样的共享库,我们只有R_X86_64_PLT32重定位。这意味着创建大于4GB的共享库是不可能的,对吧? 因此,如果我想构建一个巨大的程序,其中一个.o文件足够大(> 4G

    9热度

    4回答

    假设我有一个动态链接的ELF二进制文件,并且我想覆盖/重定向某些库调用。我知道我可以用LD_PRELOAD来做到这一点,但我想要一个在二进制文件中永久存在的独立于环境的解决方案,它适用于setuid/setgid二进制文件,其中没有一个可以实现。 我想要做的是从其他目标文件(可能在新的部分,如有必要)添加代码,并将这些目标文件中的符号添加到二进制符号表中,以便新添加的代码版本获取用于代替共享库代码

    20热度

    5回答

    我有一个.a文件,我想从中获取架构信息。运行file myFile.a结果在file.a: current ar archive。如何获得更多关于该文件包含哪些体系结构的信息?