V
vothanhthu
Guest
1. Giới thiệu sơ lược về bảo mật
Như các bạn đã biết, viết code VBA trong Excel khó lòng mà bảo mật được, vì các biện pháp bảo vệ VBA thông thường gần như không hiệu quả. Mình đơn cử như việc các bạn hay dùng nhất là bảo vệ code bằng mã VBAProject, mã này rất dễ bị bẻ, 1 chút mẹo nhỏ là phá được. Hay giỏi hơn một chút, bạn có thể Unviewable không cho nhập mật khẩu khi mở khóa VBA, cách này ngày xưa từng là một biện pháp an toàn nhưng giờ thì không. Hiện nay đã có rất nhiều công cụ bẻ được loại khóa này. Hoặc một phần mềm bên thứ 3 như LockXLS, Nhưng đó lại là ở một bài viết khác. Mình lang thang Google và thấy có rất ít bài viết nói về phương pháp bảo mật này. Cho nên hôm nay, mình sẽ giới thiệu với các bạn một phương pháp bảo mật khá mới trong các phương pháp bảo mật hiện nay đó là Kỹ thuật ẩn Module.
2. Cách thức thực hiện phương pháp
Cách thức thực hiện phương pháp này khá đơn giản nhưng lại khá hữu hiệu trong việc bảo mật.
Giả sử mình đang có ở đây là File Book1.xlsb, trong file này mình tạo 1 Module tên Module1, trong Module này mình tạo một Sub Test có chứa 1 msgbox
Bước 1: Thoát và Save, bạn chọn file và Rename tên file đó thêm đuôi .ZIP phía sau tên file để ta có thể Bug file này ra.
Bước 2: Lên mạng và tải phần mềm mang tên
Bước 3: Mở file vừa thêm đuôi .ZIP đó lên, truy cập theo đường dẫn xl/vbaProject.bin để mở file này lên.
Lưu ý: Các bạn không nên giải nén file .ZIP này, mình thấy có một số bài hướng dẫn khi thêm đuôi nén giải nén rồi mới làm, làm xong rồi nén lại. Điều này là không nên vì các bạn nên biết các bạn đang thao tác Bug file Excel và thêm đuôi nén là do ta tự ý thêm vào. Việc các bạn giải nén rồi nén lại sẽ có rất nhiều nguy cơ làm "tèo" luôn file Excel của bạn.
Bước 4: Lúc này, bạn Ctrl + F và tìm đến tên các Module có trong file của bạn (file mình có 1 Module tên Module1 nên mình sẽ gõ Module1) nhấn Search All.. Các bạn tìm đến dòng Module=Module1 (ở đây Module1 là tên Module của mình)
Bước 5: Đây là bước quan trọng, chổ đoạn chữ Module=Module1 bạn thay thế toàn bộ chuỗi hệ thập lục phân bên trái có chứa vị trí Module thành 0A hết (như file của mình là 4D cho đến 31). Sau đó Save lại chính trong file nén. Nếu trong file nén có tạo thêm File vbaProject.bin.bank thì xóa file đó đi.
Bước 6: Bạn lưu file nén đó lại và đổi tên bỏ đuôi .ZIP ra, mở file excel và xem kết quả
3. Khả năng bảo mật của phương pháp
Các liên kết của code trong module như Button, Userform... sẽ hoàn toàn hoạt động bình thường.
Việc ta hủy bỏ vị trí của một Module, khi người khác muốn khôi phục lại vị trí Module đó là một việc không hề dễ dàng. Bạn phải biết được chính xác vị trí các byte và tên của Module rồi từ đó điền vào thì Module mới hiện trở lại. Chỉ cần bạn nhập sai một kí tự thì Excel sẽ tạo ra các Module ảo.
Nếu như các bạn có phương pháp nào hay hơn hoặc giải pháp tốt hơn cho phương pháp này thì đừng ngần ngại comment bên dưới chúng ta cùng thảo luận.
Mình là Thứ, Trên đây là những chia sẽ của mình về kỹ thuật ẩn Module tương đối mới trong các phương pháp bảo mật. Hy vọng nó sẽ giúp ích cho bạn trong việc bảo vệ code VBA của mình trước còn mắt của những kẻ tò mò!
Đây là File thực tế, các bạn có thể xem qua:
Nhấn vào
Như các bạn đã biết, viết code VBA trong Excel khó lòng mà bảo mật được, vì các biện pháp bảo vệ VBA thông thường gần như không hiệu quả. Mình đơn cử như việc các bạn hay dùng nhất là bảo vệ code bằng mã VBAProject, mã này rất dễ bị bẻ, 1 chút mẹo nhỏ là phá được. Hay giỏi hơn một chút, bạn có thể Unviewable không cho nhập mật khẩu khi mở khóa VBA, cách này ngày xưa từng là một biện pháp an toàn nhưng giờ thì không. Hiện nay đã có rất nhiều công cụ bẻ được loại khóa này. Hoặc một phần mềm bên thứ 3 như LockXLS, Nhưng đó lại là ở một bài viết khác. Mình lang thang Google và thấy có rất ít bài viết nói về phương pháp bảo mật này. Cho nên hôm nay, mình sẽ giới thiệu với các bạn một phương pháp bảo mật khá mới trong các phương pháp bảo mật hiện nay đó là Kỹ thuật ẩn Module.
2. Cách thức thực hiện phương pháp
Cách thức thực hiện phương pháp này khá đơn giản nhưng lại khá hữu hiệu trong việc bảo mật.
Giả sử mình đang có ở đây là File Book1.xlsb, trong file này mình tạo 1 Module tên Module1, trong Module này mình tạo một Sub Test có chứa 1 msgbox
Bạn cần đăng nhập để thấy hình ảnh
Bước 1: Thoát và Save, bạn chọn file và Rename tên file đó thêm đuôi .ZIP phía sau tên file để ta có thể Bug file này ra.
Bạn cần đăng nhập để thấy hình ảnh
Bước 2: Lên mạng và tải phần mềm mang tên
Bạn cần đăng nhập để thấy link
, phiên bản mình đang sử dụng là 2.3.0. Hoặc bạn có thể tải bất cứ phần mềm nào khác có khả năng biên tập Hex. cái này không bắt buộc.Bước 3: Mở file vừa thêm đuôi .ZIP đó lên, truy cập theo đường dẫn xl/vbaProject.bin để mở file này lên.
Lưu ý: Các bạn không nên giải nén file .ZIP này, mình thấy có một số bài hướng dẫn khi thêm đuôi nén giải nén rồi mới làm, làm xong rồi nén lại. Điều này là không nên vì các bạn nên biết các bạn đang thao tác Bug file Excel và thêm đuôi nén là do ta tự ý thêm vào. Việc các bạn giải nén rồi nén lại sẽ có rất nhiều nguy cơ làm "tèo" luôn file Excel của bạn.
Bạn cần đăng nhập để thấy hình ảnh
Bước 4: Lúc này, bạn Ctrl + F và tìm đến tên các Module có trong file của bạn (file mình có 1 Module tên Module1 nên mình sẽ gõ Module1) nhấn Search All.. Các bạn tìm đến dòng Module=Module1 (ở đây Module1 là tên Module của mình)
Bạn cần đăng nhập để thấy hình ảnh
Bước 5: Đây là bước quan trọng, chổ đoạn chữ Module=Module1 bạn thay thế toàn bộ chuỗi hệ thập lục phân bên trái có chứa vị trí Module thành 0A hết (như file của mình là 4D cho đến 31). Sau đó Save lại chính trong file nén. Nếu trong file nén có tạo thêm File vbaProject.bin.bank thì xóa file đó đi.
Bạn cần đăng nhập để thấy hình ảnh
Bước 6: Bạn lưu file nén đó lại và đổi tên bỏ đuôi .ZIP ra, mở file excel và xem kết quả
Bạn cần đăng nhập để thấy hình ảnh
3. Khả năng bảo mật của phương pháp
Các liên kết của code trong module như Button, Userform... sẽ hoàn toàn hoạt động bình thường.
Việc ta hủy bỏ vị trí của một Module, khi người khác muốn khôi phục lại vị trí Module đó là một việc không hề dễ dàng. Bạn phải biết được chính xác vị trí các byte và tên của Module rồi từ đó điền vào thì Module mới hiện trở lại. Chỉ cần bạn nhập sai một kí tự thì Excel sẽ tạo ra các Module ảo.
Nếu như các bạn có phương pháp nào hay hơn hoặc giải pháp tốt hơn cho phương pháp này thì đừng ngần ngại comment bên dưới chúng ta cùng thảo luận.
Mình là Thứ, Trên đây là những chia sẽ của mình về kỹ thuật ẩn Module tương đối mới trong các phương pháp bảo mật. Hy vọng nó sẽ giúp ích cho bạn trong việc bảo vệ code VBA của mình trước còn mắt của những kẻ tò mò!
Đây là File thực tế, các bạn có thể xem qua:
Nhấn vào
Bạn cần đăng nhập để thấy link
để tải về
Sửa lần cuối bởi điều hành viên: