Android逆向培训:SO文件与Readelf工具详解.pdfVIP

  • 0
  • 0
  • 约小于1千字
  • 约 2页
  • 2026-02-13 发布于北京
  • 举报

Android逆向培训:SO文件与Readelf工具详解.pdf

arm汇编代码讲解2

1so文件信息

Elf文件查看工具:readelf--执行环境linux

参数

-显示so文件所有信息

-hELF文件头

-lProgramheader,动态加载时需要的信息

-SSectionheader静态加载分析时需要的信息。

-e同样头信息,elfheader,sectionheader,programheader

-s显示符号表

-d显示动态节

一般地,可以使用readelf工具来获得so的详细信息。

2SoHelper

可以用来快速的获取so的一些基本信息,提供较弱的汇编功能。

3so加载顺序

Soloaded-Init_array-JNI_onLoad-其他奇怪的函数-fini_array

4堆栈

堆栈用于保存函数中的临时变量,以及某些寄存器的值,退出时候用堆栈的数据来还原

运行环境,如寄存器等等。

5堆栈平衡原理

对于每个函数,堆栈总是平衡的。也即,函数进入前分配了多少堆栈空间,退出时需要

释放多少堆栈空间。

I

6临时变量与全局变量

①全局变量:

存在于程序内存数据中,所有函数都可以直接调用。

②临时变量:

存在于函数堆栈中,函数进入时分配空间(于堆栈中),函数退出时释放空间。

7指针

Inta=10;

Int*p=a;

P就是指针,它的值将指向a;

8二进制,八进制,十六进制

计算机底层都是使用二进制来存储数据的。而二进制,八进制与十六进制之间可以相互

转化。

二进制:0~1

八进制:0~7

十六进制:0~F

如0xE=01=1110(二进制)=14

9函数参数传递

Arm遵循ATPCS规则,前4个参数使用R0-R3传递,其他均通过堆栈传递。

II

文档评论(0)

1亿VIP精品文档

相关文档