asar 如何解密加密?electron 的 asar 的具體用法


來源:https://newsn.net/say/electron-asar.html

 

electron中,asar是個特殊的代碼格式。asar包里面包含了程序猿編寫的代碼邏輯。默認情況下,這些代碼邏輯,是放置在resource/app目錄下面的,明文可見,這樣的話,也就有了代碼加密(asar打包)的需求

 

asar 如何解密加密?electron 的 asar 的具體用法(圖12-1)

 

在本篇文章中,蘇南大叔將要講述的內容就是:asar工具的使用。本文的模特是:在mac下面,使用electron-packager簡單打包的quick-start項目dmg文件。

 

基本說明

electron的構建體系中,打包這個概念特別的容易混淆。這里有很多種結果都是可以說是打包,但是打包的程度是完全不同的,這也就決定了不同的打包場景。本文中,asar這個打包,是個最最最最最小的打包概念,而且這個包,僅僅是對resource/app目錄的封裝,讓人們不是那么容易看到你寫的代碼結果而已。

 

asar 如何解密加密?electron 的 asar 的具體用法 - asar的形態

 

asar 如何解密加密?electron 的 asar 的具體用法(圖12-2)

 

asar有很多參數,大家可以使用 asar --help來查看其基本參數。當然,如果你使用 asar --help沒有反應的話,那么可能您的系統里面還沒有全局安裝asar,這個時候,你需要下述命令安裝一下asar依賴包。

Bash
sudo npm install asar -g

 

asar 如何解密加密?electron 的 asar 的具體用法 - 010asar 如何解密加密?electron 的 asar 的具體用法(圖12-3)

 

Bash
asar --help

 

asar 如何解密加密?electron 的 asar 的具體用法 - 000

 

asar 如何解密加密?electron 的 asar 的具體用法(圖12-4)

 

 

目錄結構

提起asar,就應該提起resource目錄。這個目錄是asar的主戰場,里面會有個electron.asar的文件,這個是系統自帶的。而如果您的打包命令里面沒有指定asar參數的話,你的默認代碼目錄就會是個app文件夾,而不是app.asar

 

asar 如何解密加密?electron 的 asar 的具體用法 - 001

 

asar 如何解密加密?electron 的 asar 的具體用法(圖12-5)

 

 

asar 如何解密加密?electron 的 asar 的具體用法 - 002asar 如何解密加密?electron 的 asar 的具體用法(圖12-6)

 

當然,你可以使用asar命令,把app目錄打包成app.asar文件,然后刪除app目錄。但是這樣的話,然並卵,你的最終的文件可能會因此不能正常運行。正確的做法是:你使用electron-packager打包的時候,就必須指定好參數--asar,這樣就可以生成個app.asar文件了。

 

asar 如何解密加密?electron 的 asar 的具體用法 - 004asar 如何解密加密?electron 的 asar 的具體用法(圖12-7)

 

 

asar 如何解密加密?electron 的 asar 的具體用法 - 005asar 如何解密加密?electron 的 asar 的具體用法(圖12-8)

 

 

解壓app.asar

兩條命令任選其一

Bash
asar e app.asar <解壓后的目錄> asar extract app.asar <解壓后的目錄>
 

我們可以修改 <解壓后的目錄> 里面的文件,然后,我們再進行打包即可。

 

asar 如何解密加密?electron 的 asar 的具體用法 - 006asar 如何解密加密?electron 的 asar 的具體用法(圖12-9)

 

 

asar 如何解密加密?electron 的 asar 的具體用法 - 007asar 如何解密加密?electron 的 asar 的具體用法(圖12-10)

 

 

打包app.asar

兩條命令任選其一,打包asar之后,再看效果。

Bash
asar p <被打包的目錄> app.asar asar pack <被打包的目錄> app.asar
 

 

asar 如何解密加密?electron 的 asar 的具體用法 - 008asar 如何解密加密?electron 的 asar 的具體用法(圖12-11)

 

 

asar 如何解密加密?electron 的 asar 的具體用法 - 009asar 如何解密加密?electron 的 asar 的具體用法(圖12-12)

 

 

結論

asar打包僅僅是個非常初級的加密方式,解密也非常容易。所以,還是把你的代碼,使用webpack類似的前端構建工具,進行代碼加密混淆,才是正途。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM