吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16547|回复: 28
收起左侧

[Android 原创] Frida-Gadget免ROOT注入APP实现破解

[复制链接]
zyx1211 发表于 2020-5-18 11:09
FrIDA-Gadget简介
简单来说,FridaGadget是一种免ROOT的注入方式,通过修改程序加载动态库而实现HOOK。
FridaGadget官方文档:https://frida.re/docs/gadget/

实战目标
破解某照片恢复APP,试了下确实可以对手机照片进行签名恢复(非深度恢复),主要还是恢复了那些后缀名不是标准后缀名的图片。

实战开始
1.分析软件流程
打开APP--扫描可恢复照片--随便点一张恢复
1.png
以个人经验来说 从支付宝入手是最方便的(因为支付宝的可见字符串比较多)
直接假装支付一下 然后取消 看看有没有什么提示
2.png

有提示就非常方便了 直接去代码搜 取消支付
(如果没提示呢? 通常的解决办法是通过界面分析查看资源ID 比如查看确认支付这个按钮 然后去代码里搜这个按钮的点击事件onClick)


2.实现白嫖    PS:本文主要是对Gadget实战使用的记录,所以不做太多破解分析
现在的APP 90%都会加壳 所以要脱壳 才能看到真实代码
脱壳的话 使用大佬们的DUMP工具就行 https://github.com/lasting-yang/frida_dump
脱完壳 使用jadx 或者 等等等  搜索 取消支付
3.png
可以看到c方法是取消支付 a方法是支付成功
所以可以让程序准备执行c方法的时候去调用a方法
可以看到 a方法需要三个参数 其中第一个参数i肯定要为0 才能进入支付成功的流程 其余两个参数倒是没影响(从代码中分析出来)
hook代码如下:
4.png
运行一下 故意取消支付看看效果
5.png
发现能正常使用 但是略显麻烦 每次要故意取消一下
如果了解安卓程序生命周期 可以知道onCreate方法是每个界面首先调用的方法
因此可以在订单支付界面的onCreate方法里面直接调用a方法(支付成功)
这应该是一种最简单暴力的方式了
hook代码如下:
6.png
运行看一下效果 发现直接点恢复就可以恢复了 不用再看到订单支付窗口

3.FridaGadget注入源程序
首先在原APK的lib目录下分别加入各自架构的FridaGadget库 https://github.com/frida/frida/releases/
并在同目录下写入配置文件(执行哪个脚本) 配置文件名就是库名的so前加config.
7.png
根据我这里写的配置 需要把脚本命名为myscript.js并放在手机内置存储根目录

最终加入后:
8.png

还差最后一步 就是加载Gadget库
一般来说也有两个方法 一是在java层加载 二是在其他so里加载
这里选择java层
对应的smali代码:
[Java] 纯文本查看 复制代码
const-string v0, "frida"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

把代码加到程序入口(其实只要加到恢复界面之前运行的地方都可以)
因为这是个加固app 其实能选的地方不多
9.png

注入完成 打包apk 重新签名 安装到手机(不要忘了把脚本放在手机存储里 刚装完第一次启动可能无效果 重新启动一次就行
最后放个成品  https://pan.lanzouj.com/icq4ije

免费评分

参与人数 10威望 +1 吾爱币 +27 热心值 +9 收起 理由
qiucx + 1 + 1 谢谢@Thanks!
caleb110 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
用户001999 + 1 + 1 这个帖子可以
麟之游 + 1 用心讨论,共获提升!
yang4502981 + 1 热心回复!
笙若 + 1 + 1 谢谢@Thanks!
winwei + 1 + 1 用心讨论,共获提升!
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jiachenhui + 1 我很赞同!
ricohrh + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

OSharkRiven 发表于 2020-11-19 01:11
OSharkRiven 发表于 2020-11-19 00:14
楼主,如果按照此方法持久化后,我的python脚本里面的逻辑应该如何嵌入到APP中呢?找了许久没什么头绪,能 ...

目前是用socket发送到服务器,服务器进行业务逻辑来绕过去的,但受限于网络,所以想知道有什么办法直接嵌入到app中,谢谢楼主
 楼主| zyx1211 发表于 2020-5-18 19:48
挥着翅膀男孩 发表于 2020-5-18 16:22
这种是需要对原apk进行重新打包吧?有签名验证或者使用数字加固的这类,恐怕不行了

是的 有数字壳的话ROOT还是可以注入的
lynxtang 发表于 2020-5-18 12:18
xj998 发表于 2020-5-18 14:50
正好要找微信图片恢复工具,兄弟你真是我的及时雨
tiantangyiyun 发表于 2020-5-18 14:55
这很好啊 谢谢分享啊
还不算晚 发表于 2020-5-18 15:12
学习一下
小傻孔儿 发表于 2020-5-18 15:33
我跟随楼主的脚步试一下,看能不能成
fengchuan 发表于 2020-5-18 16:06

学习一下
挥着翅膀男孩 发表于 2020-5-18 16:22
这种是需要对原apk进行重新打包吧?有签名验证或者使用数字加固的这类,恐怕不行了
z5487693 发表于 2020-5-18 16:54
不错不错的工具,让frida一定程度实现了可持久化,就是遇上文件校验和签名校验就不行了。学习了!感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 07:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表