html5 文件解密,骇极干货 | 解密通过Monaca插件加密的文件
原標(biāo)題:駭極干貨 | 解密通過(guò)Monaca插件加密的文件
我偶然發(fā)現(xiàn)了一個(gè)使用Monaca開發(fā)框架和加密文件開發(fā)的android應(yīng)用。什么是monaca?來(lái)自官方網(wǎng)站monaca.io:
Monaca使用PhoneGap / Cordova進(jìn)行HTML5混合移動(dòng)應(yīng)用程序開發(fā),這樣是的移動(dòng)應(yīng)用開發(fā)變得簡(jiǎn)單而輕松。Monaca是最開放的混合應(yīng)用程序開發(fā)平臺(tái),可以立即插入您現(xiàn)有的工作流程和開發(fā)環(huán)境中。從Cloud IDE,CLI到調(diào)試器和遠(yuǎn)程在線構(gòu)建,混合應(yīng)用程序開發(fā)所需的一切都在這里。
因此,基本上,它只是在Cordova之上構(gòu)建的另一個(gè)框架。
Monaca框架
您如何確定該應(yīng)用程序正在使用Monaca框架?通常,在應(yīng)用程序的 MainActivity中會(huì)出現(xiàn)MonacaExtension.init的痕跡。
對(duì)于基于Cordova的應(yīng)用程序,HTML代碼應(yīng)位于 / assets / www /文件夾中。打開index.html時(shí),我發(fā)現(xiàn)代碼已加密。
加密/解密例程
然后,我研究了該框架,發(fā)現(xiàn)這是他們提供的付費(fèi)計(jì)劃的一部分,該計(jì)劃使用AES加密HTML代碼。
參考:
https://docs.monaca.io/en/reference/power_plugins/html5_resource_encryption/
io.monaca.plugins.encrypt類中存在的應(yīng)用程序中的加密/解密例程的實(shí)現(xiàn):
如您所見,這是Monaca的Encrypt插件的入口點(diǎn),它實(shí)際上檢查 autoDecrypt是否為boolean true,然后代碼將自動(dòng)設(shè)置 Hash。這兩個(gè)變量都來(lái)自 插件中的Config類。
基本上, autoDecrypt設(shè)置為 True。
如果文件被加密,這部分代碼將被調(diào)用。查看屏幕快照中的第77行(不確定是否實(shí)際行),插件檢查當(dāng)前文件是否實(shí)際加密。加密的monaca文件具有8個(gè)字節(jié)的標(biāo)頭。標(biāo)頭為{ 24、8、77、69、1、13、10、0 }(字節(jié)),魔術(shù)標(biāo)頭來(lái)自 MonacaFile類內(nèi)的isEncrypted方法 。
無(wú)論如何,回到上一個(gè)屏幕截圖,代碼流程為:如果文件未加密,請(qǐng)調(diào)用mFileManager.getRawBytes
否則嘗試調(diào)用:mFileManage.getBytes
(路徑均為flagAsset)
這里的不同之處是 getRawBytes與 getBytes。
getRawBytes = 讀取所有文件內(nèi)容
getBytes =讀取所有文件內(nèi)容向前8個(gè)字節(jié)(因?yàn)榧用艿奈募哂?個(gè)字節(jié)的魔術(shù)頭),并應(yīng)用解密。
以下是解密例程代碼:
解密加密文件
基本上, Config.Hash是key,前16個(gè)字節(jié)的 Config.Hash是IV。現(xiàn)在我們有了Key和IV,我們應(yīng)該能夠解密文件了。我寫了一個(gè)Python腳本來(lái)解密加密文件。
本文是翻譯文章,原文鏈接:
https://blog.rz.my/2020/12/decrypting-monaca-encrypt-plugin.html返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的html5 文件解密,骇极干货 | 解密通过Monaca插件加密的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dlib的安装
- 下一篇: 2019年江苏大学885代码题(含答案)