![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android逆向分析
文章平均质量分 94
微笑-向前行
这个作者很懒,什么都没留下…
展开
-
nexus 5 刷机
nexus 5 刷机that_is_this关注2018.03.17 17:36:50字数 1,002阅读 1,594源码编译和刷机编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程 下载镜像https://developers.google.com/android/images#hammerhead 在这里寻找想要的系统版本 开始刷机,按照以下命令 参考网址:https://www.25pp.com/news/news_76805.html 1、转载 2021-07-08 19:16:42 · 1038 阅读 · 1 评论 -
Android Dalvik虚拟机之Dalvik指令集
1. 指令特点Dalvik指定在调用格式上模仿了C语言的调用约定。Dalvik指令的语法与助词符有如下特点: 参数采用从目标(destination)到源(source)的方式。 根据字节码的大小与类型不同,一些字节码添加了名称后缀以消除岐义。 32位常规类型的字节码末添加任何后缀。 64位常规类型的字节码添加 -wide后缀。 特殊类...转载 2019-12-15 11:32:10 · 307 阅读 · 0 评论 -
Android系统启动流程(四)Launcher启动过程与系统启动流程
2017-02-23 ANDROID框架层 ANDROID框架层, ANDROID系统启动AndroidPIT-best-launchers-w782 (1)_副本.jpg前言此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解And...转载 2018-04-04 10:11:09 · 238 阅读 · 0 评论 -
Android应用程序进程启动过程(前篇)
前言在此前我讲过Android系统的启动流程,系统启动后,我们就比较关心应用程序是如何启动的,这一篇我们来一起学习Android7.0 应用程序进程启动过程,需要注意的是“应用程序进程启动过程”,而不是应用程序启动过程。关于应用程序启动过程,我会在后续系列的文章中讲到。希望阅读这篇文章前先阅读本文列出的相关文章,要不你一脸蒙蔽,就别怪我了。1.应用程序进程概述要想启动一个应用程序,首先要保证这个应...转载 2018-04-04 10:12:21 · 194 阅读 · 0 评论 -
Android应用程序进程启动过程(后篇)
前言在前篇中我们讲到了Android应用程序进程启动过程,这一篇我们来讲遗留的知识点:在应用程序进程创建过程中会启动Binder线程池以及在应用程序进程启动后会创建消息循环。1.Binder线程池启动过程我们首先来看RuntimeInit类的zygoteInit函数,如下所示frameworks/base/core/java/com/android/internal/os/RuntimeInit....转载 2018-04-04 10:13:13 · 175 阅读 · 0 评论 -
bat批量安装apk到真机
@echo offadb kill-serveradb start-serveradb wait-for-device:: 遍历ApkPath目录下apk文件进行安装:: %cd% 表示当前目录set ApkPath=%cd%cd %cd%for /R %%s in (*.apk) do ( echo %%s adb install -r "%...原创 2019-06-21 18:10:43 · 516 阅读 · 1 评论 -
Fiddler -http/https抓包工具使用介绍-Android/iOS-抓包
一、Fiddler 介绍Fiddler是一个使用C#编写的http抓包工具。它使用灵活,功能强大,支持众多的http调试任务,是web、移动应用的开发调试利器。1,功能特点同Httpwatch、Firebug这些抓包工具一样,Fiddler够记录客户端和服务器之间的所有HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点等。 但F...转载 2019-07-19 10:27:26 · 513 阅读 · 0 评论 -
详解Hook框架frida,为工作效率提速!
一、frida简介frida是一款基于python + java 的hook框架,可运行在androidioslinuxwinosx等各平台,主要使用动态二进制插桩技术。本期“安仔课堂”,ISEC实验室为大家详解frida,认真读完这篇文章会让你在逆向工作中效率成倍提升哦!1、插桩技术插桩技术是指将额外的代码注入程序中以收集运行时的信息,可分为两种:(1)源代码插桩[Sourc...转载 2019-08-08 14:31:16 · 3133 阅读 · 1 评论 -
Android逆向之旅—动态方式破解apk进阶篇(IDA调试so源码)
文章内容大纲 (右击展开→→)本文篇幅可能有点长,所以小编建议,关注公众号之后,可以点击收藏,慢慢看哦~~ 一、前言 二、知识准备 第一、IDA工具的使用 第二、常用的ARM指令集知识 三、构造so案例 四、开始破解so文件 第二、开始使用IDA进行调试设置 第三、总结IDA调试的流程 五、使用IDA来解决反调试问题 六、技术总结 七、总结 内容预览:...转载 2019-08-06 16:57:49 · 3840 阅读 · 0 评论 -
Android系统启动流程(三)解析SyetemServer进程启动过程
前言上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的SyetemServer进程的启动过程。1.Zygote启动SyetemServer进程在上一篇文章中我们讲到在ZygoteInit.java的startSystemServer函数中启动了SyetemServer进程,如下所示。frameworks/b...转载 2018-04-04 10:09:56 · 211 阅读 · 0 评论 -
Android系统启动流程(二)解析Zygote进程启动过程
前言上一篇文章我们分析了init进程的启动过程,启动过程中主要做了三件事,其中一件就是创建了Zygote进程,那么Zygote进程是什么,它做了哪些事呢?这篇文章会给你这些问题的答案。1.Zygote简介在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器。它通过fock(复制进程...转载 2018-04-04 10:09:04 · 166 阅读 · 0 评论 -
判断AndroidCPU32位还是64位
ELF文件头e_indent[]数组文件类标识索引private static final int EI_ClASS = 4; ELF文件头 e_indent[EI_CLASS]的取值:ELFCLASS32表示32位目标private static final int ELFCLASS32 =1; ELF文件头 e_indent[EI_CLASS]的取值:ELFCLASS6原创 2017-12-11 10:51:26 · 1966 阅读 · 0 评论 -
Android ARM注释
Android JNI_OnLoad 简单注释JNI_onLoad汇编代码 EXPORT JNI_OnLoad.text:000022E0 JNI_OnLoad.text:000022E0.text:000022E0 var_C = -0xC.text:000022E0.text:000022E0 PUSH {R原创 2017-12-13 19:03:59 · 329 阅读 · 0 评论 -
Android eax, ebx, ecx, edx, esi, edi, ebp, esp 寄存器的作用
一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di,转载 2017-12-14 17:18:29 · 332 阅读 · 0 评论 -
ARM支持的4种堆栈工作方式
1.满递增堆栈:堆栈指针指向最后压入堆栈的数据,且由低地址向高地址生成2.满递减堆栈:堆栈指针指向最后压入堆栈的数据,且由高地址向低地址生成3.空递增堆栈:堆栈指针指向下一个要放入数据的空位置,且由低地址向高地址生成4.空递减堆栈:堆栈指针指向下一个要放入数据的空地址,且由高地址向低地址生成ARM支持以上四种方式,在ARM中,通常使用转载 2017-12-15 16:01:13 · 2975 阅读 · 0 评论 -
Thumb和ARM指令的区别
Thumb指令集 Thumb指令可以看做是ARM指令压缩形式的子集,是针对代码密度【1】的问题而提出的,它具有16为的代码密度。Thumb不是一个完整的体系结构,不能指望处理程序只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能,必要时,可借助完善的ARM指令集,例如:所有异常自动进入ARM状态。 在编写Thumb指令转载 2018-01-05 16:16:07 · 11971 阅读 · 0 评论 -
ARM指令(阅读笔记)
ARM寄存器基础笔记 1.2.2 寄存器组织 R8~R12 也是存放临时变量R13/SP 栈指针寄存器,记录栈顶地址(地址指向那,栈就在那)R14/LR 链接返回寄存器,保存程序返回地址,如函数调用返回CASE:当BL fun返回地址保存在R14寄存器里R15/pC 保存CPU下一步执行的地址里面的指令原创 2018-01-15 19:26:48 · 409 阅读 · 0 评论 -
ARM汇编之寄存器
在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用的32位寄存器和6个状态寄存器。一.通用寄存器:1.在汇编语言中,寄存器R0-R13为保存数据或地址值的通用寄存器。2.其中寄存器R0-R7为未分组的寄存器。对于任何处理器模式,它们都共享R0~R7的通用寄存器。3.寄存器R8-R12为两个分组的物理寄存器。 a.FIQ拥有自转载 2018-01-07 12:03:57 · 1141 阅读 · 0 评论 -
Android安全机制介绍
本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案。1、Android系统架构 Android采用分层的系统架构,由下往上分别是linux内核层、硬件抽象层、系统运行时库层、应用程序框架层和应用程序层。 Android以Linux操作系统内核为基础,实现硬件设备驱动、进程转载 2018-02-02 12:04:32 · 294 阅读 · 0 评论 -
Android ARM 指令学习
......6.1原生程序ARM汇编语言,逆向你的helloworld6.2原生程序的生成过程1:预处理 “如include头文件"包含的头文件全部编译进来,还有#define预定义,#if预条件处理等也都在这里被编译器处,详细的输出可以给gcc编译器传递”-E“,选项查看。2,编译编译器首先要检查代码的规范性,以及是有语法错误等,以及代码实际要做的工作,检查无误后原创 2014-10-28 13:30:34 · 650 阅读 · 0 评论