Kỹ thuật Unviewable - Khóa nhập mã VBA Protect

  • Thread starter vothanhthu
  • Ngày gửi
Trạng thái
Không mở trả lời sau này.
V

vothanhthu

Guest
1. Giới thiệu
khi nghe đến từ Unviewable trong VBA chúng ta không khỏi quen thuộc vì độ phổ biến của kỹ thuật này. Đây là một kỹ thuật được dùng để khóa mã VBA không cho người khác nhập mã khi tiến hành mở khóa pass VBA Protect.

Trong bài viết này mình sẽ hướng dẫn các bạn cách để tiến hành khóa Unviewable, các thao tác rất đơn giản.
Bạn cần đăng nhập để thấy đính kèm


2. Cách thực hiện khóa Univewable
Bước 1:
Ban đầu mình sẽ có một file như thế này
Bạn cần đăng nhập để thấy đính kèm

Bước 2: Các bạn thoát file, đổi tên file lại thêm đuôi .ZIP vào phía sau tên mở rộng
Bạn cần đăng nhập để thấy đính kèm

Bước 3: Mở file .ZIP đó lên, truy cập theo đường dẫn xl\vbaProject.bin
Lưu ý: Để mở được file .bin thì bạn cần một phần mềm có khả năng biên tập Hex, các bạn có thể tải HxD Hex Editor 2.3 giống mình về , hoặc bất cứ phần mềm nào có khả năng biên tập Hex đều được nha, không bắt buộc.
Bạn cần đăng nhập để thấy đính kèm


Bước 4: Đây là bước cực kì quan trọng, các bạn nhấn Ctrl + F, gõ vào tìm kiếm DPB. Ở đây, các bạn thấy:
CMG="686A884E8C4E8C4E8C4E8C"
DPB="D0D230B331B331B3"
GC="383AD81BD91BD9E4"
Bạn cần đăng nhập để thấy đính kèm


Các bạn thay thế toàn bộ các kí tự trong dấu "" của CMG, DPBGC thành 1 hết.
Bạn cần đăng nhập để thấy đính kèm


Bước 5: Save và đóng file vbaProject.bin lại, nếu thấy phần mềm tạo thêm file vbaProject.bin.bnk trong cùng thư mục thì xóa nó đi nhé, bỏ đuôi .ZIP ra. Mở file lên và thấy kết quả.
Bạn cần đăng nhập để thấy đính kèm

Lưu ý: ViewFormula.xlam và SOLVER.XLAM là 2 Addin hỗ trợ, không ảnh hưởng gì đến bài viết, các bạn không cần quan tâm nó nha.

3. Bàn luận về phương pháp
Phương pháp Unviewable này sẽ làm cho việc phá mã VBA Protect phức tạp hơn một chút. Nó không phải là một biện pháp quá an toàn để các bạn sử dụng với mục đích bảo vệ VBA. Cho nên mình không khuyến khích các bạn sử dụng phương pháp này với mục đích bảo vệ code VBA.

Ngoài ra, bạn có thể tham khảo kỹ thuật ẩn module phức tạp và khó phá hơn với cách thực hiện tương tự trong bài viết


Bài viết với mục tiêu chia sẽ là chính, mong các bạn đã có được những kiến thức hữu ích từ bài viết chia sẽ kỹ thuật Unviewable !
 
Sửa lần cuối bởi điều hành viên:

vbano1

SMod
Thành viên BQT
Từ cách nghĩ này, nếu tiến thêm một bước nữa để tạo ra tool bằng VBA, select file macro A, tự động Unviewable file macro A thì tuyệt. ^_^
 
V

vothanhthu

Guest
@vbano1 code nhấp vào chọn file rồi tự Unviewable mình cũng đã nghĩ đến, sẽ cố gắng ^^!
 
Sửa lần cuối bởi điều hành viên:
T

thanhphong

Guest
Cảm ơn bạn chủ topic.
Đây là vấn đề không mới, nhưng một bài viết đầy đủ như thế này trên các website tiếng việt, thì chưa ở đâu có, có lẽ tuhocvba.net là trang web duy nhất có được bài chi tiết tỉ mỉ về vấn đề này ở thời điểm hiện tại.
Mong bạn chủ topic tiếp tục phát triển vấn đề, hóng bài viết của bạn.
 

ninjatcb

Yêu THVBA
Trang này quá hay. Tuy nhiên, mình có một số vấn đề đối với Hide Module (Topic này bị khóa rồi nên mình xin phép hỏi ở đây, dù sao cũng có liên quan. Mong là Amin đồng ý):

1.Mình thử làm ngược lại để hiện module nhưng khi đôi tên file có ẩn Module này thành zip vào xem thì không thấy thư mục xl hay file vbaProject.bin đâu. Mình cũng chưa thấy hướng dẫn cách làm đảo ngược này.
2.Mình hỏi thêm là việc hide này có áp dụng được với flle .xlsm không vì mình thử nhưng không được (không biết có làm sai ở đâu hay là không thể làm được). Mong vothanhthu hay ban quản trị hỗ trợ. Mình cảm ơn
 
Sửa lần cuối:

tuhocvba

Administrator
Thành viên BQT
Xlsm vẫn ẩn bình thường, bạn dùng tool này cho nhanh :
 

ninjatcb

Yêu THVBA
Công cụ của bạn vothanhthu công nhận hay thật, thực sự quá giỏi mặc dù được xem cả code mà khổ mình xem mãi chẳng hiểu cái gì cả. Mình quan tâm nhất đến phần encrypt. Không hiểu nguyên lý tại sao khi thay đổi hết các câu lệnh sang cái núi nùi gì đấy mà VBA vẫn hiểu và thực thi lệnh được nhỉ. Khó hiểu thật. Ai có thể giải thích giúp mình để mình hiểu được không. Cảm ơn rất nhiều
 
Ta chỉ thay đổi tên biến, tên hàm, tên thủ tục. Chứ thay đổi lệnh thì VBA hiểu sao được bạn ơi.
 
Trạng thái
Không mở trả lời sau này.
Top