
Android安全
文章平均质量分 76
sparktend
这个作者很懒,什么都没留下…
展开
-
一种定位JNI native方法地址的通用方法
背景我们在做Android APP逆向分析时,有时需要分析某个Java方法对应的native方法。分析的第一步当然找到它的位置。native方法有两种关联方式:静态(这个很容易,从函数名称(符号)上就能找到)动态(通过JNI RegisterNatives注册)动态大多时候也很容易去找,只是会有复杂的情况,本文描述一种相对通用的方法来快速获取native方法的地址。方案描述常...原创 2020-04-27 18:36:20 · 1433 阅读 · 0 评论 -
Compile Android 5.1.1 ROM with ROOT by SuperSU
0x00 前置信息Android 5.1.1 SuperSU v2.65 目标:基于SuperSU编译一个可以在应用层使用root shell的Android 5.1.1 ROM。0x01 添加su模块编译Android时,userdebug或者eng方式编译默认自带的su,不使用这个自带的su,即不编译这个自带system\extras\su模块,最简单的方法是把该目录下的Android原创 2017-03-05 17:17:27 · 3610 阅读 · 0 评论 -
Xposed 源码剖析(一)
0x00 简介是什么: Xposed framework是一个基于Android系统实现的能够给用户提供修改系统层面或第三方APP功能的框架服务。如何工作: Android中有一个叫做Zygote的核心进程,它会随Android系统的启动而启动,然后加载系统所需的类,最后再调用初始化方法。每一个APP的进程都是从Zygote进程fork出的子进程,这个进程的...原创 2018-07-18 09:36:36 · 4435 阅读 · 0 评论 -
Xposed 源码剖析(二)
0x00 背景之前提到当安装Xposed framework后,Xposed framework会替换一个新的app_process至/system/bin/中,app_process 就是Android中的Zygote进程,这期以app_process的实现为主线来详细分析Xposed framework的实现。0x01 框架分析首先从main函数开始:main() {...原创 2018-07-18 09:37:46 · 1114 阅读 · 0 评论 -
ADR指令对substate HOOK的影响
0x00 前置信息在用substrate对某个函数进行HOOK的时候发现会奔溃,并且崩溃在了一个很奇怪的地址上。在排除了参数列表和调用约定的问题之后,本文着手分析产生该奔溃的原因。在分析之前,首先会简要说明Inline HOOK的实现原理,接着借助崩溃信息和动态调试进行分析,最后总结崩溃的一般性原因。0x01 Inline HOOK 的原理Inline HOOK是指通过修改函数前N个汇...原创 2018-08-17 12:04:48 · 410 阅读 · 0 评论 -
调用DLL未导出函数由参数列表引发的问题
0x00 背景为了调用一个dll中未导出的函数,首先用IDA分析它的调用约定和参数列表。分析出来的函数声明是这样的:typedef int (__thiscall* FP_SUB)(void *t, int a2, int a3)然后用一个for循环去调用这个函数,代码逻辑大致如下:void call_stub(void* t, int a2, char a3){ ...原创 2018-09-12 19:23:39 · 1636 阅读 · 0 评论