某小视频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 讨论下。


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

相关文章
|
29天前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
1月前
|
缓存 监控 Android开发
京东 item_get_app 接口深度分析及 Python 实现
京东item_get_app接口可获取商品原始详情数据,包含更丰富的字段和细节,适用于电商分析、价格追踪等场景。需通过认证获取权限,支持字段筛选和区域化数据查询。
|
2月前
|
缓存 数据挖掘 API
淘宝 item_get_app 接口深度分析及 Python 实现
淘宝item_get_app接口是淘宝开放平台提供的移动端商品详情数据获取接口,相较PC端更贴近APP展示效果,支持获取APP专属价格、促销活动及详情页结构,适用于电商导购、比价工具、数据分析等场景。接口采用appkey+appsecret+session认证机制,需申请相应权限。本文提供Python调用示例及使用注意事项,帮助开发者高效对接移动端商品数据。
|
3月前
|
Java 数据安全/隐私保护 计算机视觉
手机虚拟视频替换摄像头,QQ微信虚拟视频插件,jar代码分享
这段代码演示了如何使用JavaCV捕获视频流、处理帧数据并输出到虚拟摄像头设备。它需要JavaCV和OpenCV库支持
|
4月前
|
并行计算 计算机视觉 流计算
照片生成眨眼张嘴的视频软件,制作眨眼睛张嘴图软件,手机制作人脸眨眼张嘴
这是一套基于Python的人脸动画生成系统,功能完整且模块化设计。项目利用dlib与face-alignment库实现精准人脸关键点检测,结合Delaunay三角剖分技术完成图像变形
|
4月前
|
Java
照片一键生成眨眼视频app,手机照片一键生成眨眼动图,通过JAR代码实现效果
这是一个自动生成眨眼GIF动画的Java程序,包含主程序处理、图像变形和GIF生成三个模块。输入照片路径,自动识别人脸眼睛位置,生成闭眼、半闭眼等多帧图像,并合成为眨眼动效GIF文件。
|
4月前
|
JavaScript
TypeOrmModule 从 app.module.ts 抽离到 database.module.ts 后出现错误的原因分析
本文分析了TypeORM实体元数据错误的成因,主要涉及实体注册方式、路径解析差异及模块结构变化导致的关系解析问题,并提供了具体解决方案和最佳实践建议。
131 56
|
1月前
|
缓存 供应链 开发者
1688 item_get_app 接口深度分析及 Python 实现
1688平台item_get_app接口专为移动端设计,提供商品原始详情数据,包含批发价格、起订量、供应商信息等B2B特有字段,适用于采购决策、供应链分析等场景。接口需通过appkey+access_token认证,并支持字段筛选,返回结构化数据,助力企业实现智能采购与供应商评估。
|
2月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
7月前
|
存储 安全 生物认证
苹果上架APP遇到提示缺少出口合规证明时应该如何处理-什么是APP加密文稿-优雅草卓伊凡
苹果上架APP遇到提示缺少出口合规证明时应该如何处理-什么是APP加密文稿-优雅草卓伊凡
501 62
苹果上架APP遇到提示缺少出口合规证明时应该如何处理-什么是APP加密文稿-优雅草卓伊凡

热门文章

最新文章