ICode9

精准搜索请尝试: 精确搜索
  • 如何找到PIE二进制文件的负载重定位?2019-07-27 00:51:06

    我需要在运行过程中获取堆栈的基址.这将使我能够打印addr2line将理解的原始堆栈跟踪(运行二进制文件被剥离,但addr2line可以访问符号). 我设法通过检查argv [0]的elf标题来做到这一点:我读取入口点并从& _start中减去它: #include <stdio.h> #include <execinfo.h> #include <unistd

  • ELF.cs2019-07-26 21:38:53

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using static Il2CppDumper.ElfConstants; namespace Il2CppDumper {     public sealed class Elf : Il2Cpp     {         private Elf32_Ehdr elf_header;         priva

  • 将ELF共享库和自定义binfmt可执行文件加载到相同的Linux地址空间中2019-07-25 20:51:40

    我正在开发一个项目来加载和运行Linux平台上的自定义二进制格式可执行文件(在我的例子中是PE).到目前为止,我已经成功地完成了这项工作,首先加载可执行文件,然后加载一个调用可执行文件起始地址然后安全退出的小型ELF共享库. 不过,出于某些原因,我真的不想自己装ELF.首先,我使用的

  • c – 如何计算ELF文件中的静态初始化程序?2019-07-25 16:51:28

    我正在尝试计算C文件中的静态初始化程序. 我已经拥有的解决方案(曾经使用过gcc-4.4)正在查看.ctors ELF部分的大小. 在升级到gcc-4.6之后,这似乎不再返回有效结果(计算出的静态初始化器的数量为0,这与现实不匹配,例如由nm返回). 现在的问题是,即使没有符号,我也希望解决方案能够工

  • 如何使用go1.6.2为Linux 32位构建2019-07-22 12:52:41

    我可以设置GOARCH和GOOS值的任意组合以构建ELF 32位二进制文​​件吗?解决方法:GOOS = linux和GOARCH = 386. 更多示例:架构: 32-bit -> GOARCH=386 64-bit -> GOARCH=amd64 OS: Windows -> GOOS=windows Linux -> GOOS=linux OS X -> GOOS=darwin FreeBSD -> GOOS=freebsd

  • c – FreeBSD和Linux中的ELF文件结构2019-07-21 21:50:46

    在PE(对于Windows)中,可以通过#include< windows.h>读取该结构的标题/部分.例如,可以使用struct PIMAGE_DOS_HEADER来读取任何PE文件中的dos标头. 我如何在FreeBSD / Linux中为ELF头做到这一点?需要在C/C++代码的头部添加什么样的预处理器? 根据ELF的结构,FreeBSD和Linux有什么区别吗

  • linux – 使用调试符号获取源代码2019-07-15 01:51:30

    是否有可能获得使用调试信息(gcc .. -g)编译的linux共享库(.so)的源代码?感谢您的时间.解决方法:棘手的问题.简单的答案是不,你不能. 但是,如果您了解程序集,则可以使用objdump,gdb等工具来反汇编应用程序.从组装中,熟练的程序员可以重新编写应用程序.这不是一件容易的事,根据目标应

  • ld连接器目标文件elf2019-07-14 13:41:26

    linux标准的目标文件格式ELF文件(Executable and Linkable Format)可执行可连接。 ELF文件是UNIX系统目标文件COFF的变种。其文件中包含代码、数据,还包含重定位信息、调试信息、、符号表等其他信息。由一组严格定义的数据结构序列组成。(.o文件为可重定位文件) ELF文件在系统环境下

  • Linux计算机进程地址空间与内核装载ELF2019-07-12 09:41:16

    原文链接:http://www.cnblogs.com/ITlearning/p/3163175.html 本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。   一、初识Linux

  • linux – 如何将elf中的地址转换为物理地址2019-07-09 09:50:22

    我知道操作系统会将精灵加载到物理内存中.执行jmp elf-address时,系统会检查tlb并将elf-address转换为物理地址.我很困惑,elf-address没有段num和页面num? os如何将elf-address转换为MMU需要的内容. 我真的很困惑. 我知道linux会读取精灵和地图精灵的标题.当页面错误发生时,内核会将

  • 在运行时加载Linux库2019-07-03 21:38:36

    我认为Linux中的一个主要设计缺陷是以二进制而不是源代码形式分发程序时的共享对象. 这是我的具体问题:我希望以ELF二进制形式发布一个Linux程序,该程序应该在尽可能多的发行版上运行,因此我的强制依赖项尽可能低:在任何情况下唯一需要的库是libpthread,libX11,librt和libm(当然还有g

  • linux – 使用ELF文件的“.init_array”部分2019-07-02 10:49:48

    如果需要在程序启动时运行一段代码(在Linux上),如何正确使用可执行文件(ELF32-i386)的.init_section?我有以下代码(GNU汇编程序),它具有ctor初始化函数,并且该函数的地址放在.init_array部分: .intel_syntax noprefix .data s1: .asciz "Init code\n" s2: .asciz "Main code\n" .glo

  • linux – ELF文件可以包含多个符号表吗?2019-07-01 01:37:53

    ELF文件可以包含多个符号表吗? 它以某种方式标准化了吗?解决方法:是 – 可能有SHT_SYMTAB和SHT_DYNSYM部分类型 – 不同部分中的本地和动态符号,每个部分都带有符号表. 是的,有一个ELF标准. 见:http://www.skyfree.org/linux/references/ELF_Format.pdf 你想做什么?

  • linux – 强制二进制文件使用特定(较新)版本的共享库(.so)2019-06-28 11:37:53

    我有一个较旧的二进制可执行文件(utserver,闭源),我试图在运行Fedora 22的系统上运行. utserver想要openssl_1.0.0 – F22提供openssl_1.0.1k 我做了两个符号链接: $sudo ln -s /usr/lib64/libssl.so.1.0.1k /usr/lib64/libssl.so.1.0.0 $sudo ln -s /usr/lib64/libcrypto.so.1.0

  • linux – 共享库中的重定位条目2019-06-26 14:41:02

    我正在调查共享库的重定位,并遇到了一些奇怪的问题.考虑以下代码: int myglob; int ml_util_func(int p) { return p + 2; } int ml_func2(int a, int b) { int c = ml_util_func(a); return c + b + myglob; } 我用gcc -shared将它编译为非PIC共享库.我在运行x86的

  • Linux ELF文件:静态和动态ELF程序的哪个字节不同?2019-06-26 13:38:11

    我正在使用linux elf文件. 我想检测,如果给定的精灵程序静态链接(完全静态链接,ldd说“不是动态可执行文件”)或动态链接. ELF适用于嵌入式Linux,因此我不能只运行它或使用ldd实用程序. 我希望通过读取和检查一些字节在我的程序中完全执行此操作.我不想依赖文件实用程序或libelf,bi

  • python – 是否有ELF的PEFile2019-06-25 11:43:54

    我喜欢使用Python的PeFile库来解析PE文件.是否有类似的库来解析ELF?解决方法:你应该看看pyelftools 它支持ELF和DWARF二进制格式.这是一个正在积极发展的项目.

  • linux – 比较可执行文件或目标文件2019-06-23 22:39:03

    我有两个应该从相同的源版本生成的文件.其中一个文件被剥离. 是否可以比较文件的原始可执行部分以确定它们是否相同?也可以在目标文件(特别是.ko linux内核模块)上完成? 最好的祝福解决方法:我会尝试使用 objdump -d file1>a objdump -d file2>b diff a b 或者,正如F.Hauri建议的那

  • 如何获取指向动态库(Linux ELF)特定部分的指针?2019-06-20 18:39:25

    从second answer for this question中可以看出,使用节的名称从内部获取指向程序特定部分的指针非常简单.使用libelf,只需打开程序自己的文件,遍历其中的所有部分(由Elf64_Shdr结构表示),当部分名称与您想要的部分匹配时停止,并使用存储在Elf64_Shdr结构的sh_addr元素中的指针.在这

  • 如何将ELF可执行文件转换为C代码?生成的C代码不需要是人类可读的2019-06-20 10:38:27

    我有一个ELF文件,我想反编译成C代码,并对生成的C代码进行简单的更改,并将其重建为ELF. 反编译的C代码不需要完全是人类可读的.例如,如果变量和函数名称被混淆,那就没关系. 我可以使用哪些工具在Linux上完成此操作? PS:如果反编译为C不可能或不容易,我愿意考虑反编译为汇编语言,虽然调

  • c – ELF格式操作2019-06-13 22:37:50

    我有一个要求,我想将索引与文件(以某种格式)相关联.我想知道我是否可以进行任何ELF操作并仍然确保保持一致性,因此,该文件在linux上运行良好.这里的想法是创建一个文件格式,可以通过某个API [自定义]查询以获取索引. a)是否可以修改ELF头来存储索引(如上所述). b)如果是,那么过程是

  • GDB2019-06-13 18:50:41

    前言 示例程序 查看文件基本信息—file 查看程序依赖库—ldd 查看函数或者全局变量是否存在于elf文件中—nm 打印elf文件中的可打印字符串—strings 查看文件段大小—size 为elf文件”瘦身“—strip 查看elf文件信息—readelf 反汇编指定函数—objdump 端口占用情况查看—n

  • 枚举当前加载的所有共享对象的所有ELF部分2019-06-13 18:38:28

    我正在寻找一种很好的方法来枚举所有ELF部分及其当前二进制文件的地址以及当前进程可能已加载的所有共享对象. 我知道dl_iterate_phdr()的存在,这给了我一个易于使用的ELF段列表,但我正在寻找ELF段,所以这对我来说不是正确的. 我不关心可移植性,只要它在带有ELF的Linux上运行我很高

  • 将运行Linux进程中的内存地址范围转换为目标文件中的符号?2019-06-11 01:39:14

    这是文件/ proc / self / smaps的片段: 00af8000-00b14000 r-xp 00000000 fd:00 16417 /lib/ld-2.8.so Size: 112 kB Rss: 88 kB Pss: 1 kB Shared_Clean: 88 kB Shared_Dirty: 0 kB Private_Clean:

  • linux – ELF文件TLS和LOAD程序部分2019-06-10 13:38:32

    int i; int main() { return i; } -static编译后readelf -l显示来自elf的程序头: Elf file type is EXEC (Executable file) Entry point 0xxxxx30 There are 6 program headers, starting at offset 52 Program Headers: Type Offset VirtAddr PhysAd

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有