TWI494787B - Vba模組隱藏方法 - Google Patents

Vba模組隱藏方法 Download PDF

Info

Publication number
TWI494787B
TWI494787B TW101119028A TW101119028A TWI494787B TW I494787 B TWI494787 B TW I494787B TW 101119028 A TW101119028 A TW 101119028A TW 101119028 A TW101119028 A TW 101119028A TW I494787 B TWI494787 B TW I494787B
Authority
TW
Taiwan
Prior art keywords
module
vba
excel
word
hidden
Prior art date
Application number
TW101119028A
Other languages
English (en)
Other versions
TW201349000A (zh
Inventor
Hung Chi Lin
Original Assignee
Hung Chi Lin
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hung Chi Lin filed Critical Hung Chi Lin
Priority to TW101119028A priority Critical patent/TWI494787B/zh
Publication of TW201349000A publication Critical patent/TW201349000A/zh
Application granted granted Critical
Publication of TWI494787B publication Critical patent/TWI494787B/zh

Links

Landscapes

  • Stored Programmes (AREA)

Description

VBA模組隱藏方法
本發明係屬模組程式碼保護保密方法,尤其是有關於一種可以讓使用者快速且安全的隱藏及保密EXCEL/WORD 97版以後含有VBA模組的各種檔案格式內的模組之VBA模組隱藏方法,只要檔案內含VBA模組皆可套用此法,經過防護後VBA專案模組可增加防護,程式設計人員使用此方法可以保護保密其編寫的程式碼,減少有心人取得文件後,對模組內含之VBA程式碼進行窺探、檢視、竊取或竄改資料內容的機會。後續範例畫面全數以EXCEL 2010版與MadEdit v0.2.9.1版作說明呈現。
OFFICE辦公室應用程式是大眾最熟悉也最廣為使用的軟體之一,是工作與生活中不可或缺的工具,透過VBA巨集程式之設計,可以讓使用者透過簡易的指令來執行重覆的動作,提高工作效率和工作的正確性,甚至可以擷取網際網路之資源,目前各大OFFICE論壇所述及之VBA保護方法僅止於VBA專案鎖定保護,如表1 VBA專案鎖定保護含蓋範圍為整個專案包括Excel物件ThisWorkbook、Excel物件Sheet、表單 UserForm、模組Module、物件類別模組Class,但VBA專案鎖定保護的破解方式在網路上與OFFICE相關社群論壇中極為普遍,且破解方法多已公開,可以輕易破解進行窺探、檢視、竊取或竄改程式內容,如何發展出新的有別於以往的VBA程式碼保護方法,用以保護程式設計人員辛苦開發程式的成果,是此領域極欲解決之問題。
有鑑於VBA專案鎖定保護的破解方式在網路上與OFFICE相關社群論壇中極為普遍,VBA專案鎖定的方式已鎖不住有心人與VBA進階使用者。發明人經長時間不斷的研究開發,終於研發出此種可以讓程式設計人員快速且安全的隱藏VBA專案內個別模組的方法,達到一方面可以讓使用者正常使用檔案與程式又可防止重要文件VBA程式碼不被有心人非法竊取及窺視的目的,EXCEL/WORD 97版以後各種檔案格式,只要內含VBA模組皆可套用,重要的是經過隱藏模組內之程式碼仍可以正常運行使用。
本發明VBA模組隱藏方法,其係包括內容有:1.VBA模組隱藏與解除、2.VBA模組非常隱藏與解除、3.VBA模組轉換成ThisWorkbook/ThisDocument與解除、4.前述三項目隱藏與解除進化應用到EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式方法。
本發明VBA模組隱藏方法之主要目的在於令經過防護後VBA 專案模組增加防護,使得程式設計人員使用此方法可以保護保密其編寫的程式碼,減少有心人取得文件後,對內含之VBA程式碼進行窺探、檢視、竊取或竄改資料內容的機會。
為了能讓審查員能更易於了解本發明之特點,請參閱本發明實施方式之說明。
10‧‧‧開啟含有VBA檔案格式檔案
11‧‧‧找到Module=Module1位置
12‧‧‧更改Module1為MduleA
13‧‧‧儲存資
14‧‧‧結束
15‧‧‧開啟含有VBA模組的檔
16‧‧‧進VBA編輯器刪除ModuleA
17‧‧‧儲存資料
18‧‧‧關閉含有VBA模組的檔
19‧‧‧結束
20‧‧‧開啟含有VBA模組隱藏檔案格式檔案
21‧‧‧找到Module=存在位置
220‧‧‧更改ModuleA為原名稱Module1
221‧‧‧儲存資料
222‧‧‧關閉跨平台的編輯器或其他程式語言
223‧‧‧結束
230‧‧‧開啟含有VBA模組的Excel檔
231‧‧‧進VBA編輯器增加Module2
232‧‧‧儲存資料
233‧‧‧關閉含有VBA模組的Excel檔
234‧‧‧重新載入含有VBA模組的Excel檔
235‧‧‧更改Module2為原名稱Module1
236‧‧‧儲存資料
237‧‧‧關閉跨平台的編輯器或其他程式
238‧‧‧結束
30‧‧‧開啟含有VBA檔案格式檔案
31‧‧‧找到Module=Module1位置
32‧‧‧更改Module1為ModuleA
33‧‧‧儲存資料
34‧‧‧結束
350‧‧‧開啟含有VBA模組的檔
351‧‧‧進VBA編輯器刪除ModuleA
352‧‧‧儲存資料
353‧‧‧關閉含有VBA模組的檔
354‧‧‧結束
40‧‧‧開啟含有VBA檔案格式檔案
41‧‧‧找到Module位置
42‧‧‧更改Module=Hodule=(自由更改)
43‧‧‧儲存資料
44‧‧‧開啟含有VBA模組的檔
45‧‧‧按是(Y)繼續載入專案
46‧‧‧儲存資料
47‧‧‧關閉含有VBA模組的檔案
50‧‧‧開啟含有VBA模組隱藏檔案格式檔案
51‧‧‧找到Module=存在位置
530‧‧‧變更ModuleA為原名稱Module1
531‧‧‧儲存資料
532‧‧‧關閉跨平台的編輯器或其他程式語言
533‧‧‧結束533
540‧‧‧開啟含有VBA模組的Excel檔
541‧‧‧進VBA編輯器增加Module2
542‧‧‧儲存資料
543‧‧‧關閉含有VBA模組的Excel檔
544‧‧‧重新載入含有VBA模組的Excel檔
545‧‧‧更改Module2為原名稱Module1(需與名稱字元長度相同)
546‧‧‧儲存資料
547‧‧‧關閉跨平台的編輯器或其他程式語言
548‧‧‧結束
60‧‧‧開啟含有VBA模組隱藏檔案格式檔案
61‧‧‧找到Module=Module1位置
62‧‧‧更改Module1為Docment=
63‧‧‧儲存資料
64‧‧‧結束
70‧‧‧開啟含有VBA並換成ThisWorkbook檔案格式檔案
71‧‧‧找到Docment=Module1位置
72‧‧‧更改Docment=為Module1=
73‧‧‧儲存資料
74‧‧‧結束
圖一 VBA模組隱藏製作方法與流程圖
圖二 解除VBA模組隱藏製作方法與流程圖
圖三 簡易VBA模組非常隱藏方法與流程圖
圖四 VBA模組非常隱藏方法與流程圖
圖五 解除VBA模組隱藏製作方法與流程圖
圖六 VBA模組轉換成ThisWorkbook/ThisDocument流程圖
圖七 解除VBA模組隱藏製作方法與流程圖
本發明VBA模組隱藏方法,包含有四種方法:1.VBA模組隱藏與解除、2.VBA模組非常隱藏與解除、3.VBA模組轉換成ThisWorkbook/ThisDocument與解除、4.前述三項目隱藏與解除進化應用到OFFICE 2007(含)以後版本Office Open XML Formats巨集檔案格式方法。以下係針對此四種方法作說明:
1. VBA模組隱藏與解除
VBA模組隱藏是種藉由跨平台的編輯器或其他程式語言變更EXCEL/WORD二進位檔案格式內容,進而隱藏 EXCEL/WORD VBA專案中的個別模組,讓人看不到VBA專案中某幾個經過處理模組之中的程式碼。此方法可以作VBA個別模組隱藏,亦可以解除VBA個別模組隱藏,其作法如後續介紹。
1.1 VBA模組隱藏
VBA模組隱藏,係指開啟與進入VBA專案後不可見亦不可編輯但又確實隱藏在檔案內的個別模組,經過隱藏模組內之程式碼仍能正常運作,製作VBA模組隱藏時會產生[虛假模組],保留虛假模組對於解除模組隱藏時較為方便,只要作反向操作即可恢復為正常模組。
1.1.1 VBA模組隱藏-方法流程圖
關於VBA模組隱藏製作方法與流程如圖1所示。
(A)開啟含有VBA檔案格式檔案10,(B)找到Module=Module1位置11,(C)更改Module1為MduleA(需與原名稱相同字元長度)12,(D)儲存資料13,(E)要保留虛假Module-結束14,(F)不保留虛假Module-開啟含有VBA模組的檔15,進VBA編輯器刪除ModuleA 16,儲存資料17,關閉含有VBA模組的檔18-結束19。(VBA模組隱藏可與VBA模組轉換成ThisWorkbook同時使用)。
1.1.2 VBA模組隱藏-操作範例
範例:Excel VBA程式設計者,設計了一款LOCKTOOL2003增益集,功能如附圖1,其Excel2010工具列畫面如附圖2, VBA編輯畫面如附圖3,以下步驟將作VBA模組隱藏,使之保護保密模組內的程式不被觀看而程式仍能正常運作。
步驟:
I. 使用跨平台的編輯器或其他程式語言(本範例使用MadEdit,亦可以使用VB)開啟此LOCKTOOL2003增益集,內含有VBA模組的檔案,找到我們要隱藏的模組Module1的位置[“Module=“Module1],如附圖4。
II. 更改[“Module=“Module1]的模組名稱後半部[Module1],本範例更改為[hodule1],更改完畢後編輯程式按存檔,如附圖5。
III. 使用Excel開啟此含有VBA模組的檔案,可看到更改為hodule1後的模組,且此模組無法檢視程式碼,即完成模組隱藏(此時的hodule1為虛假模組),如附圖6。
1.2 解除VBA模組隱藏
解除VBA模組隱藏,就是把VBA專案內的[虛假模組]轉變回正常模組。當製作VBA模組隱藏時會產生虛假模組,解除VBA模組隱藏只要運用VBA模組隱藏方法作反向操作即可恢復為正常模組。
1.2.1 解除VBA模組隱藏-方法流程圖
關於解除VBA模組隱藏製作方法與流程如圖2所示。
(A)開啟含有VBA模組隱藏檔案格式檔案20,(B)找到Module=存在位置21,(C)有保留虛假Moudle-更改ModuleA為 原名稱Module1(名稱字元長度相同)220-儲存資料221-關閉跨平台的編輯器或其他程式語言222-結束223,(D)沒有保留虛假Moudle-開啟含有VBA模組的Excel檔230-進VBA編輯器增加Module2 231-儲存資料232-關閉含有VBA模組的Excel檔233-重新載入含有VBA模組的Excel檔234-更改Module2為原名稱Module1(需與原名稱相同字元長度)235-儲存資料236-關閉跨平台的編輯器或其他程式237-結束238。
1.2.2 解除VBA模組隱藏-操作範例
範例:使用1.1.2 VBA模組隱藏-操作範例,所作之成品LOCKTOOL2003增益集來作解除VBA模組隱藏操作範例。以下步驟將作解除VBA模組隱藏,使受隱藏之模組能恢復為正常模組。
步驟:
I. 使用Excel開啟此含有VBA模組的檔案,可看到更改為hodule1後的模組,且此模組內無法檢視程式碼,如附圖7。
II. 使用跨平台的編輯器或其他程式語言開啟此LOCKTOOL2003增益集含有VBA模組的檔案(本範例使用MadEdit),找到我們要恢復為正常模組hodule1的位置[Module=hodule1],如附圖8。
III. 更改[Module=]之後的模組名稱,本範例恢復為原始[Module1],更改完畢後編輯程式按存檔,即完成模組隱藏恢復為正常模組,如附圖9。
IV. Module1模組隱藏恢復為正常模組,如附圖10。
1.3 簡易VBA模組非常隱藏
VBA模組非常隱藏,係指開啟與進入VBA專案後不可見亦不可編輯但又確實隱藏在檔案內的個別模組,經過隱藏模組內之程式碼仍能正常運作,與VBA模組非常隱藏最大的差異是其完成時不會顯示[虛假模組],並且解除VBA模組非常隱藏時較難破解。關於簡易VBA模組非常隱藏方法是利用製作VBA模組隱藏時,選擇刪除虛假模組,存檔後即製作完成。
1.3.1 簡易VBA模組非常隱藏-方法流程圖
關於簡易VBA模組非常隱藏方法與流程如圖3所示。
(A)開啟含有VBA檔案格式檔案30,(B)找到Module=Module1位置31,(C)更改Module1為ModuleA(需與原名稱相同字元長度)32,(D)儲存資料33,(E)要保留虛假Module-結束34,(F)不保留虛假Module-開啟含有VBA模組的檔350-進VBA編輯器刪除ModuleA351-儲存資料352-關閉含有VBA模組的檔353-結束354。
1.3.2 簡易VBA模組非常隱藏範例
範例:使用1.1.2 VBA模組隱藏-操作範例,所作之成品LOCKTOOL2003增益集來作簡易VBA模組非常隱藏範例。以下步驟將作簡易VBA模組非常隱藏,使受VBA模組隱藏之個別模組能轉變為VBA模組非常隱藏。
步驟:
I. 使用Excel開啟此含有VBA模組的檔案,可看到更改為hodule1後的模組,且此模組無法檢視程式碼,如附圖11。
II. 刪除hodule1虛假模組,存檔,即完成模組非常隱藏,如附圖12。
VBA模組非常隱藏特色:VBA模組非常隱藏,其特色為當使用跨平台的編輯器或其他程式語言開啟檔案時,找不到Module位置可以更改,無法恢復成正常模組,較難解除,如附圖13。
2. VBA模組非常隱藏與解除
VBA模組非常隱藏是種藉由跨平台的編輯器或其他程式語言變更EXCEL/WORD二進位檔案格式內容,進而非常隱藏VBA專案中的個別模組,讓人看不到VBA專案中某幾個經過處理的模組與其中的程式碼。此方法可以作VBA個別模組非常隱藏,亦可以解除VBA個別模組隱藏,此法與VBA模組隱藏最大的差異是其完成時不會顯示[虛假模組],並且解除VBA模組非常隱藏時較難破解,其作法如後續介紹。
2.1 VBA模組非常隱藏
VBA模組非常隱藏,係指開啟與進入VBA專案後不可見亦不可編輯但又確實隱藏在檔案內的個別模組,且經過隱藏模組內之程式碼仍能正常運作。
2.1.1 VBA模組非常隱藏-方法流程圖
關於VBA模組非常隱藏方法與流程如圖4所示。
(A)開啟含有VBA檔案格式檔案40,(B)找到Module位置41,(C) 更改Module=Hodule=(自由更改)42,(D)儲存資料43,(E)開啟含有VBA模組的檔44,(F)按是(Y)繼續載入專案45,(G)儲存資料46,(H)關閉含有VBA模組的檔案47。
2.1.2 VBA模組非常隱藏-操作範例
範例:Excel VBA程式設計者,設計了一款LOCKTOOL2003增益集,尚未VBA模組隱藏,如附圖14,以下步驟將作VBA模組非常隱藏,使之保護保密模組內的程式不被觀看而程式仍能正常運作。
步驟:
I. 使用跨平台的編輯器或其他程式語言開啟此LOCKTOOL2003增益集含有VBA模組的檔案(本範例使用MadEdit),找到要作模組非常隱藏的模組Module1的位置[“Module=“Module1],如附圖15。
II. 更改[“Module=“Module1]的模組名稱前半段[“Module=“],本範例更改為[Hodule=],更改完畢後編輯程式按存檔,如附圖16。
III. 使用Excel開啟此含有VBA模組的檔案,可看到"繼續載入專案訊息",按是載入專案,如附圖17。
IV. 使用Excel儲存此含有VBA模組的檔案,下次開啟後即不會再出現"繼續載入專案訊息",VBA模組非常隱藏完成畫面,如附圖18。
2.2 解除VBA模組非常隱藏
解除VBA模組非常隱藏,就是把VBA專案內已完全隱藏的模組顯示並轉變回正常模組。VBA模組非常隱藏由於沒有[虛假模組]較難解除,且若未找到原始模組名稱,將無法恢復為正常模組。
2.2.1 解除VBA模組非常隱藏-方法流程圖
關於解除VBA模組隱藏製作方法與流程如圖5所示。
(A)開啟含有VBA模組隱藏檔案格式檔案50,(B)找到Module=存在位置51,(C)是否抱保留虛假Module,(D)YES-變更ModuleA為原名稱Module1(名稱字元長度相同)530-儲存資料531-關閉跨平台的編輯器或其他程式語言532-結束533,(E)開啟含有VBA模組的Excel檔540-進VBA編輯器增加Module2 541-儲存資料542-關閉含有VBA模組的Excel檔543-重新載入含有VBA模組的Excel檔544-更改Module2為原名稱Module1(需與名稱字元長度相同)545-儲存資料546-關閉跨平台的編輯器或其他程式語言547-結束548。
2.2.2 解除VBA模組非常隱藏-操作範例
範例:使用2.1.2 VBA模組非常隱藏-操作範例,所作之成品LOCKTOOL2003增益集來作解除VBA模組非常隱藏操作範例。以下步驟將作解除VBA模組非常隱藏,使受非常隱藏之模組能恢復為正常模組。
步驟:
I. 找出原始已模組非常隱藏之模組名稱(未知原始模組名稱時,方法如備註1),此範例已知為Module1。
II. 使用Excel開啟此已模組非常隱藏的檔案,可見到Module1已模組非常隱藏,VBA編輯器內完全看不到Module1,如附圖19。
III. 在檔案中新增空白Module,範例為Module2,並存檔關閉Excel,如附圖20。值得注意的是新增模組Module2的名字字元,需與欲恢復模組非常隱藏之原模組名稱字元長度相同。
IV. 使用跨平台的編輯器或其他程式語言載入並開啟此LOCKTOOL2003增益集含有VBA模組的檔案(本範例使用MadEdit),找到我們剛新增的模組Module2的位置[“Module=“Module2],如附圖21。
V. 更改[“Module=“Module2]為欲恢復模組非常隱藏之原模組名稱[“Module=“Module1],更改完畢後存檔,即完成模組非常隱藏恢復為正常模組,如附圖22。
VI. Module1模組非常隱藏恢復為正常模組,如附圖23。
3. VBA模組轉換成ThisWorkbook/ThisDocument與解除
EXCEL/WORD VBA模組轉換成ThisWorkbook/ThisDocument與解除是種藉由跨平台的編輯器或其他程式語言變更EXCEL/WORD二進位檔案格式內容,進而讓EXCEL/WORD VBA模組,轉換成ThisWorkbook/ThisDocument,此法可以防止VBA模組在程式編輯器中被移除,可以作VBA個別模組轉換成ThisWorkbook/ThisDocument,亦可以解除VBA個別模組轉換成ThisWorkbook/ThisDocument,重要的是經過VBA個別模組轉換成ThisWorkbook/ThisDocument模組內之程式碼仍可 以正常運行使用,其作法如後續介紹。
3.1 VBA模組轉換成ThisWorkbook/ThisDocument
在EXCEL/WORD VBA編輯器中,可以在正常模組裡面編輯程式與移除模組;而ThisWorkbook/ThisDocument則可以編輯裡面的程式但不能移除ThisWorkbook/ThisDocument,此法係指將個別模組轉換成ThisWorkbook/ThisDocument,使個別模組可以編輯裡面的程式但不能移除變為ThisWorkbook/ThisDocument的模組。
3.1.1 VBA模組轉換成ThisWorkbook/ThisDocument-方法流程圖
關於VBA模組轉換成ThisWorkbook/ThisDocument流程如圖6所示。
(A)開啟含有VBA模組隱藏檔案格式檔案61,(B)找到Module=Module1位置62,(C)更改Module1為Docment=62,(D)儲存資料63,(E)結束64。
3.1.2 VBA模組轉換成ThisWorkbook/ThisDocument-操作範例
範例:Excel VBA程式設計者,設計了一款LOCKTOOL2003增益集,原始VBA模組尚未轉換為ThisWorkbook,如附圖24,以下步驟將作VBA模組轉換成ThisWorkbook,使可以編輯模組裡面的程式但不能刪除模組而程式仍能正常運作。
步驟:
I. 使用跨平台的編輯器或其他程式語言開啟此 LOCKTOOL2003增益集含有VBA模組的檔案(本範例使用MadEdit),找到我們要作VBA模組轉換成ThisWorkbook的位置[“Module=“Module1],如附圖25。
II. 更改[“Module=“Module1]的模組名稱前半部[“Module=“],更改為[Document=],更改完畢後編輯程式按存檔,如附圖26。
III. 使用Excel開啟此含有VBA模組的檔案,可見到VBA模組轉換成ThisWorkbook完成畫面,已無法移除Module1,如附圖27。
3.2 解除VBA模組轉換成ThisWorkbook/ThisDocument
解除VBA模組轉換成ThisWorkbook/ThisDocument,就是把VBA專案內個別已VBA模組轉換成ThisWorkbook/ThisDocument的模組顯示並轉變回正常模組。
3.2.1 解除VBA模組非常隱藏-方法流程圖
關於解除VBA模組隱藏製作方法與流程如圖7所示。
(A)開啟含有VBA並換成ThisWorkbook檔案格式檔案70,(B)找到Docment=Module1位置71,(C)更改Docment=為Module1=72,(D)儲存資料73,(E)結束74。
3.2.2 解除VBA模組轉換成ThisWorkbook/ThisDocument-操作範例
範例:使用3.1.2 VBA模組轉換成ThisWorkbook/ThisDocument-操作範例,所作之成品IOCKTOOL2003增益集來作解除VBA模 組轉換成ThisWorkbook/ThisDocument操作範例。以下步驟將作解除VBA模組轉換成ThisWorkbook/ThisDocument,使模組能恢復為正常模組。
步驟:
I. 使用Excel開啟此已VBA模組轉換成ThisWorkbook的檔案,可見到Module1已轉換成ThisWorkbook,無法移除Module1,如附圖28。
II. 使用跨平台的編輯器或其他程式語言載入並開啟此LOCKTOOL2003增益集含有VBA的檔案(本範例使用MadEdit),找到[Document=Module1]的模組名稱前半部[Document=],更改為[“Module=“]後存檔,如附圖29。
III. 完成解除VBA模組轉換成ThisWorkbook/ThisDocument,恢復為正常模組,如附圖30。
3.3 [VBA模組隱藏]搭配[VBA模組轉換成
ThisWorkbook/ThisDocument]同時使用在EXCEL中可搭配[VBA模組隱藏]、[VBA模組轉換成ThisWorkbook]兩項前述技巧同時使用;在WORD中可搭配[VBA模組隱藏]、[VBA模組轉換成ThisDocument]兩項技巧同時使用。此搭配效果可讓個別模組轉換成ThisWorkbook/ThisDocument,使轉換後的VBA個別模組,無法檢視模組內的程式碼且不能移除轉變為ThisWorkbook/ThisDocument的模組,搭配上述兩項技巧同時使用後模組內之程式碼仍可以正常運行使用,如附圖31、32。
4. 前述三項目隱藏與解除方法進化應用到EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式方法
值得說明的是新格式的出現通常會是未來的主流,前述三大項目隱藏與解除方法是專門應用在含有VBA模組的EXCEL/WORD二進位檔案格式,如副檔名為doc、dot、xls、xlt、xla檔案格式,而針對EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式的部份,如副檔名為docm、dotm、xlsm、xltm、xlam檔案格式在作法上則須作更進一步轉化。
檔案格式轉化流程方法:
方法1.使用EXCEL/WORD 97(含)以後版本,將二進位檔案格式製作成VBA模組隱藏、VBA模組非常隱藏與模組轉換成ThisWorkbook/ThisDocument,再使用EXCEL/WORD 2007(含)以後版本,另存成Office Open XML Formats巨集檔案格式,即可將上述處理過之檔案由二進位檔案格式轉換為Office Open XML Formats巨集檔案格式。
方法2.在未解壓縮EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式狀況下,使用壓縮程式從EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式檔案中另存出VBAProject.bin。將VBAProject.bin當成二進位檔案格式使用前述方法製作成下列功能:
.VBA模組隱藏/解除VBA模組隱藏
.VBA模組非常隱藏/解除VBA模組非常隱藏
.VBA模組轉換成ThisWorkbook/解除VBA模組轉換成ThisWorkbook
在未解壓縮EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式狀況下,使用壓縮程式將此新變更過之VBAProject.bin重新置換原始VBAProject.bin即完成,具體方法如下範例。
方法2轉化方法範例:
1. 使用壓縮程式開啟EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式,如下列範例為.xlsm巨集檔案格式(附圖33)
2. 進入xl資料夾(附圖34)
3. 另存或以任何方式取出VBAProject.bin(附圖35)
4. 使用跨平台的編輯器或其他程式語言開啟取出的VBAProject.bin檔案(本範例使用MadEdit)(附圖36)
5. 變更字串方法,使用VBAProject.bin檔案,按照前述VBA模組隱藏、解除VBA模組隱藏、VBA模組非常隱藏、解除VBA模組非常隱藏、VBA模組轉換成ThisWorkbook、解除VBA模組轉換成ThisWorkbook方法原理,變更此檔案字串,變更後存檔。
6. 將變更過之新VBAProject.bin,加入並取代原始 VBAProject.bin(附圖37)
7. 若使用VBA非常模組隱藏原理,則需使用EXCEL/WORD再開啟檔案,使應用軟體修正錯誤,存檔(第二次以後使用EXCEL/WORD再開啟檔案不會再出現錯誤訊息),即完成防護(附圖38)
8. 完成後可以看到此範例檔案內原有Module1與Module2,將Module1做模組非常隱藏、Module2作模組隱藏,防護後如附圖39
備註:
1. 解除VBA模組非常隱藏,不知道原始Module名稱,將無法解除,可在ThisWorkbook後方發現原始名稱。(附圖40)
2. 關於插入檔案當作物件的子檔案,可直接在母檔案中,用跨平台的編輯器或其他程式語言直接編輯子檔案位置作成VBA模組隱藏。
3. 此技巧與5.0/95格式互斥,需注意程式不能撰寫另存檔為5.0/95格式,會產生錯誤。
4. VBA模組全隱藏易造成不同軟體版本使用上的錯務,盡量使用模組未全部隱藏或留下虛擬模組(虛擬模組97版無法使用,只要新增一正常模組則模組隱藏可用)。
5. VBA模組隱藏,刪除虛擬模組後,使用2003 SP3版存檔過,可通過2003 SP3此一版本巨集安全性。
6. VBA模組隱藏,若為全模組隱藏,新增Module名稱(需與原 名稱相同字元長度),才能解除,故在加密時盡量,可加長字元長度避免破解。
7. VBA模組隱藏檔案容易損壞或無法恢復,製作前建議備份原始檔。
8. 本發明後續發展與進化之建議,可使用程式語言如VB、VBA、C、JAVA等程式語言運用本發明之方法邏輯撰寫於程式中,製作成軟體工具,可直接由軟體工具製作VBA模組隱藏與解除、VBA模組非常隱藏與解除…等本發明所提出之相關方法,而不用再透過跨平台的編輯器手動製作,可增加防護速度與方便性。
以上所述僅是藉由較佳實施例詳細說明本發明,然而對於該實施範例所作的任何修改與變化,例如字串的文字、數字、符號;字串的長度等等之變化均不脫離本發明之精神與範圍。
由以上詳細說明可使熟知本項技藝者明瞭本發明的確可達成前述之目的,實已符合專利法之規定,爰依法提出發明專利申請。
10‧‧‧開啟含有VBA檔案格式檔案
11‧‧‧找到Module=Module1位置
12‧‧‧更改Module1為MduleA
13‧‧‧儲存資
14‧‧‧結束
15‧‧‧開啟含有VBA模組的檔
16‧‧‧進VBA編輯器刪除ModuleA
17‧‧‧儲存資料
18‧‧‧關閉含有VBA模組的檔
19‧‧‧結束

Claims (10)

  1. 一種VBA模組隱藏方法,其係包括:(A)使用跨平台的編輯器或程式語言開啟含有VBA模組的EXCEL/WORD二進位檔案格式,找到其中欲隱藏之個別模組或多個模組位置,該位置係位於”Module=“後方;(B)更改”Module=“後方的模組名稱,改為特定之字串後存檔;以及(C)完成VBA模組隱藏,產生虛假模組。
  2. 如申請專利範圍第1項所述之VBA模組隱藏方法,其中,可再包括:(A)使用EXCEL/WORD開啟該VBA模組隱藏所製作之檔案,進入VBA編輯器找到其中虛假模組位置;以及(B)刪除虛假模組存檔。
  3. 如申請專利範圍第1項或第2項所述之VBA模組隱藏方法,應用到EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式方法,其係為:(A)使用EXCEL/WORD 97(含)以後版本,將二進位檔案格式製作成VBA模組隱藏,再使用EXCEL/WORD 2007(含)以後版本,另存成Office Open XML Formats巨集檔案格式,即可將所處理過之檔案由二進位檔案格式轉換為Office Open XML Formats巨集檔案格式;或(B)在壓縮程式預覽未解壓縮EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式狀況下,使用壓縮程式從EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式檔案中另存出VBAProject.bin,將VBAProject.bin當成二進位檔案格式作成VBA模組隱藏,在壓縮程式預覽未解壓縮狀況下,使用壓縮程式將新變更過之VBAProject.bin加入並取代EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式即完成。
  4. 一種VBA模組隱藏解除方法,其係包括:(A)使用跨平台的編輯器或程式語言開啟含有VBA模組的EXCEL/WORD二進位檔案格式,找到其中欲解除隱藏之個別模組或多個模組的虛假模組位置,該位置係位於”Module=“後方;(B)更改”Module=“後方的模組名稱,為原始模組名稱按存檔;以及(C)完成VBA模組隱藏解除,恢復為正常模組。
  5. 一種VBA模組非常隱藏方法,其係包括:(A)使用跨平台的編輯器或程式語言開啟含有VBA模組的EXCEL/WORD二進位檔案格式,找到其中欲非常隱藏之個別模組或多個模組位置,該位置係位於欲非常隱藏之模組名稱前方之“Module=“;(B)更改”Module=“為特定字串後存檔;(C)使用EXCEL/WORD開啟此檔案,可看到"繼續載入專案訊息",按是載入專案;(D)使用EXCEL/WORD儲存此檔案,下次開啟後即不會再出現"繼續載入專案訊息";以及(E)完成VBA模組非常隱藏。
  6. 如申請專利範圍第5項所述之VBA模組非常隱藏方法,應用到EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式方法,其係為(A)使用EXCEL/WORD 97(含)以後版本,將二進位檔案格式製作成VBA模組非常隱藏,再使用EXCEL/WORD 2007(含)以後版本,另存成Office Open XML Formats巨集檔案格式,即可將所處理過之檔案由二進位檔 案格式轉換為Office Open XML Formats巨集檔案格式;或(B)在壓縮程式預覽未解壓縮EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式狀況下,使用壓縮程式從EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式檔案中另存出VBAProject.bin,將VBAProject.bin當成二進位檔案格式作成VBA模組非常隱藏,在壓縮程式預覽未解壓縮狀況下,使用壓縮程式將新變更過之VBAProject.bin加入並取代EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式即完成。
  7. 一種VBA模組非常隱藏解除方法,其係包括:(A)找出原始已模組非常隱藏之個別模組或多個模組模組名稱;(B)使用EXCEL/WORD開啟此已模組非常隱藏的檔案;(C)在檔案中新增空白Module,存檔並關閉EXCEL/WORD;(D)使用跨平台的編輯器或程式語言載入並開啟此檔案,找到新增模組的位置;(E)將新增模組名稱更改為欲恢復模組非常隱藏之原模組名稱,更改完畢後存檔;以及(F)完成VBA模組非常隱藏解除,恢復為正常模組。
  8. 一種VBA模組轉換成ThisWorkbook/ThisDocument方法,其係包括:(A)使用跨平台的編輯器或其他程式語言開啟此檔案,找到個別模組或多個模組要作VBA模組轉換成ThisWorkbook/ThisDocument的位置,該位置係位於欲轉換成ThisWorkbook/ThisDocument模組名稱前方之“Module=“; (B)更改“Module=“為固定字串Document=,更改完畢後編輯程式按存檔;以及(C)完成VBA模組轉換成ThisWorkbook/ThisDocument。
  9. 如申請專利範圍第8項所述之VBA模組轉換成ThisWorkbook/ThisDocument方法,應用到EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式方法,其係為(A)使用EXCEL/WORD 97(含)以後版本,將二進位檔案格式製作成VBA模組轉換成ThisWorkbook/ThisDocument,再使用EXCEL/WORD 2007(含)以後版本,另存成Office Open XML Formats巨集檔案格式,即可將所處理過之檔案由二進位檔案格式轉換為Office Open XML Formats巨集檔案格式;或(B)在壓縮程式預覽未解壓縮EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式狀況下,使用壓縮程式從EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式檔案中另存出VBAProject.bin,將VBAProject.bin當成二進位檔案格式作成VBA模組轉換成ThisWorkbook/ThisDocument,在壓縮程式預覽未解壓縮狀況下,使用壓縮程式將新變更過之VBAProject.bin加入並取代EXCEL/WORD 2007(含)以後版本Office Open XML Formats巨集檔案格式即完成。
  10. 一種VBA模組轉換成ThisWorkbook/ThisDocument解除方法,其係包括:(A)使用跨平台的編輯器或其他程式語言開啟此檔案,找到個別模組或多個模組要作VBA模組轉換成ThisWorkbook/ThisDocument解除的位置,該位置係位於欲轉換成ThisWorkbook/ThisDocument模組名稱前方之Document=; (B)更改Document=為固定字串“Module=“,更改完畢後編輯程式按存檔;以及(C)完成解除VBA模組轉換成ThisWorkbook/ThisDocument,恢復為正常模組。
TW101119028A 2012-05-28 2012-05-28 Vba模組隱藏方法 TWI494787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101119028A TWI494787B (zh) 2012-05-28 2012-05-28 Vba模組隱藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101119028A TWI494787B (zh) 2012-05-28 2012-05-28 Vba模組隱藏方法

Publications (2)

Publication Number Publication Date
TW201349000A TW201349000A (zh) 2013-12-01
TWI494787B true TWI494787B (zh) 2015-08-01

Family

ID=50157405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119028A TWI494787B (zh) 2012-05-28 2012-05-28 Vba模組隱藏方法

Country Status (1)

Country Link
TW (1) TWI494787B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095833A1 (en) * 2000-11-22 2006-05-04 Orchard Andrew C Method and apparatus for automatically producing spreadsheet-based models
TW200825836A (en) * 2006-12-04 2008-06-16 Glasswall Ip Ltd Improvements in resisting the spread of unwanted code and data
JP2011248665A (ja) * 2010-05-27 2011-12-08 Oki Consulting Solutions Co Ltd 表計算ソフトウェア用アドインおよび表計算ソフトウェア用アドインシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095833A1 (en) * 2000-11-22 2006-05-04 Orchard Andrew C Method and apparatus for automatically producing spreadsheet-based models
TW200825836A (en) * 2006-12-04 2008-06-16 Glasswall Ip Ltd Improvements in resisting the spread of unwanted code and data
JP2011248665A (ja) * 2010-05-27 2011-12-08 Oki Consulting Solutions Co Ltd 表計算ソフトウェア用アドインおよび表計算ソフトウェア用アドインシステム

Also Published As

Publication number Publication date
TW201349000A (zh) 2013-12-01

Similar Documents

Publication Publication Date Title
US8456654B2 (en) Process for electronic document redaction
US7257717B2 (en) Method with the functions of virtual space and data encryption and invisibility
US8707187B2 (en) Concurrent document markup
CN103577729A (zh) 一种pdf文件中加盖电子印章的方法
Tian et al. A transparent middleware for encrypting data in MongoDB
EP1965314A1 (en) Document processing system and method
KR20170035313A (ko) 전자연구노트 작성 시스템 및 방법
CN107203574A (zh) 数据管理和数据分析的聚合
CN103902517A (zh) 一种分离式电子公文留痕及其显现方法和系统
EP1965310A1 (en) Document processing method
CN107180201A (zh) 隐私空间的创建方法及装置
US10803093B2 (en) Systems and methods for enabling a file management label to persist on a data file
CN102651057A (zh) 一种基于ooxml的电子文档数字取证方法及其装置
TWI494787B (zh) Vba模組隱藏方法
Al-Wesabi et al. Tampering Detection Approach of Arabic-Text Based on Contents Interrelationship.
CN115906124B (zh) 一种Revit项目文件的加密方法、解密方法、装置及设备
CN106055793A (zh) 一种快速解锁视图文件的方法
CN108985759A (zh) 一种加密货币的地址生成方法及系统、设备和存储介质
US20140136854A1 (en) Information processing apparatus, information processing method and computer program
CN110941846B (zh) 一种防止恢复电子证照正本的加注应用方法及系统
CN112380559A (zh) 基于双混沌哈希文件控制的安卓文件密码箱系统
Mohamed et al. A novel method to protect content of microsoft word document using cryptography and steganography
JP4832132B2 (ja) アクセス制御装置、アクセス制御シミュレーション方法及びアクセス制御シミュレーションプログラム
JP4635632B2 (ja) ファイルロック/アンロック用プログラム、記録媒体及び電子ファイル転送処理システム
Hue Securing freedom of information in Vietnamese government and law.

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees