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