安卓逆向神器frida-(2) 逆向破解X鞋app

6 篇文章 1 订阅
2 篇文章 1 订阅

首先声明: 此次逆向只为学习交流使用,切勿用于其他非法用途,关键代码均已打码

简介

上一篇主要是分享frida的一个介绍和使用, 现在我们使用frida来对一个安卓app进行一个实战破解, 本篇分享讲到一些java逆向,和简单的so分析,我大致讲一个app的逆向过程,有不懂的可以关注公众号留言,我会一一回复。

分享内容主要是为学习交流, 也希望可以大佬们一起学习,探讨。

在这里插入图片描述

工具(环境):

  • APP
  • charles
  • Frida
  • JADX
  • IDA pro

逆向分析:

通过charles抓包分析看到, app走的都是post请求, 发现请求data里有个newSign,看着像md5, 请求headers 没啥重要信息, 那我们今天分析一下这个newSign是怎么来的。
在这里插入图片描述

使用JADX打开app

在这里插入图片描述

先使用搜索大法,看一下newSign,是否在代码中出现。

在这里插入图片描述

通过搜索大法, 跟出了这么一段代码, 因为我们想要的数据基本都是走的post请求,所以我们看第一个判断里, 是调用了RequestUtils 中的a函数和b函数。
在这里插入图片描述

用frida objection 看一下requestsUtils 类下的函数, 看到,方法下有4个函数,但是具体用到的只有两个,我们具体hook一下函数看一下返回值
在这里插入图片描述

通过hook发现,这个函数返回值和我们抓包一样
在这里插入图片描述

这是函数java层具体代码, 最后可以看到,把两个参数进行了一个aes加密,然后再md5。 ok, 真相越来越近,继续往下跟AESEncrypt类都做了什么操作, 因为这个类里调用的都是AESEncrypt.b函数,所以我们直接去跟这个函数就好。
在这里插入图片描述

这里可以看到加载了so,还有N多个nativ函数,这些可以先不管,我们先hook一下b函数,传进来的参数都是什么。
在这里插入图片描述

传进来的两个参数,第一个是对象,可以先不管,因为根本没有用到,第二个 有没有觉得很眼熟! 是的,就是data里的key和value相加的一个字符串, 其实到这里,根据上面的java层代码,我们已经可以猜出个大概,通过调用native 方法 getByteValues 获得一个 密钥,然后进行一个取反的操作,然后一起扔到so里做了些处理,然后aes加密扔了出来, 因为我们不知道是使用哪种模式,所以我们打开ida看一下so文件
在这里插入图片描述

打开so ,具体过程就不详述了, 最后是跟到这个函数,基本可以知道是一个aes 16位的加密了, 咱们最后用frida hook一下看看吧~~
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

ok 到这里,加密基本就已经清晰明了了, 这个密钥我看过了,是可以固定的。
请求body > 进行一个字符串操作 > aes加密 > md5 = newSign
接下来就可以用代码进行模拟一下,我用的是python其实啥都行。

python代码,通过。
在这里插入图片描述

通过之前我们对Frida用法的了解和掌握, 破解一个简单的app就非常简单了,

代码放到了我的公众号 爬虫攻城狮 回复 newSign

在这里插入图片描述

在这里会不定时的分享一下,爬虫的奇淫巧技,实战中遇到的加密解密,和一些大厂的加密hook和破解,有些内容不过审核,我会提前发到公众号上,大家可以关注交流。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Frida是个轻量级so级别的hook框架,它可以帮助逆向人员对指定的进程的so模块进行分析。它主要提供了功能简单的python接口和功能丰富的js接口,使得hook函数和修改so编程化,值得一提的是接口中包含了主控端与目标进程的交互接口,由此我们可以即时获取信息并随时进行修改。使用frida可以获取进程的信息(模块列表,线程列表,库导出函数),可以拦截指定函数和调用指定函数,可以注入代码,总而言之,使用frida我们可以对进程模块进行手术刀式剖析。 它主要的工作方式是将脚本库注入到目标进程,在目标进程执行脚本。这里需要注意的是,它是将脚本库注入到已经启动的进程,但并不是说,对于进程初始化所做的动作,frida无能为力,frida提供了一个接口spawn,可以启动并暂时挂起进程,然后待我们布置好hook代码后再恢复进程运行,但是这个时间很短,大概2秒,也可能是我的使用姿势不对,求大佬指正。 此外,frida提供了相关的文档,但是frida官网提供的关于python接口的文档实在是少的可怜,连工具命令行的参数都没有,这点需要下载frida的python接口的源代码自己去分析了。值得高兴的一点是,Frida官网提供的js接口的文档稍微详细一些,并附有一些可喜的例子。 除了用于脚本编程的接口外,frida还提供了一些简单的工具,比如查看进程列表,追踪某个库函数等。 剩下就是关于frda学习路线了,Frida的学习还是蛮简单的,只需要了解两方面的内容: 1)主控端和目标进程的交互(message) 2)Python接口和js接口(查文档)
### 回答1: Frida-server-15.2.2-android-x86是一款适用于安卓x86架构的Frida服务器的版本。Frida是一种开源的动态插桩框架,可用于安卓设备上的应用程序逆向工程和安全性评估。 Frida-server是Frida框架中的一部分,用于在安卓设备上与Frida客户端通信。Frida-server是在设备上运行的服务,可以与Frida客户端(通常是运行在PC上的Frida工具)进行通信,并接收来自客户端的指令。 Frida-server-15.2.2-android-x86适用于安卓x86架构的设备。x86是一种PC上常见的处理器架构,而不是常用于移动设备的ARM架构。因此,如果你的安卓设备是基于x86架构的,那么你可以使用这个版本的Frida-server在设备上运行Frida服务。 通过在设备上运行Frida-server,你可以利用Frida的强大功能来分析、修改和控制应用程序。Frida允许你动态地插入JavaScript代码到应用程序中,以实时地跟踪和修改应用程序的行为。你可以使用Frida进行代码注入、函数钩子、网络流量捕获、数据修改等操作,以便进行应用程序逆向工程、漏洞挖掘、安全性评估等任务。 总而言之,Frida-server-15.2.2-android-x86是一种适用于安卓x86架构设备的Frida服务器版本,通过在设备上运行Frida-server,你可以利用Frida框架的功能对应用程序进行逆向工程和安全性评估。 ### 回答2: frida-server-15.2.2-android-x86是一款用于Android x86架构的Frida服务器。Frida是一种强大的开源工具,用于分析、修改和调试软件。它可以通过脚本语言来进行动态注入和操作,支持多种平台和架构。 通过使用frida-server-15.2.2-android-x86,我们可以在Android x86设备上安装和运行Frida服务器。安装frida-server时我们需要将其推送到设备上,并在设备上运行它。运行成功后,我们可以通过Frida客户端连接到该设备上的Frida服务器,并使用Frida的功能进行应用程序的分析、修改和调试。 Frida-server-15.2.2-android-x86版本适用于Android x86架构的设备。在使用时,我们首先需要确保设备已经以root权限运行,并且具备adb工具的连接。然后,我们可以通过命令行将frida-server-15.2.2-android-x86安装到设备上。在设备上运行frida-server时,它会监听指定的端口,并等待Frida客户端的连接。 通过与Frida服务器建立连接,我们可以使用JavaScript或Python等脚本语言来进行动态插桩、API Hook、函数跟踪等操作。Frida提供了强大的API,使得应用程序的分析和修改变得更加简单高效。使用Frida,我们可以实时监测应用程序的行为,获取关键信息,进行漏洞分析,甚至可以修改应用程序的逻辑和数据。 总之,frida-server-15.2.2-android-x86是一款用于Android x86平台的Frida服务器,它提供了强大的功能和API,用于动态分析、修改和调试应用程序。通过与Frida客户端的连接,我们可以通过脚本语言来操作和控制应用程序,使得应用程序的分析和修改变得更加高效和可靠。 ### 回答3: Frida-Server是一款功能强大的开源工具,用于在Android设备上进行动态代码注入和调试。frida-server-15.2.2-android-x86指的是适用于Android x86架构的Frida-Server版本15.2.2。 Frida-Server能够以服务的形式运行在目标Android设备上,通过与Frida桌面端或其他脚本进行通信,来实现对目标应用程序的动态分析和操作。它提供了一套JavaScript API,允许我们在运行时通过修改和执行目标应用程序中的代码来实现功能扩展,如函数拦截、数据修改等。 在具体使用时,首先需要在目标Android设备上安装Frida-Server,这个版本适用于x86架构的设备。其次,需要将Frida-Server与Frida桌面端或其他脚本工具配合使用,以实现与目标应用程序的通信。我们可以通过Frida提供的命令行工具或编写脚本的方式来进行代码注入和调试。 Frida-Server-15.2.2-android-x86版本对于使用x86架构的Android设备来说是必需的,因为它能够确保Frida-Server能在这样的设备上正确运行。使用适合设备架构的版本,可以保证性能和稳定性,并且避免兼容性问题。 总而言之,Frida-Server-15.2.2-android-x86是一款用于在Android x86架构设备上进行动态代码注入和调试的工具,通过与Frida桌面端或其他脚本进行通信来实现相关功能。它可以帮助安全研究人员、开发人员等对Android应用程序进行潜在威胁分析、性能优化以及功能增强等工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值