摘要:
本文搜集网上知识,记录android学习中的一些知识点 logcat:// java层的logcat我们不谈,看native层:/system/core/include/log/log.h以ALOGV()为例,/*50 * Normally we strip ALOGV (VERBOSE mess... 阅读全文
摘要:
frameworks/native/cmds/installd/commands.cAPK在安装的过程中,会通过dex2oat工具生成一个OAT文件art/runtime/oat_file.cOatFile类,通过调用它的静态成员函数Open可以在本进程中加载OAT文件;OatFile类的静态成员函... 阅读全文
摘要:
adbi的java hook实现代码ddi不在之前下载的文件中,下载地址:https://github.com/crmulliner/ddi,具体的编译看readme里面很详细的介绍了。注意ddi代码不能单独使用要跟之前的adbi相结合,因为adbi提供了注入so。本文不对代码进行详细的剖析(你... 阅读全文
摘要:
本篇我们来看看adbi的实现原理,其实里面的知识点前面差不多都有涉及了,没多少新知识。adbi利用hijack程序将libexample.so注入到指定的进程中,并且在进程中加载libexample.so;而libexample.so在加载过程中会执行其.init_array section里... 阅读全文
摘要:
adbi 是一个android平台(arm 32 )的so注入+挂钩框架,源码开放在github上 : ADBI 项目。从github上下载来目录如下: 执行主目录下build.sh编译后目录如下,前提是你有在环境变量下设置ndk-build路径,不知道ndk-build是啥的说明还没下载过N... 阅读全文
摘要:
ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而可以实现断点调试和系统调用的跟踪。学习linux的ptrace是为学习androidadbi框架和古河的libinject做基础。 ptrace有四个参数:long ptrace(enum ... 阅读全文
摘要:
本文收集网上linux下的一些tips: 1/proc/pid/maps:进程的虚拟地址空间该文件有6列,分别为:地址:库在进程里地址范围权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有;偏移量:库在进程里地址范围设备:映像文件的主设备号和次设备号;节点:映像文件的节点号;路径:... 阅读全文
摘要:
android是建立在linux的基础上,其底层代码是安装linux可执行文件——elf的格式来组装的。本文结合android中的so文件来了解elf格式,资料大多收集于网上;elf格式位于android源码:elf.h(下面涉及到的结构体和宏定义都可以在此头文件中找到)。 elf大致可分为三部... 阅读全文
摘要:
本文分析so加载的步骤,其实在之前dalvik浅析二中也有提及,但那重点关注的是jni。android中so库的加载,代码如下:loadLibrary("nanosleep"); 我们来看下它的执行流程吧: 先调用dlopen来载入so文件;find_library在soinfo结构(进... 阅读全文
摘要:
源代码的我们现在拥有各式各样的IDE和编辑器可以去查看,但二进制文件对于大多数软件只能做到显示16进制,而不能按照文件类型的格式去显示。今天我们就用dex文件让010 show。 安装软件: http://www.sweetscape.com/010editor/ 下载模板: http:... 阅读全文