Elf 文件常用工具



1.        Size

2.        Nm

3.        Readelf

 



 

 


4.        Attribute of the Function

以下是常用的几个attribute

a)        __attribute__ format

The format attribute specifies that a function takes printf, scanf stylearguments which should be type-checked against a format string. For example,the declaration:

          extern int

          my_printf (void*my_object, const char *my_format, ...)

                __attribute__((format (printf, 2, 3)));

causes the compiler to check the arguments in callsto my_printf for consistency with the printf style formatstring argument my_format.

b)       __attribute__ noreturn

The noreturn keyword tells the compiler to assumethat function cannot return.

extern void exitnow() __attribute__((noreturn));

c)        __attribute__ const

d)       __attribute__ weak

The weak attribute causes the declaration to be emitted asa weak symbol rather than a global. This is primarily useful in defininglibrary functions which can be overridden in user code, though it can also beused with non-function declarations.

e)        __attribute__ constructor

The constructor attribute causes the function to be calledautomatically before execution enters main ().

f)         __attribute__ destructor

The destructor attribute causes the function to be calledautomatically after main () has completed or exit () hasbeen called.

 

extern void die(const char *format, ...)
  __attribute__((noreturn))
             __attribute__((format(printf, 1, 2)));
 
/*or*/
 
extern void die(const char *format, ...)
  __attribute__((noreturn, format(printf, 1, 2)));
 

g)        __attribute__ alias

定义别名, 可以定义一个函数的别名, 如下可以使用函数fsl_memset代替glibc中的函数memset,

void * memset(void *dst, int val, size_t n) __attribute__((alias ("fsl_memset")));

 

 

http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html

https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/

https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Variable-Attributes.html#Variable-Attributes

 

 

5.         


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Windows操作系统中,我们无法直接查看和解析ELF文件。因为ELF是一种针对Unix和Linux系统的可执行文件格式,而Windows使用的是PE(Portable Executable)格式。 如果我们想查看ELF文件内部的内容,我们可以使用一些第三方工具来实现。例如,我们可以使用一个名为"readelf"的命令行工具。需要注意的是,这个工具必须在Windows上安装一个UNIX环境(如Cygwin或MinGW),因为它是专为Unix和Linux操作系统设计的。 使用readelf工具,我们可以在命令行中执行类似于以下的命令:readelf -a filename,其中"filename"是要查看的ELF文件的路径和名称。该命令将显示ELF文件的所有节(sections)和程序头(program headers)的详细信息,包括节类型、地址、大小、文件偏移等。 另外,我们还可以使用一些反汇编工具,如IDA Pro或Ghidra,来分析和查看ELF文件的汇编代码和符号表。这些工具通常被用于逆向工程和恶意软件分析。 总而言之,在Windows操作系统中查看ELF文件需要使用第三方工具,并且需要一些额外的配置和安装。这主要是因为ELF是Unix和Linux操作系统特有的文件格式,与Windows操作系统并不兼容。 ### 回答2: 在Windows上查看elf文件可以通过以下几种方法进行: 1. 使用专门的ELF文件查看器:可以通过在Windows上安装专门的ELF文件查看器来浏览和查看elf文件。这些工具通常提供了丰富的功能,包括查看文件的头部信息、节区、符号表、重定位表等。 2. 使用反汇编工具:在Windows上安装反汇编工具,比如IDA Pro、radare2等,可以将elf文件导入并进行反汇编,查看其汇编代码和程序逻辑。这些工具通常对符号表和重定位表的解析也比较准确,可以帮助理解elf文件的结构和内容。 3. 使用调试器:在Windows上安装调试器,如GDB或LLDB等,可以将elf文件加载到调试器中,并进行断点调试和变量查看等操作。调试器可以帮助我们深入了解elf文件的执行过程,分析其运行时行为,以及查看内存、寄存器等信息。 4. 使用文件查看工具:使用Windows自带的文件查看工具,如Hex编辑器,可以直接打开elf文件,查看其16进制内容。但需要注意的是,elf文件的结构比较复杂,仅仅查看16进制内容可能无法完全理解其含义,需要结合其他工具来解析。 无论使用哪种方法,我们都需要了解elf文件的结构和格式,以及对应的解析方法,才能准确地查看和理解elf文件的内容。 ### 回答3: 在Windows上查看ELF文件可以通过安装相应的工具来实现。ELF(Executable and Linkable Format)是一种可执行和可链接文件的标准文件格式,主要用于UNIX和类UNIX操作系统。虽然Windows操作系统通常不直接支持ELF文件,但仍然可以用一些工具进行查看。 一种常用的工具是使用Windows上的GCC编译器。GCC是一个开源的编译器套件,包含了很多不同平台上的工具。其中包括一个名为objdump的工具,可以查看和分析各种格式的目标文件,包括ELF文件。可以通过下载和安装MinGW或者Cygwin来获取GCC的Windows版本,并使用其中的objdump工具。 另外,还有一些独立的ELF查看工具可以使用。比如ELF Viewer、elfdump等。这些工具可以提供ELF文件的各种信息,如ELF头部信息、节表、符号表等,以及可以进行反汇编查看代码等功能。 通过这些工具,我们可以查看ELF文件的结构和内容,了解代码和数据的布局、查看符号表、段信息等。可以帮助我们进行ELF文件的分析和调试,以及了解文件中包含的函数、变量等信息。 总之,在Windows上查看ELF文件需要使用特定的工具,如GCC套件中的objdump工具或者独立的ELF查看工具,这些工具可以帮助我们了解ELF文件的结构和内容,进行分析和调试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值