首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux命令讲解大全】054.readelf:展示ELF格式文件信息的工具

    readelf 用于显示elf格式文件的信息 补充说明 readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。...objdump提供的功能类似,但是它显示的信息更为具体,并且它不依赖BFD库(BFD库是一个GNU项目,它的目标就是希望通过一种统一的接口来处理不同的目标文件),所以即使BFD库有什么bug存在的话也不会影响到readelf...运行readelf的时候,除了-v和-H之外,其它的选项必须有一个被指定。...-v 或 --version:显示readelf的版本信息。 -H 或 --help:显示readelf所支持的命令行选项。 -W 或 --wide:宽行输出。...0x000134 0x08048134 0x08048134 0x00013 0x00013 R 0x1 Requesting program interpreter: /lib/[ld-linux.so

    57810

    Hacker基础之Linux篇:进阶Linux命令三

    今天我们进行第三课,更深入的了解Linux下程序调试内容 Linux C程序的调试 这里我们会用到一些更高级的工具 objdump objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,...这里注意,不能单独使用-j或者--section 更多的选项可以常见man手册 readelf 这个工具和objdump差不多,但是它显示的信息更为具体,并且它不依赖BFD库 这个程序也是在Ubuntu...显示文件头信息 我们还是用原来那个可执行文件11来做演示 执行 readelf -h 11 结果 ? 2. 显示文件头表信息 readelf -l 11 结果 ? 3....显示所有信息 这个就简单暴力了 readelf -all 11 结果 ? ? ? 等等 这两个命令主要面对的是汇编调试或者二进制分析 下节我们介绍几个文件类型检查和病毒文件测试分析的小技巧命令

    78530

    Linux内核级木马与病毒攻防:基础工具介绍

    要想在Linux系统上开发或研究木马病毒等特殊程序,我们需要使用一系列强大的开发和调试攻击。本节先介绍几种在Linux系统上极为强大的工具。...第一个当然是gdb了,在Linux上,它是唯一能用于程序调试的利器。...; } 然后使用gcc编译成可执行文件,命令如下: gcc -Wall -g hello_world.c -o hello_world 注意到gcc也是在Linux上进行程序开发必不可少的编译器...如果要分析ELF可执行文件格式内容,一个必不可免的工具为readelf,它能有效读取elf文件内各种关键信息。该工具在后续章节中将会被大量使用。几个常用方法为: readelf - S ....readelf -s ./sys_read 该命令读取可执行文件的符号表。 readelf -r ./sys_read 该命令读取可执行文件的重定向入口。

    1.5K10

    几个命令了解ELF文件的”秘密“

    来源:公众号【编程珠玑】 作者:守望先生 网站:https://www.yanbinghu.com 前言 在Linux中,可执行文件的格式是ELF格式,而有一些命令可以帮助我们了解它们更多的“秘密”,以此来帮助我们解决问题...查看ELF头 readelf用于查看ELF文件,而: $ readelf -h hello ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00...例如你在x86的机器上交叉编译出powerpc的可执行文件,在powerpc上却不被识别,不能运行,不如用readelf看看它的Machine字段,是不是没有编译好。...不如看看它链接了哪些库吧: $ ldd hello linux-vdso.so.1 => (0x00007ffd16386000) libc.so.6 => /lib/x86_64-linux-gnu.../x86_64-linux-gnu/libc.so.6,而如果该文件不存在,则运行时将会出错。

    2.3K20

    【胖虎的逆向之路】——GOTPLT Hook详解&针对自定义so库的Hook实操

    字符对应的 ASCII 码 ; 而节头表SHT(section_header_table ) 和 程序头表PHT(program_header_table) 的偏移地址也显示出来了~ 运行命令: arm-linux-androideabi-readelf...没关系,我也是,先了解大概意思,慢慢往下走~ 运行命令: arm-linux-androideabi-readelf -S xxx.so 2.2、 ELF中程序头表是什么北北呢?...比如我们看setopt函数这个重定位入口,它的类型为R_AARCH64_JUMP_SL,它的偏移为0x000000066400,它实际上位于.got中 运行命令: arm-linux-androideabi-readelf...come on~ 1、 .dynsym检索 .dynsym:在之前的描述中,这个节里只保存了与动态链接相关的符号导入导出 我们先来找到自定义的目标函数curl_a_website: 运行命令: arm-linux-androideabi-readelf...运行命令: arm-linux-androideabi-readelf -r xxx.so 其中,我们可以看到 curl_a_website 的偏移是 0x3070 ,那么得到了偏移值,基址怎么确定呢

    1K41

    动态链接的相关结构

    我们往往可以用这个命令来查看一个可执行文件所需要的动态链接器的路径,在linux下,往往是这个结果: readelf -l a.out | grep interpreter [Requeseting...program interpreter: /lib/ld-linux.so.2] 而当我们在FreeBSD 4.6.2 下执行这个命令时,结果是: readelf -l a.out | grep interpreter...64 位的linux下的可执行文件是: readelf -l a.out | grep interpreter 2. “.dynamic”段 类似于“.interp”这样的段,ELF中还有几个段也是专门用于动态链接的...使用readelf工具可以查看 ".dynamic" 段的内容 $ readelf -d lib.so ? ? 另外linux还提供了一个命令用来查看一个程序主模块或一个共享库依赖于哪些共享库: ?...我们可以用readelf工具来查看elf文件的动态符号表及哈希表: readelf -sD lib.so ?

    1.7K20

    程序一定要从main函数开始运行吗?

    Linux一般程序的入口是__start函数,程序有两个相关的段: init段:进程的初始化代码,一个程序开始运行时,在main函数调用之前,会先运行.init段中的代码。..."); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr.../test hello 上面的tinytext一行是指将.text段、.data段、.rodata段的内容都合并到tinytext段中,使用readelf查看段的信息。...~/test$ readelf -S test ~/test$ There are 6 section headers, starting at offset 0x482a0: Section Headers...-h 列出文件头 readelf -S 列出每个段 readelf -r 列出重定位表 readelf -d 列出动态段 关于查看目标文件符号信息: nm -a 显示所有的符号 nm -D 显示动态符号

    1.2K30

    含大量图文解析及例程 | Linux下的ELF文件、链接、加载与库(中)

    我们通过readelf -l [fileName]可以直接查看到程序头表。...总体来说,在程序加载过程中,磁盘上的可执行文件,进程的虚拟地址空间,还有机器的物理内存的映射关系如下: Linux下的装载过程 接下来我们进一步探究一下Linux是怎么识别和装载ELF文件的,我们需要深入...Linux内核去寻找答案 (内核实际处理过程涉及更多的过程,我们这里主要关注和ELF文件处理相关的代码)。...我们通过readelf来查看a.out文件的信息: readelf -h a.out 输出: 我们这里看到,程序的入口地址是:Entry point address: 0x400a80。...动态链接的实现机制 程序头表 我们同样用readelf -l [fileName]来查看动态链接的可执行ELF文件的程序头表: readelf -l a.out 可以看到编译完成之后地址是从 0x00000000

    3.1K21
    领券