OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")/*指定输出可执行文件是elf格式,32位ARM指令,小端*/OUTPUT_ARCH(arm)/*指定输出可执行文件的平台为ARM*/ENTRY(_start)...
分类:
其他好文 时间:
2015-03-31 21:57:50
阅读次数:
143
ldd命令用于判断某个可执行的 binary 档案含有什么动态函式库。参数说明:--version 打印ldd的版本号-v --verbose 打印所有信息,例如包括符号的版本信息-d --data-relocs 执行符号重部署,并报告缺少的目标对象(只对ELF格式适用)-r --functi...
分类:
系统相关 时间:
2015-03-28 23:09:11
阅读次数:
296
关于Linux 32位内存下的内存空间布局,可以参考这篇博文Linux下C程序进程地址空间局关于源代码中各种数据类型/代码在elf格式文件以及进程空间中所处的段,在x86_64下和i386下是类似的,本文主要关注vm.legacy_va_layout以及kernel.randomize_va_space参数影响下的进程空间内存宏观布局。情形一:
vm_legacy_va_layout=1
ke...
分类:
系统相关 时间:
2015-03-09 00:34:17
阅读次数:
568
近期研究了一下elf文件格式,发现好多资料写的都比較繁琐,可能会严重打击学习者的热情,我把自己研究的结果和大家分享,希望我的描写叙述可以简洁一些。一、基础知识 elf是一种文件格式,用于存储Linux程序. 它内部都有一些什么信息呢?大概包含编制好的计算机指令,数据,计算机在须要的时候把这个文件读取...
分类:
其他好文 时间:
2015-01-19 14:04:52
阅读次数:
163
linux elf文件格式浅谈Linux的可执行文件格式ELFLinux中ELF格式文件介绍
分类:
系统相关 时间:
2015-01-18 21:03:41
阅读次数:
171
其实问题的本质是对elf格式的理解问题,因为是查看so库的符号表发现的问题。事情起因是这样的,由于我的一个程序编译的时候出现了undefined reference to “XXX”的错误,需要链接特定的so库,发现用nm [file]找不到“XXX”函数符号,结果用readelf -s [file...
分类:
其他好文 时间:
2014-11-17 11:58:02
阅读次数:
178
问题是这样的: 首先终端上有当前路径显示,我有个可执行程序代码是这样的: FILE fp = fopen(filename, "rb"); if(fp == NULL) printf("cannot open\n");编译出来的可执行程序(elf格式)比如在/home/username下面。file...
分类:
系统相关 时间:
2014-11-05 19:12:43
阅读次数:
215
问题引入:Linux的elf文件一开始理解起来的确很难,有的人可能会去看《linkersandloaders》,这书的确好,但是没有详细的解释很多细节,尤其是从汇编语言视角。我读了这本书很多地方后还是不明白,然后我又读了IBM360计算机的汇编器设计文档,里面详解了二次扫描汇编器的设计原..
分类:
编程语言 时间:
2014-11-01 06:28:29
阅读次数:
225
#include
#include
#include
#include
#include
#include
#include
#include "elf.h"
#define FALSE 0
#define TURE 1
#define MAX_SIZE 52
#define Elf_Ehdr Elf64_Ehdr
int OpenElf(char *fi...
分类:
其他好文 时间:
2014-09-12 08:55:13
阅读次数:
258
#include "elf.h"
#include
int main(int argc, char *argv[])
{
FILE *fp;
int i = 0;
int fd = 0;
Elf64_Ehdr ehdr;
if ((fp=fopen(argv[1],"r"))==NULL)
{
...
分类:
其他好文 时间:
2014-09-12 08:55:03
阅读次数:
259