随笔分类 -  Android底层

摘要:1.关于使用frida遇到的一些问题 (1)如果出现以下错误: 可以通过以下方式关闭SELinux,在adb shell中执行: (2)如果出现“frida.ServerNotRunningError: unable to connect to remote frida-server”的错误,试试端 阅读全文
posted @ 2018-11-25 16:22 bamb00 阅读(10141) 评论(0) 推荐(0)
摘要:前文介绍了导入表hook,现在来说下导出表的hook。导出表的hook的流程如下。1、获取动态库基值 2、计算program header table实际地址 通过ELF文件头获取到程序表头的偏移地址及表头的个数 3、遍历program header table,找到类型为PT_DYNAMIC的区段 阅读全文
posted @ 2018-07-15 13:05 bamb00 阅读(3244) 评论(0) 推荐(1)
摘要:全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数。 GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中 阅读全文
posted @ 2018-07-13 19:54 bamb00 阅读(7453) 评论(2) 推荐(0)
摘要:以前对Android so的注入只是通过现有的框架,并没有去研究so注入原理,趁现在有时间正好拿出来研究一下。 首先来看注入流程。Android so的注入流程如下: attach到远程进程 -> 保存寄存器环境 -> 获取目标程序的mmap, dlopen, dlsym, dlclose 地址 - 阅读全文
posted @ 2018-07-11 21:57 bamb00 阅读(12091) 评论(1) 推荐(0)
摘要:本文以乐固2.8.1(后面还有2.10.3.1)为例,介绍乐固壳的分析和脱壳过程。 一、绕过反调试首先,使用ida加载libshella-2.8.1.so后,出现以下section错误提示,点“OK”后仍然可以加载成功: 这说明“乐固”在section做了一些手脚。要解决这个问题,我们需要明白关于s 阅读全文
posted @ 2018-03-28 20:53 bamb00 阅读(4611) 评论(1) 推荐(4)
摘要:在进行安全研究中,我们需要经常使用ida等工具对app的so进行动态调试。这其中遇到的最大问题可能就是app加了反调试、反root等保护手段对应用运行环境进行检测,而这些手段往往是在我们附加进程之前就已经加载了的,所以不能通过ida等调试工具直接附加进程的方式来调试这些so,因而需要我们自己实现加载 阅读全文
posted @ 2017-05-19 11:35 bamb00 阅读(1560) 评论(0) 推荐(0)
摘要:Android 系统的rom最主要的就是3个文件:boot.img、system.img、userdata.img。其中boot.img 存放着内核以及Android系统的配置信息,比如android系统各文件夹的读写权限,adb 的权限。所以如果你要修改文件夹的写权限,adb的root权限,修改b 阅读全文
posted @ 2014-11-18 16:35 bamb00 阅读(19260) 评论(5) 推荐(5)
摘要:/** 作者:蟑螂一号* 原文链接:http://www.sanwho.com/133.html* 转载请注明出处*/ Android下so注入是基于ptrace系统调用,因此要想学会android下的so注入,首先需要了解ptrace的用法。 ptrace用法可以参考博客:http://blog. 阅读全文
posted @ 2014-08-18 20:27 bamb00 阅读(3090) 评论(0) 推荐(0)
摘要:1.LDR R1, =COUNT 意思是将 COUNT 变量的地址放到 R1中LDR R1, COUNT 意思是将 COUNT 变量地址里面的内容赋给 R12.Load-Store 结构——这个应该是 RISC设计中比较有特点的一部分。在 RISC 中,CPU 并不会对内存中的数据进行操作, 所有的计算都要求在寄存器中完成。 而寄存器和内存的通信则由单独的指令来完成。而在 CSIC中,CPU是可以直接对内存进行操作的,这也是一个比较特别的地方。所以,在 ARM中,cpu只能通过寄存器来对内存的数据进行访问和更改。LDR Rd,(地址)STR Rd, (地址)LDMIA Rn!, registS 阅读全文
posted @ 2013-07-22 19:17 bamb00 阅读(5481) 评论(0) 推荐(0)
摘要:由于工作需要,研究了一下如何从Android so中提取URL。Android so实际上是一个ELF(Executable and Linking Format)格式的文件,要从中提取URL就需要首先了解ELF文件格式。URL实际上就是一个字符串,要从Android so中提取URL,实际上我们只需知道ELF文件的字符串存储在哪个区段就可以了。以下为ELF文件区块表的介绍:.textwhere code stands, as said above. objdump -drS .process.o will show you that.datawhere global tables, va.. 阅读全文
posted @ 2013-05-10 16:48 bamb00 阅读(1140) 评论(0) 推荐(0)
摘要:ARM与x86相比较■精简指令集对于每一个复杂的操作,与x86汇编相比具有更多的指令。■固定的指令长度x86有可变长度的指令,ARM将指令长度固定为32位■内存对齐ARM/RISC要求内存对齐对齐内存需要进行填充■条件执行每条指令的前四位包含一个条件码**ARM指令的表示方式以ADDEQSR0,R1... 阅读全文
posted @ 2013-04-25 18:48 bamb00 阅读(1665) 评论(0) 推荐(0)