对 某东读书 app加密格式的解析

查看 154|回复 11
作者:Light紫星   
出于解密技术学习的目的,对某款阅读软件进行了学术上的研究操作。
本文仅提供思路,不提供任何成品软件等。
首先,定位到本软件下载的图书目录,在Android/data/包名/files/books 下面有几个文件夹,找一下就可以定位到你下载的那本书了。
然后,反编译apk,拖入jadx,搜索openbook,找到相关代码,最后经过定位,真正的openbook 在 libjdxxxxreadingengine.so 里面。对应的函数是Java_com_xx_read_engine_jni_DocView_OpenBookInternal
通过对此函数分析,发现最后是调用的xxdecompress::decrypt进行解密文件,解密之前先实例化了xxdecompress对象,传入key,这里的key可以通过hook获得,每本书的key都不一样,好像换了设备也会变,这里我没有尝试更换设备。
如果发现此so文件不好分析,可以下载一个旧版的该app,旧版的so是xxxdrm.so,然后函数名称是一样的。
这里分享一个github链接,该项目有部分开源的代码,是关于这个app的 ,这里面的xxxdrm.so可以直接拿来调用。
https://github.com/a-running-snail/read-android
最后使用androidemu,写一个python脚本调用so文件进行最终的解密操作
部分解密代码如下:


image.png (44.71 KB, 下载次数: 0)
下载附件
2021-7-27 09:08 上传

最终的解密效果如图:


image.png (700.74 KB, 下载次数: 0)
下载附件
2021-7-27 09:07 上传

至此,又解开了一个阅读软件的加密,好像这些软件都是一个套路,aes加密,然后找个地方放key,用的时候再解密回来。

下载次数, 函数

limzuo   

希望能出个详细一点儿的教程
sdieedu   


randwong 发表于 2021-7-29 09:35
破解之后一看竟然是英文书籍,然后打开翻译软件慢慢看!果然还是要提高英文阅读能力,赞赞:)

能否给个详细介绍过程,或者成品?
CapitalIze   

江湖上有这么一句话 -- “有问题,找星佬!” yyds!!!
biostu   

学习了,收藏。
cshk8   

真不错,学习了
wuyue321   

这个方法太实用了,技术就是生产力!
hikaruyin   

雖然不知是什麼讀書app
dafei2599   

很不错,非常棒,学习了
smallfiveya   

yyds 膜拜
您需要登录后才可以回帖 登录 | 立即注册

返回顶部