时间:2022-10-09 17:49:30 | 浏览:563
本教程只用于学习探讨,不允许任何人使用技术进行违法操作,阅读教程即表示同意!
frida是一个hook原生安卓开发app的一个框架,也不止安卓,像ios和win等,都支持,但是好像看到用的不太多。
注意,是原生,就是用Java+安卓开发的app。
还有些是H5之类的,这些是hook不成的,当然,市面上最起码80%的app都是原生开发,不必担心。
再说,H5开发的不是更容易破解?懂的都懂!
hook英文是钩子的意思,可以理解为一堆水管流水,我在某个水管中间挖一个洞,操作一波再继续流。
当然,我也可以只看看某个水管有没有水。
上述这个过程就叫做修改和验证!
可以使用编写的简单Python环境管理器快速创建一个虚拟环境,可视化就是好,再也不用记该死的命令了!
相关链接:
https://blog.csdn.net/tianyi19/article/details/121387317?spm=1001.2014.3001.5501
这里已经创建完毕,虚拟环境名为frida_env
pixel 2 Android 8(已root) 通过usb连接电脑
Magisk 23.0
Xposed 3.1.5
Python 3.8.6
frida12.3.6 Android5-6 Python3.7
frida12.8.0 Android7-8 Python3.8
frida14+ Android9+ Python3.8
当然,这是一个差不多的参考价值,不一定准,具体情况具体分析。
在安装frida时,尽量科学上网,因为frida好像会下载一些东西,不科学上网非常慢...可能会卡住很长时间!
根据我的环境,这是我的依赖包,在虚拟环境中pip安装即可!
frida==14.2.18
frida-tools==9.2.5
安装完成之后,分别执行frida --version
和导入frida
,如果没有报错则表示安装成功!
frida-server下载链接
:https://github.com/frida/frida/releases/
frida-server版本和pip安装的frida版本要一致
平台要选对,手机是安卓还是ios?arm32还是arm64?还是模拟器?
综上所述,我pip的frida版本为14.2.18,手机是arm64,所以要下载这个!
adb push <xx>frida-server-14.2.18-android-arm64 /data/local/tmp
data/local/tmp
下面的frida-server文件确实存在,ok。
chmod 777 frida-server-14.2.18-android-arm64
./frida-server-14.2.18-android-arm64
这样就已经运行起来了,他是不会有提示的,是直接wait在这的!
注意啊,这个cmd窗口是不能关的,一直挂这就行!
激活上述创建好的虚拟环境,执行以下命令。
frida-ps -U
如果出现以下信息,表示正确!这是手机的一些信息,表示能获取到。
到这,pc端的frida和手机端的frida-server就建立成功了,主要流程就是
pc端安装frida
手机端运行frida-server
如果frida版本<=12,好像是要进行端口转发的
adb forward tcp:27042 tcp:27042
pc上配置frida没什么好说的了,创建一个虚拟环境,安装frida就好了。
手机上的话,第一次需要把frida-server拷贝到/data/local/tmp
下和chmod
然后运行这个frida-server,命令总结一下大概为:
adb shell
su
cd /data/local/tmp
./frida-server-14.2.18-android-arm64
下次使用直接复制就可以了!
因为frida使用的是js语言,并且需要安装一个代码自动提示插件,所以WebStorm最合适,官网下载点击下一步下一步即可。
这里不做叙述。
嗯,还需要安装node,自己折腾吧!
创建一个空项目,选择合适的目录。
打开项目,点击下面的Terminal,输入npm i @types/frida-gum
安装frida代码自动提示。
这不,关于frida的代码就能自动提示了!
题外话
不一定非得用webStorm,主要是用npm i @types/frida-gum
来安装代码自动提示,只要安装上,pycharm,idea,vs都可以出提示的,但是还是jetbrains公司的东西好使!
xx牛.apk
通过Charles+postern进行抓包,发现登录用的接口为
http://api.dodovip.com/api/user/login
可以发现带的数据是一个{"Encrypt":"xxx"}
,擦,这是什么玩意啊???
这个apk是没有加固的,通过反编译搜索一下user/login
试试!!!
找到了两处user/login
,其中一个是login函数!
那么,现在问题来了,到底user/login
走的是不是login?如何验证?
Java.perform(function {
console.log("开始hook");
//找到要hook的类
let loginActivity = Java.use("com.dodonew.online.ui.LoginActivity");
//重写hook的函数
loginActivity.login.implementation = function (userName, pwd) {
console.log("login函数执行");
console.log("userName:", userName);
console.log("pwd:", pwd);
//再执行原来的login,保证程序正常执行
return this.login(userName, pwd);
}
})
frida -U -F -l xx牛.js
-U 连接USB设备
-F 附加到最前面的app
-l 注入的js
此时点击手机上面的登录按钮,然后看pc上控制台的输出!
确实输出了,经过验证,确实是执行了这个login。
然后你再进行一遍hook和分析即可。
下节课就来分析如何自动登录这个app!
想要玩转hook,大概分为以下几步
pc创建虚拟环境,安装frida。
push frida-server到手机上,并且运行起来挂那。
编写hook代码。
人生没有白走的路,加油!
如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。
“十三五”时期,铜陵城市面貌再提升一个档次,新建成北斗星城、吾悦广场、一中西湖校区、西湖南邻里中心等一批城建项目。并再新开工温德姆酒店、北师大铜陵实验学校、G3铜陵长江公铁大桥等一批重点项目。进入“十四五”时期,铜陵城市建设会有什么发展?城
7月25日上午,清苑城区西部的中南高科·保定新经济产业园,在一片塔吊林立和机器轰鸣声中,清苑开发区中南高科办事处揭牌。清苑开发区管委会承诺,立足企业所需、竭尽政府所能,当好“金牌店小二”。据中南高科保定总经理周宇介绍,该产业园位于清苑经济开
关于《定襄经济技术开发区控制性详细规划》批复的公告根据相关规定,《定襄经济技术开发区控制性详细规划》批复公告如下:一、批复时间:2021年8月2日二、批复地点:忻州市人民政府三、咨询服务:管理委员会将有工作人员受理咨询,请广大定襄县居民前往
普通程序员,不学算法,也可以成为大神吗?对不起,这个,绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗?就一直当普通程序员吗?如果有一本算法书,看着很轻松……又有代码示例……又有讲解……怎么会有那样的书呢?哎呀,最好学了算法
Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。它拥有非常小的程序集,非常易于学习、阅读和维护。其解释器可在Windows、Linux 和 Mac OS 等多种操作系统上使用。它的可移植性和可伸缩性
虽说,几乎每一代iPhone无论是从产品性能、做工甚至是设计都能成为行业中的标杆性产品,但在iPhone庞大的产品线中有些产品咱们还是尽量别去碰,尤其是以下这三款,甭管降价有多猛,产品有多便宜,有多少Up主推荐,大家都要慎入啊!苹果避坑指南
转眼间,已经到了苹果iPhone面世的第16年。从初代iPhone到现在的iPhone13系列,给我们带来了许多经典与回忆。但让许多朋友不解的是,在手机像素动辄过亿的时代,iPhone依旧坚持1200万像素的“初心”。回首初代iPhone,