如何盡可能的保護VBA代碼?


原始出處:www.cnblogs.com/saveutime/p/vbaprotect.html

QQ:908852353

Email:saveutime@foxmail.com

 

20180402

其實在找到軟件Unviewable+ VBA官網的時候,我並沒有對其加密后的文件進行強度驗證,但通過一段時間后的測試發現,該加密也只是把代碼放入到了其他*.bin文件里了,其實也就是換湯不換葯,還是非常容易提取出vba代碼的。

在使用Unviewable+ VBA加密的工作簿,使用最強的加密級別,發現加密后的代碼幾乎沒有混淆,而官方的*.xlam文件里面混淆較為嚴謹(其實也就是注釋多了很多,畫風如下所示,感覺就是為了規避某VBA代碼提取工具的限制)。

上圖代碼截取自RC-UnviewablePlus.xlam

 

可能很多學習VBA的小伙伴都在苦惱,自己辛辛苦苦寫的VBA代碼就被別人拿去使用,有些還拿去商業用途。其實任何一門編程語言,代碼的安全都是相對的,有編譯就會有反編譯。只能保證代碼的相對安全,可以讓大多數拿來主義的小白望而卻步。

針對Excel文檔的保護可以從單元格工作表工作簿等層面加以保護,那針對VBA代碼可以從哪些方面加以保護呢?主要有以下3個方法加以保護。

 

一 VBAProject工程保護

該功能是有Excel官方提供,用於對VBA代碼加以密碼保護,具體設置方法如下動態圖所示:

 此方法的優點就是,設置起來方便,但缺點也很明顯,此密碼很容易被破解免密查看。后期我會出視頻加以介紹,敬請期待~

 

二 VBA工程不可查看

接觸VBA比較久的小伙伴一般都會碰到在點擊VBA工程的時候,彈出對話框,提示VBA工程不可查看。如下圖所示:

 那究竟如何設置並達到工程不可查看呢?方法很容易,有兩種方法:

方法一(共用級鎖定):

        1、先對excel檔進行一般的vbaproject”工程密碼保護"。

        2、打開要保護的檔,選擇∶工具--->保護--->保護並共用活頁簿--->以追蹤修訂方式共用-->輸入密碼-->保存檔。

        完成后,當你打開“vbaproject”工程屬性時,就將會提示∶“工程不可看"

方法二(推薦,破壞型鎖定)

        1、使用7z或Winrar等解壓軟件,右鍵打開*.xlsm文件;

        2、打開xl文件夾,把文件vbaProject.bin拖放到桌面;

        3、使用UltraEdit軟件打開vbaProject.bin文件,並使用Ctrl+F打開查找對話框,輸入id=,定位到需要修改的位置(動態演示如下);

        4、只要將id后大括號中的位元組隨便修改一下即可。保存vbaProject.bin文件;

        5、把修改好的vbaProject.bin文件拖入打開的7z對話框xl文件夾中,再次打開Excel文件的宏編輯器界面,即可發現VBA工程已經不可查看了(動態演示如下)。

 當然通過上面破壞型鎖定也不是萬無一失的,因為也是可以通過修改加以破解的。如果覺得上面的方法比較繁瑣,完全可以通過別人寫好的VBA程序加以完成。

 眼尖的小伙伴可能也看到了,上面的工具也是自帶解鎖功能的,不要干壞事哦~

 

三 Unviewable+ VBA

目前研究下來,通過軟件Unviewable+ VBA加密的VBA效果最好此處為啥表紅,請看文章開頭的總結),軟件主界面截圖如下:

 國內使用該軟件加密的還不多,但國外很多使用該軟件對其的VBA代碼進行加密,加密操作方法如下:

雖然加密后的工作簿3.xlsm打開VBE宏編輯器后,也是提示VBA工程不可查看,但此時的工程不可查看是無法通過方法二中的超酷VBA解鎖器加以加鎖的,因為加密算法發生了很大的變化,不是簡簡單單修改id得到的。

 

四 我的總結

今天主要為大家介紹3個VBA加密的方法,其中前兩個方法被廣泛使用,但加密的效果也是很差的,但對於VBA小白來說足夠,對於VBA大神來說,也不在乎我們寫的代碼。

當然也可以使用第三種方法進行強加密,和第二種方法混淆,因為效果展現都是VBA工程不可查看。

大家如果對Excel VBA的保護有更好的方法,歡迎騷擾^_^

---恢復內容結束---


免責聲明!

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



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