1. 程式人生 > >asar 如何解密加密?electron 的 asar 的具體用法

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

兩條命令 png 文章 多參數 而已 最終 known data- res

來源: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 的具體用法(圖12-2)

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

Bash
sudo npm install asar -g

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-3)

Bash
asar --help

技術分享圖片

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

目錄結構

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

技術分享圖片

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

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-6)

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

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-7)

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-8)

解壓app.asar

兩條命令任選其一

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

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

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-9)

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-10)

打包app.asar

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

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

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-11)

技術分享圖片asar 如何解密加密?electron 的 asar 的具體用法(圖12-12)

結論

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



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