安卓逆向
文章平均质量分 83
烬柒小云
大学生
展开
-
Frida框架 -So-API(常用函数总结)
Hook libart 来Hook jni相关函数。inlineHook与寄存器Hook。frida API 写文件。Hook libc 写文件。so层主动调用任意函数。原创 2024-05-19 17:33:36 · 495 阅读 · 0 评论 -
smail及其语法
在smali里的所有操作都必须经过寄存器来进行:本地寄存器用v开头数字结尾的符号来表示,如v0、 v1、v2。参数寄存器则使用p开头数字结尾的符号来表示,如p0、p1、p2。特别注意的是,p0不一定是函数中的第一个参数,在非static函数中,p0代指“this",p1表示函数的第一个 参数,p2代表函数中的第二个参数。而在static函数中p0才对应第一个参数(因为Java的static方法中没有this方法)这里要补充两个smali指令 一个是if-eqz 另一个是if-nez 这两条指令是相对的。原创 2024-04-29 13:30:22 · 799 阅读 · 0 评论 -
Frida基础
在Android逆向过程中,Frida存在两种操作模式:一种是通过命令行直接将JavaScript脚本注入进程中,对进程进行操作,称为CLI(命令行)模式;另一种是使用Python进行JavaScript脚本的注 入工作,实际对进程进行操作的还是JavaScript脚本,这种操作模式 称为RPC模式。两种模式本质上是一样的,最终执行Hook工作的都是JavaScript脚本,而且核心执行注入工作的还是Frida本身,只是RPC模式在对复杂数据的处理上可以通过RPC传输给Python脚本来。原创 2024-04-29 13:23:55 · 736 阅读 · 0 评论 -
安卓之四大组件
2.singleTop模式 I.比如Activity B启动模式为singleTop,Activity A为standard,此时从A页面跳转B页面,A->B时,会先在栈中查看栈顶是否存在B,存在的话,则复用栈顶B,调用onNewIntent方法,而不是重新new一个新的B。如果栈中不存在B,则会创建B。II.再继续从B页面跳转B页面的时候,及A->B->B时,因为栈顶已经存在B了,则直接复用栈顶的B,调用onNewIntent方法,此时栈如下所示: B------栈顶 A------栈底。原创 2024-03-14 19:20:10 · 826 阅读 · 0 评论 -
Android虚拟机Dalvik和ART
前言:Android虚拟机包括Dalvik和ART,它们是用于在Android设备上运行应用程序的关键组件。1. 设计目的: Dalvik虚拟机是在Android早期版本中使用的虚拟机,其设计目的是为了在资源受限的移动设备上执行Java字节码。它采用了just-in-time (JIT) 编译的方式,即在运行时将字节码转换为本地机器代码。2. 执行方式: Dalvik虚拟机在应用程序安装时将Java字节码转换为.dex(Dalvik Executable)文件格式。在运行时,每个应用程序都有原创 2024-02-26 20:41:18 · 1104 阅读 · 0 评论