阅读更多
一、前言

最近有一个同学,发给我一个设备流量访问检测工具,但是奇怪的是,他从GP上下载下来之后安装就没有数据了,而在GP上直接安装就可以。二次打包也会有问题。所以这里就可以判断这个app应该是有签名校验了,当然还有其他的校验逻辑,我们打开这个app界面如下,没有任何数据:

二、应用分析

下面就来简单分析这个app,不多说直接使用Jadx工具打开:

我们在使用的过程中会发现需要授权VPN权限,所以就断定这个app利用了系统的VPNService功能开发的,直接在xml中找到入口,然后进入查看配置代码:

继续跟踪查看内部逻辑:

在Worker类中,看到有一些核心的Native方法,开发过VPNService都知道,拦截数据等操作一般都会放到native去做,主要原因是性能会高点。不多说直接使用IDA打开libwebd.so文件,直接搜索NativeInit函数,为什么搜索这个函数呢?因为一看这个是初始化操作,而没有数据的话那些校验判断只会在这里,所以直接看这个函数实现:

继续往下看,他到底做了哪些验证,这里主要包括了三处验证,具体如下:

第一处验证:验证安装渠道是否为GP,这里利用了系统的getInstallerPackageName方法来做判断,这个方法在很早的Android版本就有了,但是这个方法有很大使用问题,后面会介绍。因为GP安装器包名是:com.android.vending,这里直接判断如果安装器不是GP就不进行拦包操作了。

第二处验证:应用签名校验,这个已经是最普遍的校验方法了,这里不多解释了,直接使用kstools工具进行爆破即可破解签名校验。

第三处验证:这个主要验证xml中的android:debuggable=”true”这个属性值,我们之前如果想调试这个app的话,一般都会手动反编译改这个属性为true的。但是我们现在不需要调试,也没必要进行修改。这个验证对于我们来说没什么影响。

看到上面的三处验证,其实对于我们现在掌握的技术来说,都不难,特别是签名校验,完全可以使用kstools工具来搞定,一键化操作,不了解kstools工具的同学可以看这篇文章:Android中自动爆破签名校验工具kstools;这里同学自己使用工具操作一下即可过了这个验证。而第三处验证可以说没什么影响,不用管它。主要来看第一处验证。有的同学说破解也简单,直接修改CBZ指令即可。但是这个就缺失了一些技巧,我们要的不是结果,而是学习的过程。接下来看看我是怎么破解这个校验的。又要多介绍一些知识点了。

三、破解方案

破解这个安装渠道大致有两个方案,一个是利用kstools工具源码修改一下,拦截getInstallerPackageName方法,然后修改返回值即可,如下:

直接返回这个包名的的安装器就是GP的,这样在打包就可以给多人使用了。这个不多介绍了,感兴趣的同学去下载源码自己操作实践一下即可:https://github.com/fourbrother/kstools

还有一种超级简单的方式,直接使用命令 pm install -i[指定安装器包名] apk文件,这个命令应该又很少人知道,但是这个简单的一个命令就可以在这里很方便的破解,可以指定一个app的安装器。

我们安装之后,可以在系统的 /data/system/packages.xml 中查看应用对应的安装器名称:

而这里又说道一个知识,就是系统的这个packages.xml文件,他就是设备安装成功的应用的一些详细信息,包括使用到的权限,签名信息,安装渠道,各种标志等。之前有人问怎么获取设备中的应用安装渠道来源,其实可以从这个文件中获取到。从这里看到这个应用现在的确是从GP上安装的了,也说明了上面的那个pm命令的确有效。

这时候我们再看看应用的拦截是否有效果了:

看到了,这里开始拦截设备的数据包了,从这里看这款app的确很有用,对于我们开发来说,也算是一个很好的工具了,破解之后可以珍藏使用了。

对于第一种方式破解是最好的,因为那样可以给多个人使用,而对于第二种命令指定安装器的安装方式,一般小白用户肯定不知道。对于第一种方式破解只需要修改kstools源码即可。

四、总结

好了到这里我们就破解成功了,可以愉快的使用这个app了,但是从上面来看了解到了新的防护策略就是判断应用是否来自于指定应用市场。有的同学可能立马想到了,为了防止二次打包,可以在应用中判断是否来自于主流的应用市场渠道,如果不是就不走正确的逻辑了,这个也算是一个防护策略了,不过可惜的是这个想法是不可行的,如果可行就有很多app早这么干了。原因是因为这个系统方法:getInstallerPackageName,大家可以自己测试这个方法,会发现:如果一个app是系统应用,那么这个返回值可能是设备自带的应用市场。如果一个app是第三方应用,从GP上安装,这个值一定是com.android.vending;而如果是其他渠道,比如国内的应用包,手机助手,豌豆荚等。就有可能是null值,而是用pm这样的命令,或者系统自带的安装器安装的第三方应用也有可能是null值,也就是说:这个系统api返回的应用安装器名称极不稳定,完全就是不靠谱的方法,至少在国内没法使用的。所以几乎可以忽略这个方法的。但是为何这个app敢这么干呢?其实我也很好奇。不过有一点可以说明就是这个app开发商就认定了此app只在GP上发布,其他渠道都不发布,这样只认定GP上下载的app才算是合法的。比如一个国外用户,用了华为手机使用非GP渠道下载了这个app,那么可惜这个人也是不能使用的。我也很好奇这个app的开发商为何要这么做?反正国内的app应该都不会这么做的。因为这个方法的返回值极不稳定。

但是不能说这个方法不靠谱,我们在后面的逆向就要忽略这个防护,后面我们在破解app依然遵从不变法则:全局搜索signature字符串来判断是否有签名校验,全局搜索getInstallerPackageName方法是否有安全渠道验证。不管是在IDA还是Jadx中搜索,都是如此。
  • 大小: 11 KB
  • 大小: 14 KB
  • 大小: 20.3 KB
  • 大小: 50.3 KB
  • 大小: 24.6 KB
  • 大小: 45.3 KB
  • 大小: 18.8 KB
  • 大小: 16.1 KB
  • 大小: 42.6 KB
  • 大小: 8.3 KB
  • 大小: 34.1 KB
  • 大小: 42.4 KB
来自: wjdiankong
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Android逆向之旅---带你解读Android中新型安全防护策略

    一、前言 最近有一个同学,发给我一个设备流量访问检测工具,但是奇怪的是,他从GP上下载下来之后安装就没有数据了,而在GP上直接安装就可以。二次打包也会有问题。...我们在使用的过程中会发现需要...

  • 利用日志管理,溯源追踪解决安全问题

    服务器是IT基础设施的关键,但是网络攻击每天都在发生。IT Governance报告显示,仅在2020年11月就有586,771,602条泄露记录。...而当攻击者绕过安全防线发起攻击时,往往都有行为、进程的足迹可以溯源,有.

  • 人工智能与大数据时代-2019

    文章不断更新中..... 20191013 白皮书丨大数据产业发展呈现八大趋势 《2019中国大数据产业发展白皮书》深度解读之一 《2019中国大数据产业发展白皮书》深度解读之二 《2019中国大数据产业发展白皮书》深度解读...

  • 在互联网上,没有人知道你是一条狗?

    这则漫画中有两只狗:一只黑狗站在电脑椅上,爪子扶着键盘。它望向站在地上、表情迷茫的另一只狗,兴奋地说:「在互联网上,没人知道你是一条狗。 (On the Internet, nobody knows you’re a dog.)画中那只狗的...

  • 谷歌原数据保护团队技术主管:零信任实践分享

    在此背景下开发的Binary Authorization for Borg(BAB) 系统已经在谷歌生产环境中实现了全面覆盖:任何人在生产环境中以任何服务的身份运行任何软件包之前,都必须为目标服务建立一个足够强的BAB安全策略。...

  • wuyun知识库目录

    1269.利用Office宏及Powershell的针对性攻击...1267.Android安全开发之ZIP文件目录遍历2016-06-23 1266.search-guard 在 Elasticsearch 2.3 上的运用2016-06-23 1265.签名加密破除-burp插件在app接口fuzz中的运用201

  • 一些不错的网页

    Ethical Technical Hackers And Leets (Newport Beach, CA) | Meetup 命令执行WAF绕过技巧总结 - FreeBuf互联网安全新媒体平台 Vectra_Cognito_cve_2018_14889_14890_14891.pdf 微信赌场——H5棋牌游戏渗透之旅 - i...

  • 信息技术领域会议(技术领域和非技术领域)

    从机制与策略探究Linux内核设计之道 陈莉君:西安邮电 16 Growing the Android Ecosystem ARM.ppt 钟晓峰– ARM中国战略合作经理 17 PerfEvent与Intel PMU介绍 林铭:Intel开源技术中心 18 ...

  • 一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

    一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

  • 上市公司-创新韧性数据(2007-2023年).dta

    上市公司的创新能力,彰显于它持续研发新技术、新产品及服务的实力之中,这是维系其市场竞争优势的核心所在。质量方面,它体现为公司提供的产品或服务达到卓越标准的程度,高质量不仅是获取客户信赖与扩大市场份额的基石,也是企业信誉的保障。至于效率,它则囊括了生产运营过程中的资源优化配置与成本控制能力,高效运作能够助力企业削减不必要的损耗,提升生产效能与市场响应速度,从而在竞争激烈的市场环境中稳固并扩大其优势地位。因此,创新能力、质量以及效率,这三者共同构成了推动上市公司持续发展与壮大的核心动力源泉。 数据名称:上市公司-创新能力、创新质量、创新效率数据 数据年份:2006-2023年 ## 02、相关数据 代码 年份 股票简称 中文全称 省份 城市 区县 行业代码 行业名称 证券简称 是否发生ST或ST或PT 是否发生暂停上市 成立日期 上市日期 企业性质 所属省份 所属城市 研发人员数量 研发人员数量占比 RD RDsz RDincome LRDsz LRDincome RD_inc RD_Dum LnRD 专利1 专利2 专利3 专利4 Patent1 Patent2 Patent3

  • 【9493】基于springboot+vue的美食信息推荐系统的设计与实现.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

  • 2023个股流动性.dta

    股票流动性是指股票在市场上被买卖的容易程度和速度,即投资者能够在不造成显著价格变动的情况下迅速买卖股票的能力。 Amihud指标结果这是一个衡量股票流动性的指标,为股票在一段时间的收益率与交易额的比值的负对数值。如果股票交易量的变动会带来股价的剧烈波动(暴涨暴跌),则Amihud指标越大,股票流动性越差;反之,如果交易量的变化对股价变化的影响越小,则说明股票的流动性较好。由于这是一个计算结果,因此需要根据实际的股票交易数据来计算。 数据名称:上市公司-股票流动性指标 数据年份:2000-2023年 ## 02、相关数据 stkcd、年份、证券代码、Amihud指标结果、交易天数。

  • 基于SSM+JWT实现前后端分离的token验证的demo.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

  • 价值600元的全网火爆的ChatGPT小程序页面模板,让AI回答你的任何问题!

    ChatGPT 是 OpenAI 开发的一款专门从事对话的人工智能聊天机器人原型。聊天机器人是一种大型语言模型,采用监督学习和强化学习技术。ChatGPT 于 2022 年 11 月推出,尽管其回答事实的准确性受到批评,但因其详细和清晰的回复而受到关注。ChatGPT 使用监督学习和强化学习在 GPT-3.5 之上进行了微调和升级。ChatGPT的相关模型是OpenAI与微软合作在其 Azure 超级计算基础设施上进行训练的。ChatGPT 的训练数据包括手册页、互联网现象和编程语言的知识,例如公告板系统和 Python 编程语言。 功能: 写作 绘画 聊天 唱歌 跳舞 地表最强大的AI,无所不能,目前持续火爆全网,感兴趣的可以尝试深入研究下。

  • 【9484】基于springboot+vue的扶贫助农系统--lw.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

  • 使用ssm框架实现的人力资源管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

  • Python 实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测(含模型描述及示例代码)

    内容概要:本文详细介绍了如何使用Python实现一种结合了蛇群算法(SO)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的深度学习模型,以提高多输入单输出回归预测的精度。首先阐述了项目背景和目的,强调了传统机器学习方法在处理复杂时序数据中的不足之处,并提出了深度学习模型的应用前景。接着讨论了项目的技术难点和技术解决方案,特别是超参数优化和自动化训练过程,并通过具体的案例展示了其有效性。最后给出了详细的模型构建步骤和代码样例,便于后续的实操演练。 适用人群:数据科学家、机器学习工程师和其他希望深入了解如何结合优化算法和深度学习模型的人士,最好有一定的深度学习基础知识和实践经验。 使用场景及目标:适用于涉及时间序列分析和预测的实际应用场景,包括但不限于金融市场预测、气候变化预测、能源需求预测和医疗健康预测等。目标是提高这些领域的预测精度和模型性能,为企业和个人决策提供更好的支持。 其他说明:本文提供了完整的模型构建指导及代码示例,帮助使用者理解每个组件的作用,尤其是如何结合不同类型的模型以及优化算法。对于想要深入研究相关主题或者实际操作此模型的学习者而言,是非常宝贵的参考资料。

  • 英文文献阅读指令【指令+教程+视频】.zip

    英文文献阅读指令【指令+教程+视频】.zip

Global site tag (gtag.js) - Google Analytics