原生安卓开发app的框架frida安装和Python小试牛刀

本教程只用于学习探讨,不允许任何人使用技术进行违法操作,阅读教程即表示同意!

什么是frida?

frida是一个hook原生安卓开发app的一个框架,也不止安卓,像ios和win等,都支持,但是好像看到用的不太多。

注意,是原生,就是用Java 安卓开发的app。

还有些是H5之类的,这些是hook不成的,当然,市面上最起码80%的app都是原生开发,不必担心。

再说,H5开发的不是更容易破解?懂的都懂!

什么是hook?

hook英文是钩子的意思,可以理解为一堆水管流水,我在某个水管中间挖一个洞,操作一波再继续流。

当然,我也可以只看看某个水管有没有水。

上述这个过程就叫做修改和验证!

创建Python虚拟环境

可以使用编写的简单Python环境管理器快速创建一个虚拟环境,可视化就是好,再也不用记该死的命令了!

相关链接:https://blog.csdn.net/tianyi19/article/details/121387317?spm=1001.2014.3001.5501

这里已经创建完毕,虚拟环境名为frida_env

原生安卓开发app的框架frida安装和Python小试牛刀

我的环境

pixel 2 Android 8(已root) 通过usb连接电脑
Magisk 23.0
Xposed 3.1.5
Python 3.8.6

frida版本和Android系统版本和Python版本

frida12.3.6 Android5-6 Python3.7
frida12.8.0 Android7-8 Python3.8
frida14 Android9 Python3.8

当然,这是一个差不多的参考价值,不一定准,具体情况具体分析。

frida安装

在安装frida时,尽量科学上网,因为frida好像会下载一些东西,不科学上网非常慢…可能会卡住很长时间!

依赖包

根据我的环境,这是我的依赖包,在虚拟环境中pip安装即可!

frida==14.2.18
frida-tools==9.2.5

验证

安装完成之后,分别执行frida --version和导入frida,如果没有报错则表示安装成功!

原生安卓开发app的框架frida安装和Python小试牛刀

frida-server安装

frida-server下载链接:https://github.com/frida/frida/releases/

注意事项

  • frida-server版本和pip安装的frida版本要一致

  • 平台要选对,手机是安卓还是ios?arm32还是arm64?还是模拟器?

综上所述,我pip的frida版本为14.2.18,手机是arm64,所以要下载这个!

原生安卓开发app的框架frida安装和Python小试牛刀

将frida-server推送到手机上

adb push <xx>frida-server-14.2.18-android-arm64 /data/local/tmp

原生安卓开发app的框架frida安装和Python小试牛刀

查看手机data/local/tmp下面的frida-server文件

原生安卓开发app的框架frida安装和Python小试牛刀

确实存在,ok。

给frida-server文件复制权限

chmod 777 frida-server-14.2.18-android-arm64

原生安卓开发app的框架frida安装和Python小试牛刀

运行frida-server文件

./frida-server-14.2.18-android-arm64

原生安卓开发app的框架frida安装和Python小试牛刀

这样就已经运行起来了,他是不会有提示的,是直接wait在这的!

注意啊,这个cmd窗口是不能关的,一直挂这就行!

验证

激活上述创建好的虚拟环境,执行以下命令。

frida-ps -U

如果出现以下信息,表示正确!这是手机的一些信息,表示能获取到。

原生安卓开发app的框架frida安装和Python小试牛刀

到这,pc端的frida和手机端的frida-server就建立成功了,主要流程就是

  • pc端安装frida

  • 手机端运行frida-server

老版本注意事项

如果frida版本<=12,好像是要进行端口转发的

adb forward tcp:27042 tcp:27042

关于frida和frida-server的总结

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

下次使用直接复制就可以了!

webStorm安装

因为frida使用的是js语言,并且需要安装一个代码自动提示插件,所以WebStorm最合适,官网下载点击下一步下一步即可。

这里不做叙述。

嗯,还需要安装node,自己折腾吧!

WebStorm frida配置

创建一个空项目,选择合适的目录。

原生安卓开发app的框架frida安装和Python小试牛刀

打开项目,点击下面的Terminal,输入npm i @types/frida-gum安装frida代码自动提示。

这不,关于frida的代码就能自动提示了!

原生安卓开发app的框架frida安装和Python小试牛刀

题外话

  • 不一定非得用webStorm,主要是用npm i @types/frida-gum来安装代码自动提示,只要安装上,pycharm,idea,vs都可以出提示的,但是还是jetbrains公司的东西好使!

小试牛刀之某某牛流程验证

apk

xx牛.apk

抓包分析

通过Charles postern进行抓包,发现登录用的接口为http://api.dodovip.com/api/user/login

原生安卓开发app的框架frida安装和Python小试牛刀

可以发现带的数据是一个{\"Encrypt\":\"xxx\"},擦,这是什么玩意啊???

apk反编译

这个apk是没有加固的,通过反编译搜索一下user/login试试!!!

原生安卓开发app的框架frida安装和Python小试牛刀

找到了两处user/login,其中一个是login函数!

那么,现在问题来了,到底user/login走的是不是login?如何验证?

frida辅助分析

代码

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);
}
})

代码解读

原生安卓开发app的框架frida安装和Python小试牛刀

启动frida

命令

frida -U -F -l xx牛.js
-U 连接USB设备
-F 附加到最前面的app
-l 注入的js

示例

原生安卓开发app的框架frida安装和Python小试牛刀

查看是否hook上

此时点击手机上面的登录按钮,然后看pc上控制台的输出!

原生安卓开发app的框架frida安装和Python小试牛刀

确实输出了,经过验证,确实是执行了这个login。

然后你再进行一遍hook和分析即可。

下节课就来分析如何自动登录这个app!

总结

想要玩转hook,大概分为以下几步

  1. pc创建虚拟环境,安装frida。

  2. push frida-server到手机上,并且运行起来挂那。

  3. 编写hook代码。

人生没有白走的路,加油!

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月21日 上午10:56
下一篇 2023年4月21日 上午11:12

相关推荐

  • 公务用车管理软件哪个好(公务用车管理软件)

    公务用车管理软件:让公务出行更加高效便捷 随着公务员队伍规模的不断扩大,公务用车管理已经成为了一个不可忽视的问题。如何高效便捷地管理公务用车,已经成为公务员们需要考虑的一个重要问题…

    科研百科 2024年6月3日
    44
  • 四川省肿瘤医院科研项目名单(四川省肿瘤医院科研项目)

    四川省肿瘤医院科研项目 四川省肿瘤医院是一家拥有悠久历史和优秀声誉的肿瘤医疗机构,一直致力于为患者提供高质量的医疗服务和治疗肿瘤的创新方法。近年来,随着科学技术的不断进步,四川省肿…

    科研百科 2024年8月3日
    27
  • 爱聊都是套路,充话费,警察能查吗

    爱聊都是套路,充话费,警察能查吗? 近年来,随着网络的普及,越来越多的人开始通过网络平台进行社交和交流。然而,一些不良分子却利用网络平台进行诈骗和套路,让人们陷入了深深的骗局之中。…

    科研百科 2024年12月3日
    0
  • 英特尔vPro Essentials平台,为中小企业解决远程带外管理难题

      中小企业如何在激烈的市场竞争中激流勇进、实现发展?这是无数成长型企业每天都在思考的复杂问题。但如果抛开执行层面的繁杂细节,这个问题的答案却又能变得异常简单;简单到只有两个字——…

    科研百科 2022年10月6日
    134
  • 新项目管理系统

    新项目管理系统: 提升工作效率和项目质量 随着现代项目管理的日益复杂,新的项目管理系统已经成为了现代项目管理的必要工具。本文将介绍我们团队最近开发的新项目管理系统,它可以帮助项目经…

    科研百科 2024年12月11日
    0
  • 舒城协同办公系统官网(舒城协同办公系统)

    舒城协同办公系统:让工作更高效 舒城协同办公系统是一款功能强大的办公软件,可以帮助企业提高办公效率,降低运营成本,提升企业竞争力。 舒城协同办公系统涵盖了企业内部的各个方面,包括会…

    科研百科 2024年8月31日
    21
  • 申报书主要技术指标经济指标

    申报书主要技术指标经济指标 在当前社会经济不断发展的背景下,企业申报书作为企业经济活动的重要文档,其内容和质量直接影响企业的实力和发展前景。因此,企业申报书的主要技术指标经济指标的…

    科研百科 2024年11月15日
    0
  • 山东3家国企招聘(山东3家国企招聘信息)

    2024年山东省信用增进投资股份有限公司社会招聘 山东省信用增进投资股份有限公司是山东省人民政府确定设立的省内首家AAA级专业信用增进机构,成立于2021年12月,由山东省鲁信投资…

    科研百科 2024年5月14日
    65
  • mkvtoolnix 提取

    Mkvtoolnix 提取:一个基于命令行的工具,用于提取各种视频格式的音频文件。 Mkvtoolnix 是一个开源的软件工具,用于转换、提取、编辑和转换各种视频格式。它提供了许多…

    科研百科 2024年11月29日
    0
  • 中山大学 博管办

    中山大学博管办: 推动学术交流与人才培养 中山大学是中国知名的综合性大学之一,拥有广泛的学科覆盖范围和优秀的学术实力。为了更好地推动学术交流和人才培养,中山大学博管办一直致力于为学…

    科研百科 2024年11月12日
    0