25.安卓逆向2-frida hook技术-拦截弹框事件(拦截强制更新弹框和解决jadx加载dex文件不全问题)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89

提取码:zy89

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:24.安卓逆向2-壳与frida-dexdump砸壳

有些app不更新的话会弹出一个窗口,让我更新,如果不更新关闭弹框,它就会退出app,强制让我们更新,接下来就写怎么解决这个问题

首先打开 Charles 抓一下包,看个东西,如下图,不关闭更新弹框,有些数据包就没法抓,显示unknown,只有把更新弹框过了才行

开始干掉弹框,怎么干掉?就是在更新弹框中找文字,如下图立即更新这个文字,这样我们就可以根据这个文字使用jadx反编译apk,然后搜索这个文字,也就是看源码找内容

然后打开jadx反编译apk,如下图发现,它的源码被保护起来了,也就是加壳了

然后使用MT管理器查看app加壳的方式,如下图可以看到它采用360加固

然后解决壳,使用 frida-dexdump 砸壳,如下图使用frida-dexdump可能会出现错误,这个错误是不影响的

如下图虽然 frida-dexdump 出错了,但它还是把源码下载下来了,然后全选把它们拖进jadx里

如下图全选拖进去之后,它还是很少,这是jadx的问题,需要进行设置

首先点击首选项

把下图红框位置改成no,然后点击保存,下图红框意思是加载dex文件是检测dex文件是否正确,改成no不让它检测就可以了

如下图可以看到它正常了

到这就砸壳完成,开始下一步搜索更新弹框里的文字,如下图会发现,根据更新弹框里的文字什么都搜不出来,这个办法不行,就算搜出来也不是我们想要的

然后百度搜索frida hook app强制更新,当遇到问题的时候要利用网络搜索,你要相信你遇到的前辈们也都肯定遇到了,前辈们遇到了也肯定解决了,所以要利用网络搜索

如下图搜索出来会有很多,这里一个一个的看

如下图红框,有个 UpdateDialog,接下来使用 UpdateDialog这个关键字去搜索,UpdateDialog中文意思是更新对话框(对话框就是弹框),很多app都会用UpdateDialog这样的名字,如果使用 UpdateDialog 这个名字搜不出来就继续看别的文章,总有一个可以

可以搜出来很多

下图红框的名字最符合,所以先观察一下它

如下图双击进入 UpdateDialogFragment 类

然后看到下图红框的文字,它就很贴合更新弹框,然后继续观察别的

然后下图红框的方法,startDownloadApp它的中文名是 启动下载app

如下图双击 startDownloadApp 进入 startDownloadApp方法

然后再双击进入start方法

image-20250707203015588

然后进入start方法 startDownload 进入 startDownload方法

然后再双击

如下图进入 startDownload方法,到这就很明显是下载app的方法,然后通过最开始的名字 onServiceConnected,ServiceConnected中文意思是服务已连接(意思是和服务器以建立好连接),然后现在就能确定 UpdateDialogFragment 类就是更新弹框的类

然后回到下图位置,也就是 UpdateDialogFragment 类中

然后鼠标滚轮上下滑动观察附近的代码,可以看到下图红框位置,installApp中文意思是安装app

它在下图红框位置进行了调用,onUpdateClick意思是 on更新点击,意思是更新按钮的点击事件,也就是点击立即更新按钮执行的代码

通过fridahook掉installApp方法进行验证是不是点击立即更新按钮后执行的代码,如下图鼠标右击选择复制为frida片段

这里注意注入Firda要用重启的方式,如下图注入下方代码后,点击立即更新按钮它不会更新了,只会打印,所以现在就通过了验证 UpdateDialogFragment 类就是更新弹框的代码,接下来找,更新弹框在哪弹出来的

然后还是在这附近观察,然后看到下图红框的代码,initData中文意思是初始化数据,然后 UpdateDialogFragment 类是更新弹框的代码,这里的initData结合类的作用它的意思是初始化弹框数据,下图红框中还有一个getNewVersion,中文意思是获取最新版本,把getNewVersion方法hook掉让它返回当前app的版本应该也能不弹框,但还有更好的东西

所有app打开弹框,一般都会有show这个关键词,接下来找一找这个关键词,如下图红框show方法,接下来hook它

然后鼠标右击复制为frida片段

把下图红框的代码注释掉,不让它执行原本的代码,然后app不会弹出更新弹框了,可以正常使用了


img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值