Android ELF文件解析】的更多相关文章

0X01  ELF初认识 elf文件是linux下的二进制文件,相当于windows下的PE文件,Android系统里的dll. 解析elf文件两个用处:1.so加固:2.frida(xposed)检测: 0X02 so文件格式 SO文件格式,即ELF文件格式.它是Linux下可执行文件,共享库文件和目标文件的统一格式. 根据看待ELF文件的不同方式,ELF文件可以分为链接视图和装载视图. so文件大体上可分为四部分,一般来说从上往下是ELF头部->Pargarm头部->节区(Section)…
ELF 是Executable and Linking Format的缩写,即可执行和可链接的格式,是Unix/Linux系统ABI (Application Binary Interface)规范的一部分. Unix/Linux下的可执行二进制文件.目标代码文件.共享库文件和core dump文件都属于ELF文件. 下面的图来自于文档 Executable and Linkable Format (ELF),描述了ELF文件的大致布局. 左边是ELF的链接视图,可以理解为是目标代码文件的内容布…
 一.一个简单的Android.mk文件例如以下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := native-interface LOCAL_SRC_FILES := video.c \ adpcm.c \ audio.c \ sip.c \ network.c \ circular_queue.c \ native_interface.c LOCAL_SHARED_LIBRARIES := libos…
上一篇讲了ELF文件的总体布局,以及section和segment的概念.按照计划,今天继续讲 ELF header. 讲新的内容之前,先更正一个错误:上一篇中讲section header table中的条目和文件中的section是一一对应的,其实这么讲是不对的.一个section必定有一个section header来描述它,但一个section header不一定在文件中有对应的section,因为有的section是不占用文件字节的.segment也是这个道理. 这篇文章本来应该上周写…
在Android平台上可以使用Simple API for XML(SAX) . Document Object Model(DOM)和Android附带的pull解析器解析XML文件. 下面是本例子要解析的XML文件:    文件名称:itcast.xml           例子定义了一个javabean用于存放上面解析出来的xml内容, 这个javabean为Person.javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和…
此文为静态分析ELF文件结构,遍历其中Elf_Ehdr文件头信息,遍历Elf_Shdr节表头信息,并将所有节放置在左侧树控件上,遍历Elf_Phdr程序头也放置在左侧树控件上,并着重分析字符串表,重定位表,符号表.遍历表头的使用使用map将节表信息对应字符串存入,当点击树控件的时候取出显示在右侧. 遍历程序头 Elf64_Phdr* Phdr = (Elf64_Phdr*)(m_szFileData+Elf_Ehdr->e_phoff); ;i<Elf_Ehdr->e_phnum;i++…
原地址:https://github.com/guanchao/elfParser 作者是用python2写的,现在给出我修改后的python3版本.(测试发现有bug,以后自己写个,0.0) 1 #!/usr/bin/env python 2 # coding:utf-8 3 4 import sys 5 import binascii 6 7 ''' 8 # 节区类型定义 9 /* sh_type */ 10 #define SHT_NULL 0 11 #define SHT_PROGBIT…
[Android-NDK(Native Development Kit)  docs文档] NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.   Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的.因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义. 一个A…
Dex文件是Android虚拟机下的可执行文件,包含了应用程序所用到所有操作指令和运行时数据.在程序编译过程中,java源文件先被编译成class文件,然后通过dx工具将多个class文件整合为一个dex文件.这样的文件结构使得各个类能够共享数据,充分减少了存储空间,提升了运行效率. Java源文件生成Dex文件的映射关系. dex文件的结构如下图: 我们可以在android源码中的/dalvik/libdex/DexFile.h找到关于dexfile的定义. Andre 这里定义的DexFil…
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:extensible markup language 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 解析XML的方式: SAX——Simple API for XML,既是一种接口,也是一个软件包采用的是事件驱动,也就是它解析…