omnispace的博客

专注AI,物联网,区块链,安卓以及相关安全技术

android linker 浅析

Android 的加载/链接器linker 主要用于实现共享库的加载与链接。它支持应用程序对库函数的隐式和显式调用。对于隐式调用,应用程序的编译与静态库大致相同,只是在静态链接的时候通过--dynamic-linker /system/bin/linker 指定动态链接器,(该信息将被存放在ELF...

2017-09-28 05:10:50

阅读数 327

评论数 0

ELF文件装载链接过程及hook原理

ELF文件格式解析 可执行和可链接格式(Executable and Linkable Format,缩写为ELF),常被称为ELF格式,在计算机科学中,是一种用于执行档、目的档、共享库和核心转储的标准文件格式。 ELF文件主要有四种类型: 可重定位文件(Relocatable File...

2017-09-28 05:09:10

阅读数 1231

评论数 0

Android Linker学习笔记

原文地址: http://drops.wooyun.org/tips/12122 0x00 知识预备 Linker是Android系统动态库so的加载器/链接器,要想轻松地理解Android linker的运行机制,我们需要先熟悉ELF的文件结构,再了解ELF文件的装入/启动,最后...

2017-09-28 05:05:44

阅读数 301

评论数 0

Creating a Java VM from Android Native Code

If you’re writing native / JNI code for Android, it’s probably as native method of an Android app. These methods are always passed the Dalvik VM inst...

2017-09-22 13:39:46

阅读数 426

评论数 0

如何调试Android Native Framework

半年前写了一篇文章,介绍 如何调试Android Framework,但是只提到了Framework中Java代码的调试办法,但实际上有很多代码都是用C++实现的;无奈当时并并没有趁手的native调试工具,无法做到像Java调试那样简单直观(gdb+eclipse/ida之流虽然可以但是不完...

2017-08-27 15:30:03

阅读数 384

评论数 0

JNI实现源码分析【四 函数调用】

有了前面的铺垫,终于可以说说虚拟机是如何调用JNI方法的了。JNI方法,对应Java中的native方法,所以我们跟踪对Native方法的处理即可。 在彻底弄懂dalvik字节码【一】中,我们跟踪过非Native方法的调用,现在我们来跟踪Native方法的调用,从dvmCallMethodV入手...

2017-08-24 14:31:53

阅读数 239

评论数 0

JNI实现源码分析【三 间接引用表】

在JNI实现源码分析【二 数据结构】的参数传递一节中,我们提到,JNI为了安全性的考虑使用了形如jobject的结构来传递参数。而jobject被表述为指针,但又不是直接指向Object的指针那么jobject是如何和真正的Object建立联系呢? 在JNI的API中,有一组API Glob...

2017-08-24 14:30:14

阅读数 291

评论数 0

Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解

一、前言 在之前已经介绍过了Android中一款hook神器Xposed,那个框架使用非常简单,方法也就那几个,其实最主要的是我们如何找到一个想要hook的应用的那个突破点。需要逆向分析app即可。不了解Xposed框架的同学可以查看:Android中hook神器Xposed使用详解;关于hoo...

2017-08-24 14:24:37

阅读数 437

评论数 0

在Android Native层中创建Java虚拟机实例

前言 Android应用中JNI代码,是作为本地方法运行的。而大部分情况下,这些JNI方法均需要传递Dalvik虚拟机实例作为第一个参数。例如,你需要用虚拟机实例来创建jstring和其他的Java对象、查找类或成员变量等。大部分情况下,在你用JNI接口从Java层调用Native层中的代码...

2017-04-24 15:57:06

阅读数 550

评论数 0

提示
确定要删除当前文章?
取消 删除