免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
工具下载:
链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89
提取码:zy89
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:6.安卓逆向2-手机安装charles证书
到这一定是手机可以被抓包了,然后2.安卓逆向-初识java语言这个java环境设置好(环境变量和idea)其它的不重要(比如不会写java代码,这个不重要,只要跟着把环境搞好就行),然后Python环境看python基础之搭建环境这个大哥写的,要确保java环境和Python环境搞好
开始安卓HOOK
frida是一个安卓HOOK框架,hook就是一种拦截app(应用)里面代码的技术,frida是一个主流框架,市面上只要搞安卓逆向的必会frida也必使用frida
安卓开发分为两层,一层是Native(也就是so文件,so文件可以用多种语言写,用js语言写的可以编译成so、用c语言也能编译成so,总而言之so就是非常规的java代码),一层是java
frida说明
frida是一个轻量级的Hook框架,可以用来监听app的动作,它的亮点,比如一个可以联网的app,比如短视频app,打开之后它会发送网络请求让服务器给返回短视频,这个操作发送和接收的操作是在app也就是apk文件里面发生的,这个frida就可以监听这个东西,这就是frida的亮点。
frida分两个部分,服务端和控制端,服务端运行在手机里面,然后通过进程注入来劫持app
frida可以hook到java也可以hook到so
为什么可以hook
现代应用分b/s架构(网页和服务器),c/s架构(客户端(app)和服务器)
b/s架构,比如加密代码都会在某个js文件里面,在我们本地电脑中
C/S架构中,比如加密的代码都会在apk文件里面,在我们本地手机中
为什么会在本地?
因为app里面要用数据,比如短视频app,服务器返回的视频,肯定要在app里面用,所以app里面必须要有解析视频数据的代码,如果不在本地app也没办法做
frida使用的是动态二进制插桩技术(DBI)
DBI可以做到的事情
1.可以访问进程的内存,就是手机打开一个app文件它就会打开一个进程,然后app里的数据都会放到进程的内存中,DBI让frida支持访问进程里的内存
2.在应用程序运行时覆盖一些功能
3.从导入的类中调用函数
4.在堆内存中查找对象实例并使用
5.HOOK,跟踪和拦截函数等
它可以拦截app中所有类和方法、入参、返回值
总结:
Frida使用二进制动态插桩技术,就是把一段代码动态的插入到app里面,但最终不会改变原有的程序,通过动态的插入,可以快速简单的分析出我们想要的源代码