全新版FRIDA与安卓 应用安全与逆向实战宝典
zheli > www.666xit.com/4128/
Firda介绍
Frida 是一款根据 Python + JavaScript 的 Hook 与调试结构。
Firda 是一款易用的跨平 Hook 东西, Java 层到 Native 层的 Hook 无所不能,是一种 动态 的插桩东西,能够刺进代码到原生 App 的内存空间中,动态的去监视和修改行为,原生平台包括 Win、Mac、Linux、Android、iOS 全平台。 静态二进制插桩:在程序执行前刺进额定的代码和数据,生成一个永久改动的可执行文件。 动态二进制插桩:在程序运行时实时地刺进额定代码和数据,对可执行文件没有任何永久改动。 Frida 的功用好像油猴插件,经过油猴插件编写的脚本能够直接改动网页的编码方式。
大部分 App 关于咱们来说都是黑盒,对 App 进行逆向和动态调试、或自动化剖析、需求不断的进行动态调试,Frida 经过运用 Python 注入 JavaScript 脚本,都是经过 JS 脚本来操作设备上的 Java代码。
假如需求持久化的 Hook 还是需求经过 Xposed 等结构,可是 Frida 的动态和灵活性对逆向和自动化逆向提供了很大协助。
关于逆向操作破解来说便利,装置环境和装备环境要求简略兼容性好。 挑选动态调试函数会遇到各种反调试、溃散,相比xposed而言,frida优势是其动态执行不需求重启。 由于Frida大致原理是手机端装置一个server程序,然后把手机端的端口转到PC端,PC端写python脚本进行通信,而python脚本中需求hook的代码采用javascript言语。
榜首、Xposed的优缺陷
长处:在编写Java层hook插件的时候十分好用,这一点彻底优越于Frida和SubstrateCydia,由于他也是Android项目,能够直接编写Java代码调用各类api进行操作。并且能够装置到手机上直接运用。
缺陷:装备装置环境繁琐,兼容性差,在Hook底层的时候就很无助了。
第二、Frida的优缺陷
长处:在上面咱们能够看到他的长处在于装备环境很简略,操作也很快捷,关于破解者开发阶段十分好用。支持Java层和Native层hook操作,在Native层hook假如对错基本类型的话操作有点费事。
缺陷:由于他只适用于破解者在开发阶段,也便是他没法像Xposed用于实践生产中,比如我写一个微信外挂用Frida写必定不行的,由于他无法在手机端运行。也便是破解者用的比较多。 安全的考虑。各大APP越来越注重安全性,NDK所编译出来的so库逆向难度明显高于java代码产生的dex文件。越是灵敏的加密算法与数据就越是需求用NDK进行开发。 Frida 装置 Frida 分为客户端和服务端。
客户端:PC(操控端)
服务器:手机设备(被操控端)
客户端编写的 Python 代码,用于连接长途设备,提交要注入的 JS 代码到服务端,接受服务端发来的音讯。
服务端中需求用 JS 代码注入到目标进程,操作内存数据,给客户端发送音讯。
客户端 ➜ ~ pip install frida-tools Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/ Successfully installed frida-12.5.7 ➜ ~ frida --version 12.5.7
frida-ps :查看当时系统进程,表示装置成功。