
Android系统学习
文章平均质量分 63
Rorschach321
Android安全方向,区块链爱好
展开
-
Ubuntu16系统Android6.0编译实战(解决OPENJDK7安装问题)
安装VMware先安装VMware16.0提示:failed to install USB inf file 和 failed to install the hcmon driver换成15.0版本成功AOSP环境及系统源码下载主要参考:https://source.android.google.cn/setup/downloading?hl=zh-cn下载对应6.0分支源码执行下载命令:repo init -u https://android.googlesource.com/platfo原创 2021-11-04 09:57:51 · 494 阅读 · 0 评论 -
Android应用中捕捉所有点击事件实现
一、思路(1)获取Activity对象;(2)遍历所有子控件;(3)注册点击事件。二、实现(1)获取Activity对象activity对象的获取可以考虑多个方面,从两个方面进行选择:①获取当前运行的activity对象 @TargetApi(Build.VERSION_CODES.KITKAT) public static Activity getRunningAc...原创 2019-11-18 14:33:13 · 2480 阅读 · 3 评论 -
android私有目录直接读取
一、说明Android应用或游戏在数据持久化时,一般会将文件写入到sdcard或者私有目录files目录下,也可以直接在私有目录下新建文件夹进行存入。如:/storage/emulated/0/Android/data/[package name]//storage/emulated/0/Android/data/[package name]/files//data/user/0/[pa...原创 2019-10-24 09:42:00 · 3496 阅读 · 0 评论 -
Android Q SEAndroid 执行可执行文件提示权限不足
一、问题描述部分APP调用exec执行应用私有目录和files目录下可执行文件提示权限不足。二、问题分析1、对比可以执行的APP和不可以执行的APP的区别应用可执行的情况:应用不可执行的情况:2、android Q权限机制变更的说明3、捕获异常分析捕获到一条关键LOG:E SELinux : avc: denied { execute_no_trans} forcom...原创 2019-08-28 12:25:09 · 4498 阅读 · 0 评论 -
Android中GOT表HOOK手动实现
网上对于Android中各种HOOK的实现都有很多的介绍了,之前看懂了原理相关的东西,一直没有去尝试手动实现,最近刚好想起就手动实现了一下,简单尝试记录下实现过程以及坑点。如何理解HOOK? 我理解的HOOK就是去动态的修改代码段中相关跳转地址或者指令,执行我们的代码,然后跳转回去接着执行。那既然这样,肯定要保证动态修改的操作先于该函数被执行,因此一般会将HOOK代码放在比较靠前被执行的地方,如i原创 2017-11-17 19:15:42 · 4937 阅读 · 7 评论 -
Android中GOT表HOOK手动实现续
上篇实现了GOT表的手动HOOK,这里需要说明一下,GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,之前针对HOOK的就是这种类型的函数。而针对导入表,这样的做法显然不行的,导入表中的函数实际是在该动态库中调用外部的导出函数。导入表在对应在动态链接段.got.plt(DT_PLTGOT)指向处,但是每项的详细是和GOT表中的表项对应的,因此,在解析动态链接段时,原创 2017-11-29 19:05:59 · 1393 阅读 · 0 评论 -
Android双进程保护实现的思考及过程说明
采用双进程的方式,对父进程进行守护,基于信号的发送和接收,实现相互的守护防止被动态攻击。双进程进程守护主要功能: 1、守护父进程,ptrace所有线程,防止被附加、调试、暂停; 2、保护子进程,防止被暂停、异常退出;对应说明图: 不足之处与修补思考: 子进程未被ptrace,可以通过向子进程注入并ptrace PTRACE_DETACH实现解除反附加改进: 减少对主进程其中一个线程的附加,原创 2017-10-16 12:31:43 · 1588 阅读 · 0 评论 -
Android Linker(一) 从loadLibrary开始-----上层调用流程
阅读源码版本:6.0.1阅读工具:Android Studio 2.2.2 Notepad++参考链接:http://www.tuicool.com/articles/AfMZRbZhttp://docs.oracle.com/cd/E19253-01/819-7050/6n918j8nq/index.html#chapter6-71736 网上已经有很多写的不错的分原创 2017-03-03 11:39:01 · 1746 阅读 · 0 评论 -
Android Linker(二) Soinfo的创建-----动态库的加载链接
阅读源码版本:6.0.1阅读工具:Android Studio 2.2.2 Notepad++参考链接:http://www.tuicool.com/articles/AfMZRbZhttp://docs.oracle.com/cd/E19253-01/819-7050/6n918j8nq/index.html#chapter6-71736 上层调用的终点找到了,之后就开原创 2017-03-06 15:40:12 · 3655 阅读 · 0 评论 -
Android 7.0 dlopen的不同
在逆向分析某代码时,get到一处有点差异的地方。开始觉得很奇怪,判断了dlopen返回值最后一位,若为1则知道版本7.0以后,查看源码分析后才知,7.0之后dlopen代码做了一些改动,而该判断是否为7.0前后版本依据为如下源码: 为什么要这样做呢,主要是7.0开始不再允许获取soinfo对象,贴一下大概流程以及依据: 6.0: dlopen -> dlopen_ext:返回soinfo* r原创 2017-07-17 18:51:53 · 6521 阅读 · 4 评论 -
Android 系统调用实现函数功能--SVC指令的实现与检测
0x0 简述: arm android中通过一些反编译的工具分析ELF文件时,根据一些导入的系统函数可以很轻松的找到一些功能代码的实现:查看libc中分析这些函数的实现: arm中通过SVC指令实现的系统调用因此利用这一点应用中加入了类似的实现操作,隐蔽掉调用系统函数的符号,增加分析难度: 0x1 实现: 以getpid为例修改调用方式,获取pid原本通过系统API getpid获取,修原创 2017-07-31 14:09:47 · 8307 阅读 · 2 评论 -
Android中模拟点击软件的实现原理探究
简介按键触摸类模拟点击软件最早开始于PC时代,指的是可以通过设置、脚本控制等方式去实现模拟点击,解放双手,达到自动化操作的目的。在Android中,模拟点击对应的就是触发屏幕点击事件,多用于游戏中完成自动化操作、应用中抢红包等操作,随着现在的技术更新,一些模拟点击实现的方式也开始使用了一些特殊的技巧。从触屏到执行首先看一个完整点击操作背后的流程(图1来自网络): 图1 屏幕点击完整流程从用原创 2017-08-21 14:29:04 · 14375 阅读 · 3 评论