AndroidAPP漏洞之战—插件化漏洞和解压缩漏洞详解

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2024.01.24甘肃

前言

基础知识

①计算每个文件的SHA-1摘要,进行BASE64编码后写入摘要文件,即MANIFEST.MF文件;

②计算整个MANIFEST.MF文件的SHA-1摘要,进行BASE64编码后写入签名文件,即*.SF文件;

③计算MANIFEST.MF文件中每一块摘要的SHA-1摘要,进行BASE64编码后写入签名文件,即*.SF文件;

④计算整个*.SF文件的数字签名(先摘要再私钥加密);

⑤将数字签名和X.509开发者数字证书(公钥)写入*.RSA文件;

①取出*.RSA中包含的开发者证书,并校验其合法性

②用证书中的公钥解密*.RSA中包含的签名

③用证书中的公钥计算*.SF的签名

④对比(2)和(3)的签名是否一致

①检查APK中包含的所有文件,对应的摘要值与MANIFEST.MF文件中记录的值一致

②使用证书文件(RSA文件)检验签名文件(SF文件)没有被修改过

③使用签名文件(SF文件)检验MF文件没有被修改过

SignerData(签名者数据):主要包括签名者的证书,整个APK完整性校验hash,以及一些必要信息。

Signature(签名):开发者对SignerData部分数据的签名数据。

PublicKey(公钥):用于验签的公钥数据。

②计算每个块的摘要

③计算(2)中所有摘要的签名

④添加X.509开发者数字证书(公钥)

②计算SignerData的hash值。

③两个值进行比较,如果相同则认为APK没有被修改过,解析出SignerData中的证书。否则安装失败。

④如果是第一次安装,直接将证书保存在应用信息中。

⑤如果是更新安装,即设备中原来存在这个应用,验证之前的证书是否与本次解析的证书相同。若相同,则安装成功,否则失败。

①利用PublicKey解密Signature,得到SignerData的hash明文。

④逐个解析出level块证书并验证,并保存为这个应用的历史证书。

⑤如果是第一次安装,直接将证书与历史证书一并保存在应用信息中。

⑥如果是更新安装,验证之前的证书与历史证书,是否与本次解析的证书或者历史证书中存在相同的证书,其中任意一个证书符合即可安装。

系统应用安装:开机时完成,没有安装界面。

网络下载的应用安装:通过市场应用完成,没有安装界面。

ADB工具安装:没有安装界面。

第三方应用安装:通过packageinstall.apk应用安装,有安装界面。

①app在运行的时候,可以通过加载一些本身不存在的文件,来实现一定功能,这种经常应用在app更新的过程中。

②可执行文件是可以替换的,更换静态资源不属于动态加载。

③动态加载的核心思想就是动态调用外部的dex文件,AndroidApk自带的dex是程序入口,所有功能可以直接从服务器中下载dex来完成。

插件化和解压缩安全场景和分类

插件化漏洞原理分析和复现

③对加载的Dex文件进行完整性校验和签名校验。

原理:这种是开发者在APKjava层中加入了签名校验代码,然后通过校验加入文件的MD5值或者SHA1值来对文件进行校验。

解决方案:一般这种情况,我们通过定位到APK中的签名代码段,然后进行hook篡改或者进行修改后重打包就可以进行绕过。

原理:由于java可解释语言的原因,所以后来开发者又将签名代码放入so层,从而增加逆向工作的难度。

解决方案:这种情况,同样可以使用IDA或GDB进行动态调试确定到签名代码段,然后使用hook注入技术或静态修改来进行绕过。

原理:由于前两种方式都是静态校验的方式,这样的安全性仍然较低,后来更多厂商通过服务器在线进行验证,将签名密钥发送然后在so层或java层中进行校验。

解决方案:这种情况,我们要使用抓包软件对服务器发送的数据包进行抓取,在成功获取正确密钥后,再去hook对应的签名代码段,从而就可以实现绕过。

Zip解压缩漏洞分析和复现

Janus漏洞分析和复现

dex文件修改DexHeader中的file_size,将其调整为合并后文件的大小。

zip文件修改尾部Zip,修正[endofcentraldirectoryrecord]中[centraldirectory]的偏移和[centraldirectory]中各[localfileheader]的偏移。

①从设备上取出目标应用的APK文件,并构造用于攻击的DEX文件;

②将攻击DEX文件与原APK文件简单拼接为一个新的文件;

③修复这个合并后的新文件的ZIP格式部分和DEX格式部分,修复原理如图1所示,需要修复文件格式中的关键偏移值和数据长度值;

最后,将修复后的文件,重命名为APK文件,覆盖安装设备上的原应用即可。

THE END
1.云签定制UDID微信应用多开分身定制平台《云签定制》全站软件定制毫无桎梏,任君挥洒创意。率先实现软件更名自由、桌面图标随心换,契合多元需求。 P12 签名证书与软件源解锁码慷慨相赠,P12 文件包确保零掉签、零闪退,稳固软件根基。安装链接随心复制分发,拓展无忧。售后承诺掉签无限次补救(规定范围),同一设备二次签名极简操作,无需输码。更支持用户上传 iPahttps://blog.csdn.net/2401_88067801/article/details/144335521
2.20241212苹果公司的签名在应用程序开发人员中越来越受欢迎,可以通过苹果签名直接下载并安装在苹果手机上。无需在AppStore上注册,也不需要通过Apple的官方审查。对于AppStore应用程序,选择Apple的公司签名来实施内部测试和应用程序分发很方便,并节省了时间和精力。随着Apple签名应用程序的日益普及,市场上关于Apple签名的演讲也越来越多https://www.jianshu.com/p/0b86f196bbf4
3.RK3588主板/开发板Android12系统APK签名文件生成的方法,干货满满本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。 工具准备 下载Keytool-ImportKeyPair工具 在源码:build/tarhttps://blog.eetop.cn/home.php?mod=space&uid=1827949&do=blog&id=6961481
4.协会动态鸿蒙数据终端管理系统密码应用基本要求团体标准正式近日,由深圳市商用密码行业协会组织,深圳市证通电子股份有限公司牵头,联合哈尔滨工业大学(深圳)、鼎铉商用密码测评技术(深圳)有限公司、鼎链数字科技(深圳)有限公司等多家相关单位共同制定的《鸿蒙数据终端管理系统密码应用基本要求》团体标准,https://mp.weixin.qq.com/s?__biz=MzIzNjI3OTkxOA==&mid=2651048757&idx=1&sn=3292ca16a0b6dfef1f7a55f65e70e2ff&chksm=f2945faadaa7f44943a31289162a8f01a9b3068957d91d5309ce514ae93685ef41f5d3a52ac1&scene=27
5.细说Androidapk四代签名:APKv1APKv2APKv3APKv4大部分开发者对apk签名还停留在APK v2,对APK v3和APK v4了解很少,而且网上大部分文章讲解的含糊不清,所以根据官网文档重新整理一份。 apk签名从APK v1到APK v2改动很大,是颠覆性的,而APK v3只是对APK v2的一次升级,APK v4则是一个补充。 本篇文章主要参考Android各版本改动: https://cloud.tencent.com/developer/article/1916927
6.Androidv1v2v3签名详解APK 签名方案 v2(Android 7.0 引入)改进了 v1 的签名校验速度慢与可修改性问题。它全文件签名,验证所有字节,确保 APK 的完整性与保护性。v3(Android 9.0 引入)在 v2 的基础上新增新证书块,记录所有签名信息,支持签名的替换与升级。总之,Android 签名机制通过消息摘要、数字签名与数字证书https://zhidao.baidu.com/question/1058751105584446179.html
7.Apk签名工具app下载Apk签名工具(ApkSigner)下载v6.1APK签名工具 apk-signer 是一款谷歌Play商店付费的APK应用签名工具,默认签名采用V1+V2签名,支持V3/V4签名、对齐优化选项、同时可以安装APK和Split-APKS安装包,导出备份apk-signer.jar签名文件。 使用方法 1、使用ES编辑器或者类似的工具将的apk打开; 2、访问res文件夹,在找到raw文件夹打开; https://www.itmop.com/downinfo/515058.html
8.它支持v1和v2android签名方案,具有嵌入式调试密钥库,签名后一种帮助用调试或提供的发布证书(或多个)对多个android应用程序包(apk)进行签名、压缩对齐和验证的工具。它支持v1、v2和v3的android签名方案。使用嵌入式调试密钥库轻松方便地进行调试签名。每次签名后自动验证签名和zipaign。 开源项目2019-10-12 上传大小:1676KB https://www.iteye.com/resource/weixin_38743968-11854246
9.20242025华为ICT大赛(实践赛)网络赛道理论考试题库大全CxIGMPV1/V2不能自己选举查询器,而IGMPv3可以 D、对于成员离开,IGMPv2/v3能够主动离开,而IGMPvl不能 答案:AD 解析:IGMP版本之间的差异如下A选项正确,IGMPvl不支持特定组查询,而IGMP v2支持。这可能对组成员的管理和通信流程有影响。D选项正确,与IGMPvl不同, IGMPv2和v3能够主动离开成员身份,这是为了适应网络环https://m.book118.com/html/2024/1206/5131143041012010.shtm
10.支持V3版本签名,同时修复大于2G的apk渠道包生成错误的Bug插件本身会自动检测Apk使用的签名类别,并选择合适的多渠道打包方式,对使用者来说完全透明。 `V3.0.4`版本已支持Android Gradle Plugin 4.2.0以上版本,欢迎使用! VasDolly是一种快速多渠道打包工具,同时支持基于V1签名和V2,V3签名进行多渠道打包。插件本身会自动检测Apk使用的签名类别,并选择合适的多渠道打包方式,https://github.com/helix-up/VasDolly/commit/95a1aaaeb9714bc56c510fe6894ac02bb2894c78
11.SSLv3和TLSv1协议弱CBC模式漏洞ESA现在配置为仅支持TLS v1或TLSv1/TLS v1.2,并使用RC4密码,同时禁止任何CBC过滤器。 以下是设置RC4:-SSLv2时使用的密码列表。请注意,列表中没有CBC模式密码。 ECDHE-RSA-RC4-SHA SSLv3 Kx=ECDH Au=RSA Enc=RC4(128) Mac=SHA1 ECDHE-ECDSA-RC4-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=RC4(128) Mac=SHA1https://www.cisco.com/c/zh_cn/support/docs/security/email-security-appliance/118518-technote-esa-00.html
12.Android签名v1v2v3v4,竟然都v4了?数字签名的过程是这样的: 1. 我发送消息前,利用 Hash 算法针对数据得出一个摘要。 2. 我使用老妈的公钥对摘要内容进行加密,连同对称加密的数据一起发送过去。 3. 老妈接收到消息后,先利用对称密钥对内容解密,再进行 Hash 计算得出摘要。 4. 老妈使用私钥将摘要内容解密,和再次计算得出的摘要作对比,一致就代表消https://zhuanlan.zhihu.com/p/541983756
13.报毒处理系统源码/带加固功能+免杀自动打包+随机更换包名签名源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源 1.本站提供的一切源码、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途! 2.本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时https://www.sk032.com/32312.html