איך מגנים על קוד VBA מפני העתקה

פורסם: 27.06.2026   ·   נבדק לאחרונה: 27.06.2026   ·   מאת נעם ברנד, מייסד Excel Armor

בקצרה: סיסמת פרויקט ה-VBA לא מגנה על כלום, היא רק מסתירה קוד בעורך וניתנת להסרה בשניות עם כלים חינמיים. כדי באמת להגן על VBA, המקור חייב לצאת מהקובץ שאתם שולחים: המירו את לוגיקת העסק ל-.NET מהודר, ערפלו אותה, והפיצו אותה כתוסף XLL חתום. זה מה שExcel Armor מבצע אוטומטית, והוא שומר את הרצועה והטפסים שלכם ב-VBA.

למה השיטה המתבקשת לא עובדת

כמעט כולם מתחילים בTools, VBAProject Properties, Protection, Lock project for viewing, מגדירים סיסמה ומניחים שהקוד מוגן. הוא לא. הסיסמה הזו לא מצפינה את הקוד, היא קובעת דגל שאומר לעורך הוויז'ואל בייסיק להסתיר את הפרויקט. המאקרו שמור, במלואו, בתוך הקובץ. כלים חינמיים, או כמה דקות בעורך הקסה, מסירים את הדגל וחושפים הכול. טריק ה-unviewable הוא אותו רעיון עם דגל אחר, ונכשל באותו אופן. אנחנו מסבירים את המנגנון בלמה סיסמת ה-VBA אינה הגנה.

הלקח: אם המקור עדיין בקובץ, הוא לא מוגן. הגנה אמיתית חייבת להוציא את המקור מהקובץ שאתם מוסרים למשתמשים.

ארבעת הצעדים שבאמת מגנים על VBA

  1. הפסיקו להתייחס לסיסמה כאבטחה. השאירו אותה לסדר אם תרצו, אבל הניחו שכל מי שרוצה את הקוד יכול לקרוא אותו כל עוד ה-VBA בקובץ.
  2. הוציאו את המקור מהקובץ ששולחים. המירו את לוגיקת ה-VBA ל-.NET מקור והדרו אותה. ברגע שהיא מהודרת, ה-VBA המקורי כבר לא קיים במה שאתם מפיצים, אין מה לפתוח.
  3. ערפלו את הקוד המהודר. יישמו עירפול IL תקני בתעשייה כך שגם פירוק האסמבלי יחזיר פלט מסובך וקשה לקריאה, ולא את הלוגיקה הנקייה שלכם.
  4. חתמו ושלטו בהפצה. חתמו על התוסף עם תעודה משלכם כך שWindows והלקוחות שלכם יבטחו בו, והוסיפו מנגנוני רישוי כך שרכישה אחת לא תעבור חופשי מיד ליד.

התוצאה היא תוסף XLL מקורי לאקסל שמתנהג כמו כל תוסף אחר עבור המשתמשים, בעוד הלוגיקה החשובה נשלחת כקוד מהודר ומעורפל ברמת המכונה במקום VBA קריא.

האם צריך לכתוב הכול מחדש ב-.NET?

לא. הגישה המעשית שומרת את הממשק ב-VBA (רצועה, טפסים, החלקים שמייגע לבנות מחדש) ומעבירה רק את לוגיקת העסק ל-.NET מהודר. כלי המרה עושה עבורכם את ההמרה מ-VBA ל-VB.NET. ה-Migrator של Excel Armor, למשל, ממיר את הלוגיקה ומפיק פרויקט MSBuild מוכן להידור, ושלב ה-Armor אורז, מערפל ומכין לחתימה. אתם נשארים בשליטה על קוד ה-VB.NET הקריא.

מה הגנה לא יכולה לעשות

שום שיטה לא הופכת הנדסה הפוכה לבלתי אפשרית. תוקף נחוש וממומן היטב יכול לנסות לפענח .NET מהודר. המטרה אינה שלמות, אלא העלאת עלות ההעתקה מעבר לנקודה שבה היא משתלמת עבור האיומים הריאליים: חוברות עבודה שנמכרות מחדש, נוסחאות שנגנבות, קוד שעובד עוזב לוקח. הידור ועירפול מעבירים את העלות מ-כלי חינמי, כמה שניות ל-מומחה, שבועות רבים. כל מוצר שמבטיח בלתי פריץ מגזים, וזו סיבה לחשוד בו.

בדקו איפה חוברת העבודה שלכם עומדת

עשו את הבדיקה העצמית החינמית של שתי דקות, או קראו את מדריך האבטחה שעובר על כל שיטת הגנה בשפה פשוטה.

בדיקת הגנת VBA חינם הורידו את מדריך האבטחה (PDF)

קריאה נוספת

פורסם על ידי Excel Armor, שמוכרת כלי הגנה על VBA ולכן יש לה אינטרס מסחרי במסקנה שלכם. הטענות הטכניות למעלה מתארות איך אקסל ו-VBA באמת עובדים וניתנות לאימות עצמאי. מצאתם טעות? ספרו לנו.