4 cách bảo vệ mã VBA (Visual Basic for Applications)
Mã VBA mà bạn viết là trái tim và linh hồn của bảng tính. Bảo vệ mã VBA là điều cần làm để đảm bảo mã của bạn không bị đánh cắp hoặc sử dụng mà bạn không biết. Bài đăng này sẽ đề cập đến một số cách khác nhau để bảo vệ mã VBA của bạn để chỉ BẠN mới có thể dễ dàng truy cập.
Tại sao bạn nên quan tâm đến việc bảo vệ mã VBA?
VBA là ngôn ngữ macro có thể được sử dụng để tạo các tác vụ hoặc hành động tự động trong Excel, Word, PowerPoint. Có một số lý do khiến bạn nên bảo vệ mã VBA của mình:
- Để bảo vệ mã VBA của bạn khỏi bị thay đổi vô tình. Mã VBA là một công cụ mạnh mẽ dành cho người dùng Excel, nhưng nó cũng có thể là nguồn gây bực bội cho những người không sử dụng nó. Nếu bạn không bảo mật VBA bằng mật khẩu, thì những người khác sử dụng sổ làm việc của bạn có thể truy cập mã và thực hiện các thay đổi mà không biết họ thực sự đang làm gì. Bạn không muốn gỡ lỗi mã VBA của mình vì nó có thể rất khó khăn—có thể mất hàng giờ để tìm ra lý do và sau đó thậm chí còn mất nhiều thời gian hơn nữa!
- Để bảo vệ tài sản trí tuệ của bạn. Mã VBA có thể rất có giá trị đối với một số công ty. Nếu người khác truy cập vào bảng tính của bạn và sao chép chức năng mà bạn sử dụng, thì họ có khả năng sẽ coi đó là công trình của họ và bán cho nhiều công ty. Bảo vệ mã nguồn có giá trị của bạn bằng các biện pháp bảo mật. Đừng để bất kỳ ai có thể dễ dàng đánh cắp hoặc sao chép.
- Để bảo vệ bản thân khỏi những người sử dụng công việc của bạn. Nếu bạn có một đoạn mã VBA có giá trị giúp công việc của bạn dễ dàng hơn hoặc hiệu quả hơn, thì bạn có thể muốn bảo vệ nó chỉ để sử dụng cá nhân.
Điều quan trọng cần lưu ý là có một số cách khác nhau để bảo vệ mã VBA của bạn, nhưng không phải tất cả đều bảo vệ mã của bạn theo cùng một cách. Tùy thuộc vào bạn và cách bạn nghĩ là tốt nhất cho nhu cầu của mình.
#1 Bảo vệ mã VBA bằng mật khẩu trong Excel bằng công cụ VBAProject
Phần này giải thích cách bạn có thể sử dụng cài đặt bảo vệ dự án VBA để bảo vệ mã VBA của bạn khỏi những con mắt tò mò và sự can thiệp ở một mức độ nào đó.
- Mức độ bảo mật: Yếu; Có những công cụ như Xóa mật khẩu VBA có thể được sử dụng để mở khóa mật khẩu trong vài phút;
- Độ khó: Dễ;
- Chi phí: Miễn phí;
Bước 1. Chọn “Visual Basic” từ menu “Developer” trong Excel.
Bước 2. Để khóa dự án VBA của bạn, hãy nhấp vào “Công cụ” trên thanh rồi chọn “Thuộc tính VBAProject”.
Sau khi nhấp vào mục menu này, bạn sẽ thấy hộp thoại sau:
Tab “Chung” được chọn theo mặc định, nhưng hãy nhấp vào tab “Bảo vệ”.
Bước 3. Đánh dấu vào “Khóa dự án để xem” rồi nhập mật khẩu của bạn hai lần vào cả hai ô này và nhấn “OK”.
Bước 4. Lưu và mở lại tệp Excel. Bạn có thể biết được liệu bảo vệ bằng mật khẩu VBA có được bật đúng cách hay không bằng cách nhấp đúp vào dự án VBA của bạn. Khi bạn bảo vệ dự án VBA của mình bằng mật khẩu, điều này sẽ ngăn chặn bất kỳ ai vô tình sửa đổi.
#2 Sử dụng VBA Obfuscation để bảo vệ mã Macro của bạn
Làm tối nghĩa VBA là nghệ thuật khiến mã VBA của bạn không thể đọc được nhưng vẫn hoạt động. Nó sửa đổi các macro hiện có của bạn bằng nhiều cấp độ làm tối nghĩa khiến việc hiểu logic cơ bản trở nên khó khăn. Các trình làm tối nghĩa VBA nâng cao sử dụng một số kỹ thuật làm tối nghĩa nâng cao, khiến việc theo dõi ngược và khôi phục trở nên khó khăn hơn đáng kể.
- Mức độ bảo mật: Trung bình; Vẫn có người có thể dành thời gian và cung cấp đủ nguồn lực để khôi phục mã;
- Độ khó: Trung bình; Tùy thuộc vào cấp độ;
- Trị giá: Trình làm mờ VBA miễn phí /Phần thưởng;
Bạn có thể sử dụng mã hóa VBA song song với kỹ thuật số 1, đó là đầu tiên mã hóa và sau đó bảo mật mô-đun bằng mật khẩu. Xin lưu ý rằng mã hóa là không thể đảo ngược, vì vậy hãy sao lưu tệp nguồn trước khi tiếp tục. Ngoài ra, hãy nhớ rằng không thể đảm bảo mã hóa được thực thi mà không có lỗi. Vui lòng kiểm tra kỹ lưỡng trước khi phát hành. Sử dụng một phần duy nhất của dự án để mã hóa. Sau khi thử nghiệm mã hóa mô-đun đầu tiên thành công, hãy chuyển sang thử nghiệm thứ hai.
#3 Chuyển đổi mã VBA sang thư viện liên kết động (DLL)
Các trình biên dịch như Visual C++ và Visual Basic tạo ra các ứng dụng khó bẻ khóa. Điều này là do mã được biên dịch thành các tệp thực thi hoặc tệp thư viện liên kết động. Vì vậy, chúng ta cũng có thể biên dịch mã VBA thành tệp thư viện liên kết động rồi sử dụng trong Excel.
- Mức độ bảo mật: Cao;
- Độ khó: Trung bình;
- Chi phí: Miễn phí;
Phương pháp bảo vệ này được khuyến khích sử dụng, nhưng không đảm bảo 100%. Để tìm hiểu cách biên dịch, hãy xem hướng dẫn tại VbaCompiler.com: 10 bước để biên dịch mã VBA thành DLL gốc của Windows .
#4 Chuyển đổi VBA sang C hoặc C++
Việc dịch macro của bạn sang C hoặc C++ khó thực hiện kỹ thuật đảo ngược hơn VBA. Nếu bạn muốn bảo vệ mã của mình, đây là cách tốt nhất.
- Mức độ bảo mật: Cao nhất; Gần như không thể lấy được mã nếu không có quyền; Nhưng một lần nữa, điều này không được đảm bảo 100%;
- Độ khó: Phức tạp và tốn thời gian; Vì VBA và C/C++ là những ngôn ngữ khác nhau nên khó hơn vì bạn phải đầu tư nhiều công sức.
Phần kết luận
Sử dụng macro là một cách tuyệt vời để hợp lý hóa quá trình phát triển các hàm nâng cao. Thật không may, điều này khiến mã của bạn có nguy cơ bị đánh cắp hoặc sao chép bởi người khác. Bài viết thảo luận về các phương pháp bạn có thể sử dụng để ngăn người dùng khác đánh cắp hoặc can thiệp vào mã VBA của bạn. Xin lưu ý rằng các biện pháp bảo vệ mã VBA không phải là bảo mật chống đạn, nhưng nó cung cấp một số biện pháp bảo vệ chống lại những kẻ tấn công thông thường.