-
ELF Format 札记(二)—— ELF Header
ELFFormat笔记(二)——ELFHeader以32位的ELFheader数据结构为例:1#defineEI_NIDENT162typedefstruct{3unsignedchare_ident[EI_NIDENT];4Elf32_Halfe_type;5Elf32_Halfe_machine;6Elf32_Worde_version;7Elf32_Addre_entry;8Elf32_Of...
86
热度 -
ELF Format 札记(一)—— 概述
ELFFormat笔记(一)——概述ELFObjectfiles参与程序的链接和执行,从这两个角度分别有两种视图:ELFheader位于文件的最开始处,描述整个文件的组织结构。ProgramHeaderTable告诉系统如何创建进程镜像,在执行程序时必须存在,在relocatablefiles中则不需要。每个programheader分别描述一个segment,包括segment在文件和内存中的大...
256
热度 -
怎么玩转ELF(*so)
如何玩转ELF(*.so)Sharedlibrarycanbeconfusinganderroneous.Itisveryvulnerabletoget"undefinedsymbols"error.Therearesomegoodtoolscanbeusedtoanalyzethesofileandhelpustolocatetheerror.A.Toolsdealingwi...
1463
热度 -
elf文件?该怎么解决
elf文件?各位,大家好,请问elf文件programmheader中p_offset(段在文件中的偏移)字段为0是什么意思啊,sectiontablehead中相应的字段不为0啊。最近在看自己动手写操作系统一书,对这个问题很是困惑,希望大家讲一讲。谢了color='#e78608'>------解决方案-----------------------------------------------...
4540
热度 -
ELF Format 札记(十一)—— 程序头结构
ELFFormat笔记(十一)——程序头结构ilocker:关注Android安全(新手)QQ:2597294287程序头表(programheadertable)是一个结构体数组,数组中的每个结构体元素是一个程序头(programheader),每个程序头描述一个段(segment)。一个so通常有两个可加载段(LOAD)段,androidlinker在加载so时会根据LOAD段在内存中的最大虚...
74
热度 -
ELF Format 札记(三)—— Section Types
ELFFormat笔记(三)——SectionTypesELF文件中会包含很多section,所有的section都在sectionheadertable中有对应的一项,每个sectionheader都是一个Elf32_Shdr结构,用于描述相应section的信息。Elf32_Shdr结构中有一个sh_type成员,用于指明section的类型。SHT_NULL:无效的sectionheader...
438
热度 -
ELF Format 札记(十)—— 重定位(relocation)
ELFFormat笔记(十)——重定位(relocation)ilocker:关注Android安全(新手)QQ:2597294287重定位就是把符号引用与符号定义链接起来的过程,这也是androidlinker的主要工作之一。当程序中调用一个函数时,相关的call指令必须在执行期将控制流转到正确的目标地址。所以,so文件中必须包含一些重定位相关的信息,linker据此完成重定位的工作。这些重定位...
70
热度 -
ELF Format 札记(十五)—— 符号哈希表
ELFFormat笔记(十五)——符号哈希表ilocker:关注Android安全(新手)QQ:2597294287符号哈希表用于支援符号表的访问,能够提高符号搜索速度。下表用于解释该哈希表的组织,但该格式并不属于ELF规范。bucket和chain数组中都保存有符号表的索引,数组大小分别为nbucket和nchain。先来看androidlinker中的hash函数:给定一个符号名字,返回一个哈...
105
热度 -
ELF Format 札记(十四)—— 段内容
ELFFormat笔记(十四)——段内容ilocker:关注Android安全(新手)QQ:2597294287一个段(segment)由一个或多个节(section)组成,但这对androidlinker是透明的,linker在加载程序时没有用到节信息。所以对于一个so文件,修改ELFHeader中和节有关的成员(e_shoff、e_shentsize、e_shnum)不会影响程序运行。文本段(...
42
热度 -
ELF Format 札记(十三)—— 段权限
ELFFormat笔记(十三)——段权限ilocker:关注Android安全(新手)QQ:2597294287一个可被系统加载的程序至少拥有一个可加载段。当系统创建可加载段的内存映像时,会根据p_flags赋予一定的访问权限。不过实际的内存访问权限还要取决于系统的MMU(内存管理单元),系统给予的访问权限可能比指定的权限要大。不过如果没有指定PF_W,系统一定不会赋予写权限。段权限列表:可以看出...
12
热度 -
elf2mod补丁有关问题
elf2mod补丁问题打了高通的elf2mod补丁,修改mak文件,只是能支持基本类型?如果定义个全局对象还是不能用啊,请问是不是有什么限制?color='#FF8000'>------解决方案--------------------------------------------------------找找前面的帖子,我们做过相关的讨论
9915
热度 -
ELF Format 札记(五)—— 特殊 Section
ELFFormat笔记(五)——特殊Section链接器把一些独立的objectfiles和库文件链接起来,形成可执行文件。在这个过程中,链接器需要解决一些符号的引用以及指令的重定位。除此之外,还有一个动态链接的过程。比如有些符号是定义在某个so文件中的,需要由动态链接器在装载的过程中进行一些符号查找和地址重定位的工作。要完成此工作,动态链接器需要一些信息,它们存储在一些特殊的section中,比...
455
热度 -
ELF Format 札记(七)—— 符号表
ELFFormat笔记(七)——符号表最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞,道一声珍重,道一声珍重,那一声珍重里有蜜甜的忧愁——徐志摩符号表(symboltable)中保存着符号的定义或者引用信息。对于androidso文件来说,.dynsym符号表保存着库文件的导入和导出符号。用readelf看一下androidliblog.so的.dynsym动态符号表:符号...
6
热度 -
nasm可以编译生成16位ELF的.o资料么
nasm可以编译生成16位ELF的.o文件么?nasm可以编译生成16位ELF的.o文件么?或者说,elf格式的文件不能包含16位指令?因为我的elf文件要在实模式下运行。想听高手赐教(别给我贴手册上的话,我知道nasm官方表示支持elf16位的段,又似乎elf标准只有32位和64位,求准话儿!)color='#e78608'>------解决方案-------------------------...
2382
热度 -
nasm可以编译生成16位ELF的.o文件么?解决思路
nasm可以编译生成16位ELF的.o文件么?nasm可以编译生成16位ELF的.o文件么?或者说,elf格式的文件不能包含16位指令?因为我的elf文件要在实模式下运行。想听高手赐教(别给我贴手册上的话,我知道nasm官方表示支持elf16位的段,又似乎elf标准只有32位和64位,求准话儿!)color='#FF8000'>------解决方案-------------------------...
3240
热度 -
Android漫纪行(2)-ELF可执行文件格式
Android漫游记(2)---ELF可执行文件格式ELF是类Unix类系统,当然也包括Android系统上的可执行文件格式(也包括.so和.o类文件)。可以理解为Android系统上的exe或者dll文件格式。理解ELF文件规范,是理解Android系统上进程加载、执行的前提。下面我们就来一步步了解这ELF到底是个啥玩意儿(以Arm32ELF格式为主)!...
58
热度 -
怎么把elf格式的vxworks 映像转换成bin格式
如何把elf格式的vxworks映像转换成bin格式网上看到什么elftobin.exe的工具,但我的Tornado下没有这个工具,不知道咋整??大虾helpme!color='#e78608'>------解决方案--------------------------------------------------------arm-elf-copy有这个功能你自己回去看看要加什么参数color=...
6587
热度 -
请教一个安装arm-elf-tools-20030314的有关问题
请问一个安装arm-elf-tools-20030314的问题我在安装的时候,先碰到一个问题是tail:cannotopen`+43'forreading:Nosuchfileordirectory网上搜索了一下,普遍的解决方法是:找到arm-elf-tools-20040427.sh文件的第39行,tail+${SKIP}${SCRIPT}¦gunzip...
66
热度 -
ELF Format 札记(八)—— 符号的类型和属性(st_info)
ELFFormat笔记(八)——符号的类型和属性(st_info)我是天空里的一片云,偶尔投影在你的波心,你不必讶异,更无须欢喜,在转瞬间消灭了踪影。你我相逢在黑夜的海上,你有你的,我有我的,方向;你记得也好,最好你忘掉,在这交会时互放的光亮!——徐志摩·偶然ilocker:关注Android安全(新入行,0基础)QQ:2597294287上篇笔记中说过,El...
9
热度 -
,用arm-elf-gcc如何进行2440裸机开发
求助,用arm-elf-gcc怎么进行2440裸机开发?在网上找的文章都是ADS的,由于我用的Linux系统。所以我想问下在Linux下怎么用arm-elf-gcc对2440进行裸机开发。我现在还是个初学者,刚刚把ARM的指令集看完。谁能提供一些arm-elf-gcc裸机开发的资料。color='#e78608'>------解决方案--------------------ADS在实际工作中没怎用...
128
热度