某小视频App v10.x 手机号加密算法分析

简介: 某小视频App v10.x 手机号加密算法分析

一、目标


今天的目标是 手机号加密,app变化太快,以前都是明文的。777.png

TIP: 某小视频App  v10.2.30.24518


二、步骤

字符串匹配


也许是手机号都是1xx开头,也许是这个加密字符串有个特征头。 反正经过我们观察,发

现它大概率是 3sCt 开头。


而这种加密算法大概率是在Native层去做的。所以我们首选是去 hook_libart 里面的 GetStringUTFCharsNewStringUTF


结果木有结果。


Base64


这个 3sCt 开头的字符串,很像Base64的结果。我们尝试用Base64去解一下,发现能解开。


那就毫不犹豫的尝试 Hook android.util.Base64 。


依然木有结果,这就比较神奇了,唯一的解释是 App木有用标准的Base64库函数,而是自己写了一个Base64算法。毕竟Base64的算法满天飞,有手就行。


搜字符串 "mobile"


现在死马当活马医吧。只能尝试去搜搜字符串了。888.png


结果并不多,比较有重大嫌疑的就是这两处了。

我们点进去分析 m434739f 函数

999.png


这个App已经混淆到令人发指了,居然还能出现 atlasEncrypt 这么明显的函数,一定得好好Hook它。


m60341e 也值得我们注意,这个类很像是Base64算法,这也解释了为啥Hook android.util.Base64 木有结果


开始写代码吧

var IKSecurityExCls = Java.use("com.xxxixxxu.android.security.KSecurity");
IKSecurityExCls.atlasEncrypt.implementation = function(a){
    var StrCls = Java.use('java.lang.String');
    var inStr = StrCls.$new(a);
    var result = this.atlasEncrypt(a);
    console.log(inStr + " >>> atlasEncrypt(Hex) " + bytesToHex(result));
    console.log(inStr + " >>> atlasEncrypt(Base64) " + bytesToBase64(result));
    return result;
}


跑一下

112.png



没错,就是这个 3sCt


三、总结


自定义的Base64算法有个特征,大概率会有个

private static final char[] f323023h = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_'};


常量数组的定义,所以下次遇到类似的情况可以考虑搜一下这个常量字符串。当然前提是标准的Base64算法,之前我们遇到的魔改的Base64算法,就是打乱的这个常量数组的顺序。


App的分析得一直跟踪,才不会落伍,我们之前分析过这个App,也找到过 #KSecurity# 这个类。所以下次再遇到它升级后的版本加密了其他东西,可以考虑先把这个 #KSecurity# 类的函数Hook一遍再说。

113.png


我们登上并非我们所选择的舞台,演绎并非我们选择的剧本


TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号: 奋飞安全,最新技术干货实时推送

相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
60 4
|
1月前
|
数据采集 数据挖掘 UED
电商平台手机销售数据采集与分析
随着科技的进步,尤其是手机的普及,国民生活变得更加便捷。现今,手机销售已从传统的实体店模式转向电商平台,这一转变加剧了市场竞争,给手机厂商带来了新的挑战。为了应对挑战,电商平台越来越重视手机销售情况与用户体验,利用数据分析成为了解市场趋势的关键手段。本章节聚焦于某电商平台的手机销售及售后数据收集,通过深入分析商品销售状况与用户反馈,旨在探索有效的营销策略,助力电商平台与手机行业的共同进步。
71 1
|
26天前
|
并行计算 算法 IDE
【灵码助力Cuda算法分析】分析共享内存的矩阵乘法优化
本文介绍了如何利用通义灵码在Visual Studio 2022中对基于CUDA的共享内存矩阵乘法优化代码进行深入分析。文章从整体程序结构入手,逐步深入到线程调度、矩阵分块、循环展开等关键细节,最后通过带入具体值的方式进一步解析复杂循环逻辑,展示了通义灵码在辅助理解和优化CUDA编程中的强大功能。
|
2月前
|
开发工具
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
阿里云点播服务web播放器sdk,短剧视频类App实现参考。仿抖音 仿陌陌 短视频 无限滑动播放 视频流。无uniapp video 原生组件的层级、遮挡、覆盖问题,适合与不同功能视图组合使用,实现丰富的应用功能。
uniapp, 短剧视频类App实现参考,支持滑动播放,仿抖音 仿陌陌 短视频 无限滑动播放 视频流
|
1月前
|
SQL 存储 数据可视化
手机短信SQL分析技巧与方法
在手机短信应用中,SQL分析扮演着至关重要的角色
|
1月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
596 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
1月前
|
算法
PID算法原理分析
【10月更文挑战第12天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
2月前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
59 4
|
1月前
|
算法
PID算法原理分析及优化
【10月更文挑战第6天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。

热门文章

最新文章

下一篇
无影云桌面