- 博客(10)
- 资源 (6)
- 收藏
- 关注
原创 Android通过链接视图和加载视图实现GOT HOOK
1. 背景最近在研究android平台的hook技术,发现网上的资料比较凌乱,自己总结一下。首先要非常熟悉ELF文件格式,自己动手写一个解析ELF文件的小程序基本就可以研究的比较透彻了。ELF文件中有节和段的概念,相信很多人都不太了解它们的区别:节头表是在链接阶段非常重要的结构,提供了链接器链接符号的重要信息,属于链接视图;而段表是链接完生成可执行文件和动态库后才有的,在被加载和执行的
2016-03-25 16:42:25 1269
转载 动态链接库中的.symtab和.dynsym
shared library (.so)"Program Library Howto-Shared Libraries"是很好的材料, 下面的内容多是据此整理的.定义:Shared libraries are libraries that are loaded by programs when they start.使用shared library(共享库)会有很多好处, 比如
2016-03-25 14:18:34 9654
转载 Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮
2016-03-21 15:21:30 379
原创 Android和Linux动态加载机制及PLT/GOT作用介绍
首先回顾一下Linux平台上,一个模块甲需要调用另外一个模块乙中的函数时的动态链接机制: 1、模块甲在编译期间,将要引用的模块乙的名字与函数名写入自身的符号表。 2、运行期模块甲调用时,调用流程是从调用代码到PLT表到GOT表再跳入模块乙。 而如何保证模块甲的代码能从其PLT/GOT跳到正确的模块乙入口,这就是链接器做的事情。 标准Linux链接器是
2016-03-18 17:39:53 3314 2
转载 基于执行视图解析ELF
[《Redirecting functions in shared ELF libraries》](http://www.codeproject.com/Articles/70302/Redirecting-functions-in-shared-ELF-libraries#_Toc257815978)这篇文章所提供的例子,就是基于链接视图对ELF进行解析的,与基于执行视图进行解析相比,后面的逻辑
2016-03-17 16:49:40 2004
转载 基于Android的ELF PLT/GOT符号重定向过程
原帖地址:http://bbs.pediy.com/showthread.php?p=1326515-----------------#引言写这篇技术文的原因,主要有两个:- 其一是发现网上大部分描述PLT/GOT符号重定向过程的文章都是针对x86的,比如[《Redirecting functions in shared ELF libraries》](http
2016-03-17 15:06:09 1320
转载 ARM处理器的寄存器,ARM与Thumb状态,7种运行模式
ARM处理器工作模式一共有 7 种 :USR 模式 正常用户模式,程序正常执行模式FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理IRQ模式 处理普通中断SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi resetABT
2016-03-15 19:28:35 3379
转载 ARM函数调用规则
对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进行参
2016-03-11 17:34:43 1333
原创 笔记:Android源码和NDK目录及头文件
NDK目录:1. 系统调用号定义: android-ndk-r9d/platforms/android-19/arch-arm/usr/include/asm/unistd.h2. 系统中断号定义:android-ndk-r9d/platforms/android-19/arch-arm/usr/include/asm/arch/irqs.h3. ptrace函数定义:
2016-03-11 16:14:02 5925
转载 玩转ptrace(利用ptrace下断、单步调试、修改代码执行、代码注入等)
下面是转帖的内容,写的很详细。但是不同的linux发行版中头文件的路径和名称并不相同。如在某些发行版中就不存在,其中定义的变量出现在和中。==================================================================================================by Pradeep PadalaCrea
2016-03-11 15:58:58 7772
语音交互的RSS阅读器
2010-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人