4 วิธีในการปกป้องโค้ด VBA (Visual Basic for Applications)

โค้ด VBA ที่คุณเขียนถือเป็นหัวใจและจิตวิญญาณของสเปรดชีตของคุณ การปกป้องโค้ด VBA เป็นสิ่งที่ควรทำเพื่อให้แน่ใจว่าโค้ดของคุณจะไม่ถูกขโมยหรือนำไปใช้โดยที่คุณไม่รู้ตัว โพสต์นี้จะกล่าวถึงวิธีต่างๆ ในการปกป้องโค้ด VBA ของคุณเพื่อให้คุณเท่านั้นที่เข้าถึงได้ง่าย
เหตุใดคุณจึงควรใส่ใจเกี่ยวกับการปกป้องโค้ด VBA?
VBA เป็นภาษาแมโครที่ใช้สร้างงานหรือการกระทำอัตโนมัติใน Excel, Word, PowerPoint มีเหตุผลหลายประการที่คุณควรปกป้องโค้ด VBA ของคุณ:
- เพื่อปกป้องโค้ด VBA ของคุณไม่ให้ถูกเปลี่ยนแปลงโดยไม่ได้ตั้งใจ โค้ด VBA เป็นเครื่องมือที่มีประสิทธิภาพสำหรับผู้ใช้ Excel แต่ก็อาจเป็นแหล่งที่มาของความหงุดหงิดสำหรับผู้ที่ไม่ได้ใช้มัน หากคุณไม่รักษาความปลอดภัย VBA ด้วยรหัสผ่าน บุคคลอื่นที่ใช้เวิร์กบุ๊กของคุณอาจเข้าถึงโค้ดและเปลี่ยนแปลงได้โดยไม่รู้ว่าพวกเขากำลังทำอะไรอยู่ คุณไม่ต้องการดีบักโค้ด VBA ของคุณเพราะอาจยุ่งยาก อาจใช้เวลาหลายชั่วโมงกว่าจะหาสาเหตุได้ และต้องใช้เวลามากกว่านั้นด้วยซ้ำ!
- เพื่อปกป้องทรัพย์สินทางปัญญาของคุณ รหัส VBA อาจมีค่ามากสำหรับบริษัทบางแห่ง หากบุคคลอื่นเข้าถึงสเปรดชีตของคุณและคัดลอกฟังก์ชันที่คุณใช้ พวกเขาอาจแอบอ้างว่าเป็นผลงานของตนเองและขายให้กับบริษัทต่างๆ มากมาย ปกป้องรหัสต้นฉบับที่มีค่าของคุณด้วยมาตรการรักษาความปลอดภัย อย่าทำให้ใครก็ตามสามารถขโมยหรือคัดลอกได้ง่าย
- เพื่อปกป้องตัวเองจากผู้อื่นที่ใช้ผลงานของคุณ หากคุณมีโค้ด VBA ที่มีค่าซึ่งช่วยให้ทำงานได้ง่ายขึ้นหรือมีประสิทธิภาพมากขึ้น คุณอาจต้องการปกป้องโค้ดเหล่านั้นเพื่อใช้ส่วนตัวเท่านั้น
สิ่งสำคัญที่ต้องทราบคือมีหลายวิธีในการปกป้องโค้ด VBA ของคุณ แต่ไม่ใช่ทุกวิธีที่จะปกป้องโค้ดของคุณด้วยวิธีเดียวกัน ขึ้นอยู่กับคุณและสิ่งที่คุณคิดว่าดีที่สุดสำหรับความต้องการของคุณ
#1 การป้องกันรหัส VBA ด้วยรหัสผ่านภายใน Excel โดยใช้เครื่องมือ VBAProject
ส่วนนี้จะอธิบายวิธีการใช้การตั้งค่าการป้องกันโครงการ VBA เพื่อปกป้องโค้ด VBA ของคุณจากการสอดส่องและการรบกวนในระดับหนึ่ง
- ระดับความปลอดภัย : อ่อนแอ มีเครื่องมือ เช่น โปรแกรมลบรหัสผ่าน VBA ซึ่งสามารถใช้ปลดล็อครหัสผ่านได้ภายในไม่กี่นาที
- ระดับความยาก: ง่าย;
- ค่าใช้จ่าย: ฟรี;
ขั้นตอนที่ 1. เลือก “Visual Basic” จากเมนู “นักพัฒนา” ใน Excel
ขั้นตอนที่ 2. หากต้องการล็อคโครงการ VBA ของคุณ ให้คลิก “เครื่องมือ” ในแถบ จากนั้นเลือก “คุณสมบัติ VBAProject”
หลังจากคลิกที่รายการเมนูนี้คุณควรเห็นกล่องโต้ตอบต่อไปนี้:
ตามค่าเริ่มต้นจะเลือกแท็บ “ทั่วไป” แต่ให้คลิกที่แท็บ “การป้องกัน”
ขั้นตอนที่ 3. ทำเครื่องหมายที่ “ล็อคโครงการเพื่อดู” จากนั้นพิมพ์รหัสผ่านของคุณสองครั้งในช่องทั้งสองนี้ แล้วคลิก “ตกลง”
ขั้นตอนที่ 4. บันทึกและเปิดไฟล์ Excel อีกครั้ง คุณจะบอกได้ว่าการป้องกันด้วยรหัสผ่าน VBA ได้รับการเปิดใช้งานอย่างถูกต้องหรือไม่โดยดับเบิลคลิกที่โปรเจ็กต์ VBA ของคุณ เมื่อคุณป้องกันโปรเจ็กต์ VBA ด้วยรหัสผ่าน ระบบจะป้องกันไม่ให้ใครก็ตามแก้ไขโดยไม่ได้ตั้งใจ
#2 ใช้ VBA Obfuscation เพื่อปกป้องโค้ดแมโครของคุณ
การบดบัง VBA คือศิลปะในการทำให้โค้ด VBA ของคุณอ่านไม่ออกแต่ยังคงใช้งานได้ โดยจะแก้ไขแมโครที่มีอยู่ของคุณด้วยระดับการบดบังหลายระดับ ซึ่งทำให้ยากต่อการเข้าใจตรรกะพื้นฐาน ผู้บดบัง VBA ขั้นสูงใช้เทคนิคบดบังขั้นสูงจำนวนหนึ่ง ทำให้การติดตามย้อนกลับและการกู้คืนมีความท้าทายมากขึ้นอย่างมาก
- ระดับความปลอดภัย: ปานกลาง; ยังคงมีคนสามารถใช้เวลาและทรัพยากรเพียงพอในการกู้คืนรหัสได้
- ระดับความยาก: ปานกลาง ขึ้นอยู่กับระดับ;
- ค่าใช้จ่าย: โปรแกรม VBA Obfuscator ฟรี /พรีเมี่ยม;
คุณสามารถใช้ VBA obfuscation ร่วมกับเทคนิค #1 ซึ่งก็คือการบดบังโมดูลก่อนแล้วจึงป้องกันโมดูลด้วยรหัสผ่าน โปรดทราบว่าการบดบังโมดูลนี้ไม่สามารถย้อนกลับได้ ดังนั้นให้สำรองไฟล์ต้นฉบับก่อนดำเนินการต่อ นอกจากนี้ โปรดจำไว้ว่าไม่สามารถรับประกันได้ว่าโค้ดที่บดบังจะทำงานได้โดยไม่มีข้อผิดพลาด โปรดทดสอบอย่างละเอียดถี่ถ้วนก่อนเผยแพร่ ใช้ส่วนเดียวของโปรเจ็กต์ในการบดบัง หลังจากการทดสอบบดบังโมดูลแรกสำเร็จแล้ว ให้ดำเนินการทดสอบส่วนที่สอง
#3 แปลงโค้ด VBA เป็นไลบรารีลิงก์แบบไดนามิก (DLL)
คอมไพเลอร์ เช่น Visual C++ และ Visual Basic สร้างแอปพลิเคชันที่ถอดรหัสได้ยาก เนื่องมาจากโค้ดถูกคอมไพล์เป็นไฟล์ปฏิบัติการหรือไฟล์ไลบรารีลิงก์แบบไดนามิก ดังนั้นเราจึงสามารถคอมไพล์โค้ด VBA เป็นไฟล์ไลบรารีลิงก์แบบไดนามิกแล้วนำไปใช้ใน Excel ได้
- ระดับความปลอดภัย : สูง;
- ระดับความยาก: ปานกลาง;
- ค่าใช้จ่าย: ฟรี;
ขอแนะนำวิธีการป้องกันนี้เป็นอย่างยิ่ง แต่ก็ไม่ได้รับประกันว่าจะได้ผล 100% หากต้องการเรียนรู้วิธีการคอมไพล์ โปรดดูคำแนะนำที่ VbaCompiler.com: 10 ขั้นตอนในการคอมไพล์โค้ด VBA เป็น DLL ดั้งเดิมของ Windows -
#4 แปลง VBA เป็น C หรือ C++
การแปลแมโครของคุณเป็น C หรือ C++ เป็นการย้อนวิศวกรรมที่ยากกว่า VBA หากคุณต้องการปกป้องโค้ดของคุณ นี่คือวิธีที่ดีที่สุด
- ระดับความปลอดภัย: สูงสุด แทบจะเป็นไปไม่ได้เลยที่จะได้รหัสโดยไม่มีสิทธิ์ แต่ก็ไม่ได้รับประกัน 100% เช่นกัน
- ระดับความยาก: ซับซ้อนและใช้เวลานาน เนื่องจาก VBA และ C/C++ เป็นภาษาที่แตกต่างกันมาก จึงทำให้ยากกว่าเนื่องจากคุณจะต้องใช้ความพยายามมาก
บทสรุป
การใช้แมโครเป็นวิธีที่ดีในการปรับปรุงกระบวนการพัฒนาฟังก์ชันขั้นสูง แต่น่าเสียดายที่การทำเช่นนี้อาจทำให้โค้ดของคุณเสี่ยงต่อการถูกขโมยหรือคัดลอกโดยผู้อื่น บทความนี้จะกล่าวถึงวิธีการที่คุณสามารถใช้เพื่อป้องกันไม่ให้ผู้ใช้รายอื่นขโมยหรือดัดแปลงโค้ด VBA ของคุณ โปรดทราบว่าการป้องกันโค้ด VBA นั้นไม่ได้ป้องกันได้อย่างสมบูรณ์แบบ แต่ก็สามารถป้องกันการโจมตีจากผู้โจมตีทั่วไปได้