在研究c文件的编译/装载/运行之前,先了解ELF文件的概念,ELF(Executable and Linking Format)是一种对象文件的格式。ELF文件格式是UNIX系统实验室作为应用程序二进制接口而开发发布的,是Linux的主要可执行文件格式。 简单来说,ELF是“编译器/连接器”和“内核
分类:
系统相关 时间:
2016-02-01 14:35:42
阅读次数:
178
参考文章:http://blog.csdn.net/jinzhuojun/article/details/9900105逻辑大概如下:使用之前的注入代码注入自己的so并执行so中函数 ->so中函数解析ELF文件获取GOT表的位置和大小-> 获取需要挂钩的原函数地址,以及自定义用于挂钩的函数地址->...
分类:
移动开发 时间:
2016-01-12 15:31:38
阅读次数:
435
0x00 前言之前的两篇文章从链接视图和执行视图分析了elf文件的大致结构,这篇文章主要内容是对于so文件进行简单的加密工作,针对Ida等静态分析工具的分析,一旦开始动态调试就应该很容易就可以dump出内存,直接修复了。0x01 思路主要是两种思路,对文件中指定的section加密,然后在运行时由....
分类:
移动开发 时间:
2015-11-26 12:51:39
阅读次数:
364
android是建立在linux的基础上,其底层代码是安装linux可执行文件——elf的格式来组装的。本文结合android中的so文件来了解elf格式,资料大多收集于网上;elf格式位于android源码:elf.h。 elf大致可分为三部分:elf头、程序头表、节区头表;当然还有上图没标出.....
分类:
其他好文 时间:
2015-11-22 23:20:32
阅读次数:
286
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们...
分类:
移动开发 时间:
2015-10-22 21:29:04
阅读次数:
500
简介:?本文基于Linux?系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。 ? 一、初识Linux进程 ?...
分类:
系统相关 时间:
2015-10-10 17:27:33
阅读次数:
356
uboot中bss段的生成过程可以分为如下步骤:
(1)链接脚本中定义bss段地址范围__bss_start __bss_end。
(2)编译链接elf时,根据链接脚本确定下__bss_start __bss_end的绝对地址,记录在elf文件的段表中。
(3)elf objcopy生成u-boot.bin时,去掉bss段。
(4)加载u-boot.bin启动运行,根据__bss_start __bss_en...
分类:
其他好文 时间:
2015-10-01 18:02:54
阅读次数:
434
最近的lab里面有ELF文件相关的,所以成这个几乎,学点ELF的东西。
ELF,是一种文件格式。暂时,只看可执行文件的ELF文件格式。
首先,给出文件的格式的布局图:
光看这个很难理解,所以写一个小的程序,用readelf来结合的看。
程序比较简单:
#include
#include
int data[100] ={0};
int bss[100];
int main()...
分类:
编程语言 时间:
2015-08-30 12:53:55
阅读次数:
673
coredump介绍 应用程序有时会因为异常或者bug导致在运行过程中异常退出或者终止,为了方便问题的定位,我们往往需要获取程序运行时的内存,寄存器状态,堆栈指针,内存管理以及函数调用堆栈信息等,从而找到bug所在。在linux系统中,我们通常可以通过对系统进行一些配置,将上述的信息输出到ELF文件...
分类:
其他好文 时间:
2015-08-16 10:39:32
阅读次数:
128