开源通讯软件viewonce图片的调用逻辑分析"

admin 2026-10-22 10:36:37 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image2. .enc文件调用链

为了找到是谁打开了这个.enc,在native层我hook了:

open
open64
openat
openat64
read
close

在java层hook了:

org.telegram.messenger.secretmedia.EncryptedFileInputStream

中的

read(byte[], int, int)
skip(long)
decryptBytesWithKeyFile(byte[], int, int, java.io.File)
decryptBytesWithKeyFile(byte[], int, int, org.telegram.messenger.SecureDocumentKey)

还有

org.telegram.messenger.secretmedia.EncryptedFileDataSource

中的

open(com.google.android.exoplayer2.upstream.DataSpec)
read(byte[], int, int)

最终确定了调用链:

/data/user/0/org.telegram.messenger.web/cache/-6070991742858629543_121.jpg.enc.key
  -> 读取 32 bytes key
  -> 读取 16 bytes iv

/storage/emulated/0/Android/data/org.telegram.messenger.web/cache/-6070991742858629543_121.jpg.enc
  -> EncryptedFileInputStream.read(...)
  -> Utilities.aesCtrDecryptionByteArray(...)

总结就是:
.enc图片的实际路径是:cache/-6070991742858629543\_121.jpg.enc
对应的key是:

/data/user/0/org.telegram.messenger.web/cache/-6070991742858629543_121.jpg.enc.key

其中.key文件的结构是前32字节的aes key, 后16字节的iv。

调用的解密函数是:

org.telegram.messenger.Utilities.aesCtrDecryptionByteArray([B, [B, [B, int, long, int)

caller是:

org.telegram.messenger.secretmedia.EncryptedFileInputStream.read([B, int, int)

使用的模式是mode=0, 对应的是ctr模式。

完整的链路如下:

ImageLoader / CacheOutTask
  -> EncryptedFileInputStream
  -> 读取 .jpg.enc.key: key(32) + iv(16)
  -> read .jpg.enc chunk
  -> Utilities.aesCtrDecryptionByteArray(buffer, key, iv, offset, length, fileOffset)
  -> 得到解密后的图片字节流

三、图片重建

第二点里已经讲到了加密文件的存储路径以及对应的解密函数了,这里简单讲一下解密之后怎么去重建一个图片。

1. Hook aes解密的函数

hook这个可以打印一些信息,但是hook这个最主要的方法是,确定app真的调用了这个函数解密。

2. hook EncryptedFileInputStream.read(byte[], int, int)

这个是核心,同时这个也是解密函数的caller。hook这个可以直接拿到明文。

3. 重建图片

接下来就比较简单,把拿到的明文拼接一下,判断一下数据的开头和结尾,命中了之后直接保存就完事,扩展名是.jpg,然后直接保存完事。

4. 关于ai

以上的分析深度的结合了ai,现在的ai能够干大量人不好干的工作,比如看汇编, smali代码, frida脚本跑出来的大量的未经处理的日志等等这种对人来说晦涩难懂的东西。ai看这些东西看的又快又准,还能帮着写hook脚本,又快又好。但是整体过程中还是有很多地方需要人去把控,纯让ai做容易跑偏。

还有就是一个ai的正义感问题,涉及到隐私功能的分析ai直接不干了,还得让人去拆解成一个个的小目标然后一点点的摸索。

总的来说ai在数据分析方面优势很明显,可以信任但是不能100%信任,每个流程还需要自己把控一下。

如果还需要学习技术,一定要在ai做完了之后多复盘,把技术细节和有疑问的地方搞清楚。

看雪ID:mb\_hfjfruhl

https://bbs.kanxue.com/user-home-964485.htm

\*本文为看雪论坛优秀文章,由 mb\_hfjfruhl 原创,转载请注明来自看雪社区

第十届安全开发者峰会【议题征集】-欢迎投稿

# 往期推荐

安卓逆向基础知识之frida Hook

2025 强网杯和强网拟态部分题解

在逆向分析方面-unidbg真的适合 MCP 吗?

AI静态分析,内核模块隐藏 Frida 特征,绕过linker私有结构遍历崩溃链

某安全so库深度解析

球分享

球点赞

球在看

戳“阅读原文”一起来充电吧!


开源通讯软件viewonce图片的调用逻辑分析" 网络安全文章

开源通讯软件viewonce图片的调用逻辑分析"

本文详细分析了开源通讯软件中viewonce图片的调用逻辑,通过Fridahook技术追踪MTProto协议传输、消息解密及图片处理全流程。关键发现包括:viewonce图片以加密形式存储在cache目录,使用AES-CTR模式解密,密钥文件结构为32字节key+16字节iv。可操作建议包括hookEncryptedFileInputStream.read方法获取明文数据,以及通过拼接解密后的字节流重建图片文件。
TrapDoor供应链攻击通过npm、PyPI和CratesIO传播凭据窃取恶意软件" 网络安全文章

TrapDoor供应链攻击通过npm、PyPI和CratesIO传播凭据窃取恶意软件"

Socket公司发现名为TrapDoor的跨生态系统供应链攻击,通过npm、PyPI和Crates.io分发34个恶意包的384个版本,针对加密和AI开发者窃取凭据、钱包密钥等数据。攻击利用postinstall钩子、build.rs脚本和导入时执行机制,并首次使用.cursorrules文件欺骗AI工具执行恶意指令。建议开发者检查依赖包来源并使用安全扫描工具。
7-Zip曝高危代码执行漏洞,打开伪装压缩包直接被控" 网络安全文章

7-Zip曝高危代码执行漏洞,打开伪装压缩包直接被控"

知名压缩工具7-Zip被曝高危代码执行漏洞CVE-2026-48095,该漏洞源于处理NTFS磁盘镜像时存在内存破坏缺陷,攻击者可构造恶意文件利用整数溢出和越界写入实现虚表劫持,从而控制设备。漏洞影响26.00及更早版本,且文件可伪装成任意压缩格式,用户打开即触发。建议立即升级软件并谨慎打开来源不明文件。
【安全圈】微软CopilotCowork智能体AI曝安全风险,机密文件恐外泄" 网络安全文章

【安全圈】微软CopilotCowork智能体AI曝安全风险,机密文件恐外泄"

PromptArmor报告指出微软Microsoft365CopilotCowork智能体存在间接提示词注入安全风险,攻击者可通过恶意技能文件操纵AI获取SharePoint与OneDrive文件预认证下载链接,并经由Teams消息外泄。测试显示该攻击在自动和指定模型模式下均成功,且定时执行功能会放大风险。建议加强技能文件审核与权限管控。
评论:0   参与:  0