elf相关内容

如何像堆,栈,文字的不同环节涉及到的物理内存?

在一个C程序进行编译和创建目标文件(ELF)。目标文件中包含不同的部分,如BSS,数据,文字等段。我理解的是,ELF的这些部分是虚拟内存地址空间的一部分。我对吗?请纠正我,如果我错了。 此外,将有与编译程序相关联的虚拟存储器和页表。页表加载程序时,在ELF虚拟内存地址present关联到真实的物理内存地址。是我的理解是否正确? 我看了,在创建ELF文件,BSS部分只是保持未初始化的全局 ..
发布时间:2016-08-18 13:52:15 C/C++

差异位置无关code:86 VS X86-64

我最近针对建设x86-64架构有一定的共享库(ELF),像这样的: G ++ -o binary.so -shared --no-不确定... -lfoo -lbar 这失败,出现以下错误: 创建共享对象时对`局部符号“搬迁R_X86_64_32不能使用;与-fPIC编译 当然,这意味着我需要重建它作为独立的位置code,所以它适合用于链接到共享库。 但是,这工作得很好在x86上 ..
发布时间:2016-08-18 12:56:34 服务器开发

分割故障原因在Linux字符数组和指针用C

所以,我有以下程序: INT的main(){ 字符*一=“电脑”; 烧焦2个[] =“另一个”; 有2个[1] ='B'; [1] ='B'; 返回0; } 它出现segfaults,因为,要必须在读取内存指针“一”点只读存储器这是有道理的行“[1] ='B'。”然而,问题是为什么不就行“两[1] ='B'”段错误?纵观汇编输出从GCC: .file“one.c” ..
发布时间:2016-08-17 23:19:10 服务器开发

什么R_X86_64_32S和R_X86_64_64搬迁呢?

得到了下面的错误,当我试图编译在64位的FreeBSD C应用程序: 创建共享对象时 搬迁R_X86_64_32S不能使用;与-fPIC编译 什么是 R_X86_64_32S 搬迁的,什么是 R_X86_64_64 ? 我GOOGLE了有关该错误的,它是可能的原因 - 这将会是巨大的,如果有人能告诉什么R_X86_64_32S的真正含义。 解决方案 的 R_X86_64_3 ..
发布时间:2016-08-17 22:00:28 C/C++

错ELF类 - PHP扩展

我试图加载PHP扩展(sdo.so),但我收到以下错误,当我尝试运行XAMPP。 PHP的警告:PHP启动:无法加载动态库'/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/sdo.so' - /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/sdo.so:错ELF类:E ..
发布时间:2016-08-16 13:40:42 PHP

微小的"手动"创建ELF赋予段错误

从的移植可执行的和Windows产品,我想创建一个小的 ELF 可执行文件的 NASM 的中的的Linux(Ubuntu的AMD64) 的。我的小件code看起来是这样的: 位64 ;其中的可执行文件链接默认的虚拟地址 _START_VAD EQU为0x400000;在这里,我通过写字节的头字节 ELF_HEADER: .ident_magic DB 0x7F的,“ELF” .i ..
发布时间:2016-08-16 13:29:09 服务器开发

我怎样才能找到一个ELF二进制C ++中所需的动态库?

我怎样才能得到全部是用C ++在linux的ELF程序所需的动态库的列表? 有一次,我已经成功地提取二进制我可以通过在 PATH 搜索找到实际的文件中的信息(文件名),但我一直没能够找到关于从ELF二进制提取重整的信息的任何信息。 思考? 解决方案 您可以拨打“readelf -d”程序,并解析输出: readelf -d的/ usr / bin中/ readelf | grep的 ..
发布时间:2016-08-06 22:42:07 服务器开发

如何PE(可移植可执行)格式转换为ELF在Linux

什么是转换PE二进制文件的ELF可执行文件的最佳工具? 下面是此问题的一个简短的动机: 假设我有一个简单的C程序。 我用它GCC为Linux(这给ELF),并使用“i586的-mingw32msvc-GCC”的Windows(这给出了一个PE二进制)编译。 我要分析这两个二进制文件相似,使用Bitblaze的静态分析工具 - 藤( HTTP: //bitblaze.cs.berkele ..
发布时间:2016-08-06 22:32:55 服务器开发

任何人都已经能够创建PE COFF和ELF的混合体?

我的意思是可以在Win32和Linux的I386一个二进制文件运行? 解决方案 这是不可能的,因为这两种有冲突的格式: PE文件的最初两个字符必须是'M''Z'; ELF文件的最初四个字符必须是'\\ 0x7F部分''E''L''F'。 显然,你不能创建一个文件,该文件satisifies这两种格式。 在回答关于一个通晓多国语言的二进制既是一个16位的COM文件和一个Lin ..
发布时间:2016-08-06 22:18:04 服务器开发

如何从自身取得的指针的节目的特定部分? (也许用了libelf)

我在Linux环境下,我需要做检索一些数据被放置在其部分之一的程序。因此,如何从自身取得的指针的节目的部分(通过它的名字)? 我知道这是可能使用 elf_getdata()传递部分作为参数的索引来获取和 Elf_Data 结构和这个结构的领域之一是 d_buf ,这是一个指向实际的数据。然而,似乎在 elf_getdata()功能使部分数据的副本从文件到记忆这不是我想要的。我想的指针的数据已经被 ..
发布时间:2016-07-18 21:31:06 服务器开发

编辑ELF程序调用指令

我玩弄操纵二进制的通话功能。我有以下code: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&string.h中GT;无效myfunc2(字符* STR2,字符* STR1); 在此输入code无效MYFUNC(字符* STR2,字符* STR1) { 的memcpy(STR2 +的strlen(STR2),STR1, ..
发布时间:2016-07-18 21:19:25 .NET Framework

我可以将所有的章节" objdump的-s -d ELF文件"生成到一个重新组装能力的文件?

ELF文件的静态链接 和目前objdump的输出是一样的东西: 部分拆卸:.init:XXXXXX.PLT:部分拆卸:XXXXXX的.text:部分拆卸:XXXXXX 基本上是我想要实现的是 “ELF文件 - (由objdump的反汇编) - >文件汇编 - (重新编译) - > 相同的功能” 我不需要重新编译的二进制文件的二进制内容和原来一样的,唯一的相同的功能就足够了。 快速搜索后,基 ..

锵产生崩溃code。与-nostdlib

我跟一个可执行建立我自己的运行环境玩弄了,我不能让铛(v3.4-1ubuntu1,目标:x86_64的-PC-Linux的GNU),以产生不可执行段错误。我已经减少该问题为以下: 如果我有一个文件crt1.c,什么也不做,除了满足对_start符号链接要求: 无效 _start(字符*参数,...) { } 然后我用铛-nostdlib crt1.c ,它产生以下可执行文件(从 objdu ..
发布时间:2016-07-18 21:01:49 .NET Framework

为什么在我的可执行文件的入口点地址为0x8048330(0x330所抵消.text段中)

我写了一个小程序添加到整数,并使用“readelf -a executable_name”这表明入口点地址ELF头为: 入口地址:0x8048330 我的可执行文件是如何知道这个地址预先加载器加载到内存中甚至在? elf_format.pdf说,这成员给出了虚拟地址到系统首先将控制权转移,从而启动进程。任何人都可以请解释什么是这句话的意思,什么是这里的虚拟地址的意义? 也让我知道了,从哪里 ..
发布时间:2016-07-18 20:42:09 服务器开发

澄清二进制文件(PE / COFF和放大器; ELF)格式和放大器;术语

我在术语混淆不大。 这是作为输入到链接器的文件被称作对象文件。 链接器生成一个图片文件,而这又是用作加载程序的输入。 我得到这个从“MS PE&放大器; COFF规范” Q1。图片文件也被称为二值图像,二进制文件或只是二进制。对? Q2 因此,根据上述术语中,PE / ELF / COFF是的的格式图像文件的&放大器。不是的目标文件。的吧?但是, ..
发布时间:2016-07-18 20:41:49 服务器开发

在用户空间加载ELF文件用C

我试图加载在64位x86环境的Linux上,“GCC -m32 test.c的-o test.exe的”编译的ELF文件。我试图加载它具有以下核心逻辑(32位ELF)的用户空间ELF加载器内部的32位文件(test.exe的):= 问题是调用到在返回的起始地址的结果 分割故障核心转储。这里是code:= 无效* image_load(字符* elf_start,无符号整型大小) { Elf ..
发布时间:2016-07-18 20:34:40 服务器开发

什么是默认的寄存器状态时,程序启动(ASM,LINUX)?

在程序启动(Linux中,小精灵) - 有在 EAX , EBX 零等,或有可以是任何东西(我没有做任何电话或使用的extern libraryies)?在我的机器真是这样,我可以这样写行为ASM programms的时候继电器? 解决方案 这在ABI完全取决于每个平台。既然你提到 EAX 和 EBX 让我们来看看有什么针对x86的情况。在 FS / binfmt_elf.c 线#972, ..
发布时间:2016-07-18 19:58:57 服务器开发