对 某东读书 app加密格式的解析
本帖最后由 Light紫星 于 2021-7-27 09:19 编辑出于解密技术学习的目的,对某款阅读软件进行了学术上的研究操作。
本文仅提供思路,不提供任何成品软件等。
首先,定位到本软件下载的图书目录,在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文件进行最终的解密操作
部分解密代码如下:
最终的解密效果如图:
至此,又解开了一个阅读软件的加密,好像这些软件都是一个套路,aes加密,然后找个地方放key,用的时候再解密回来。
希望能出个详细一点儿的教程 randwong 发表于 2021-7-29 09:35
破解之后一看竟然是英文书籍,然后打开翻译软件慢慢看!果然还是要提高英文阅读能力,赞赞:)
能否给个详细介绍过程,或者成品? 江湖上有这么一句话 -- “有问题,找星佬!” yyds!!! 学习了,收藏。 真不错,学习了 这个方法太实用了,技术就是生产力! 雖然不知是什麼讀書app 很不错,非常棒,学习了 yyds 膜拜 膜拜大佬,学习学习 不错,不错,学习了