返回列表 上一主題 發帖

[發問] 保護vba源碼的方法探討

本帖最後由 准提部林 於 2016-5-31 12:13 編輯

2003版是有方法強制啟用巨集, 不啟用直接關閉檔案,
其它版本就不知道如何設置!!!

想以VBA賣錢, 大概朝向依不同需求而客製化, 很難以一套程式打到底,
何況OFFICE及作業系統版本改版快速, 要去維護程式的相容性, 很累人~~~

TOP

本帖最後由 ketrddem 於 2016-5-31 21:02 編輯

回復 11# 准提部林


  深有同感。版本的不同,有時相同的語法卻無法執行,很令人頭疼.....

另外請教部林大哥
有無方法能用VBA監測VBE視窗被開啟呢。

如果監測VBE視窗被開啟,其實就有辦法做後續動作了(比如: 本文件即將自我刪除)
EXCEL VBA新手,請前輩多多指教

TOP

請教,Lockxls把Excel變成exe,執行效率會變佳嗎?

TOP

本帖最後由 ketrddem 於 2016-6-8 23:09 編輯

回復 13# rocky.gary


不知道耶。

但小弟想到一個方法,不知可不可行。想利用時間來試試看。

有聽過按鍵精靈這套軟體嗎?

就是兩者互控

excel每三秒抓按鍵精靈窗口,只要按鍵精靈窗口消失,excel 就自動關閉。(意思就是要強制由按鍵精靈來監控EXCEL)。

按鍵精靈每三秒抓VBE窗口。只要找到窗口,自動關閉EXCEL。(這狀況,就算開啟EXCEL,設定在設計階段後再打開VBE,關閉EXCEL的動作是由按鍵精靈執行的)。

開啟EXCEL時,自動啟動按鍵精靈。

這只是概念,真的寫出來,相信會損耗不少系統資源。

不知版上高手們,能不能用類似這種想法,直接寫一個批次檔就能取代按鍵精靈或VBE窗口呢。用批次檔來監控。
EXCEL VBA新手,請前輩多多指教

TOP

本帖最後由 HUNGCHILIN 於 2016-6-26 13:48 編輯

綜觀國內外,這問題,只有阿吉作出創新,解答,有方法
並首發在麻辣

目前保護VBA程式的方法不多
1,製成exe/dll,vbs,但會被判為病毒,且無法存檔,不佳

2,VBA專案不可檢視
2002年打哈欠的方法

3,共用活頁簿,VBA專案不可檢視
EXCEL原始功能

4,95/5.0 VBA專案不可檢視
這是國外傳入的方法

5,VBA模組隱藏

VBA專案鎖定的破解方式在網路上與OFFICE相關社群論壇中極為普遍,以微軟Excel VBA專案程式碼保護與保密為研究對象,發展出新的VBA程式碼保護與保密方法,用以防止重要文件VBA程式碼被非法竊取及窺視運用模組隱藏原理製作成模組隱藏Excel增益集工具。後續持續測試微軟Excel二進位檔案格式,作「部分模組隱藏」與「全部模組隱藏」是否適用在Excel各版本,發現當全部模組隱藏時Excel 2003版可通過巨集安全性,此特殊效果將造成Excel 2003安全性上的顧慮,惡意的程式設計人員可以利用此程式漏洞,對電腦進行修改與破壞。在提升Microsoft Excel VBA專案保護複雜性試驗過程中,證實VBA專案鎖定在加密與解密後均可順利搭配模組隱藏且巨集可正常使用,測試結果確認可以使用VBA專案內外兩層防護,來提升Microsoft Excel VBA專案程式碼保護保密複雜性。研究中發現全部模組隱藏時將造成Excel 2003有安全性上的顧慮,建議Excel使用者應盡早汰換Excel 2003,並使用Excel 2010以上版本,才可以更安全的防護惡意檔案與程式的攻擊。


目前以2,5項方法最好用
Hung-Chi Lin/林宏吉
HUNGCHILIN/林宏吉的OFFICE專欄

TOP

回復 15# HUNGCHILIN


    阿吉大大您好,您一值都是這方面的專家
想請教一下,您上述提到的2、5的方式,是否有相關的程式碼可以分享呢?
以及一旦隱藏之後又要如何才能維護VBA的CODE呢?
PKKO

TOP

回復  ketrddem
有興趣可以參考大師的研究
stillfish00 發表於 2016-5-30 10:51


沒有什麼用的,他目前拿出來的方案和測試檔案早就被破解了。

順便在這裡提醒一下樓主:不用再這方便研究了,都沒什麼很大的意義。我可以這麼說:我可以在沒有安裝Office的系統中直接把Excel檔案中的VBA專案代碼全部完整的提取出來並寫入新的檔案中,包括被設置了VBA專案密碼的或是使用過隱藏VBA模塊的代碼。不過使用專用程式把Excel文檔加密附加在EXE文檔中稍稍麻煩一點,不過在安裝有本人專寫的Addin工具的Office中還是可以破解掉大部分保護。
世界那麼大,可我想去哪?

TOP

目前以知最安全的方法是將VBA代碼轉換成VB6或是C++代碼編譯成本地代碼。便要注意的現行Micoroft推薦的是VSTO,但是最好不要使用VS編譯,因為VS本身也是能被還原代碼的……
世界那麼大,可我想去哪?

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題