#LabX - Addin khóa và mở khóa mã nguồn vbaProject

Liên hệ QC

thaipv

XA Project
Tham gia
18/5/14
Bài viết
158
Được thích
239
Giới tính
Nam
Gửi tặng các bạn addin #LabX giúp khóa và mở khóa mã nguồn vbaProject :
----------------------------------------
+ Mở khóa các dự án vbaProject có bảo vệ mật khẩu bằng kỹ thuật hook (sưu tầm, không rõ tác giả).
+ Mở khóa các dự án vbaProject bằng kỹ thuật chỉnh sửa tập tin nhị phân (bao gồm một số dự án dạng 'Project is unviewable').
----------------------------------------
+ Ẩn tất cả các module (cơ bản) trong dự án bằng kỹ thuật chỉnh sửa tập tin nhị phân.
+ Khóa nhanh mã nguồn dạng 'Project is unviewable'.
----------------------------------------
Mục đích của addin này là để kiểm tra bảo mật mã nguồn, không có mục đích để bẻ khóa mã nguồn của người khác.
 

File đính kèm

  • LabX_Fix02.xlsm
    596.8 KB · Đọc: 864
  • LabX_Version1.0.xlam
    616 KB · Đọc: 655
Lần chỉnh sửa cuối:
Gửi tặng các bạn addin #LabX giúp khóa và mở khóa mã nguồn vbaProject :
+ Mở khóa các dự án vbaProject có bảo vệ mật khẩu bằng kỹ thuật hook (tác giả @siwtom).
Tôi chưa tải về đọc, nhưng chắc chắn tôi không phải là tác giả đâu :D
 
Gửi tặng các bạn addin #LabX giúp khóa và mở khóa mã nguồn vbaProject :
+ Mở khóa các dự án vbaProject có bảo vệ mật khẩu bằng kỹ thuật hook (tác giả @siwtom).
+ Mở khóa các dự án vbaProject bằng kỹ thuật chỉnh sửa tập tin nhị phân (bao gồm một số dự án dạng 'Project is unviewable').
+ Khóa nhanh mã nguồn dạng 'Project is unviewable'.

Mục đích của addin này là để kiểm tra bảo mật mã nguồn, không có mục đích để bẻ khóa mã nguồn của người khác.
BỊ LỖI THEO HÌNH đang bận quá chưa coi chi tiết lỗi saoCapture.PNG
 
Lần chỉnh sửa cuối:
Addin này đã được mã hóa nên không thể thêm vào theo cách đó được nha. Bạn chỉ cần mở lên và dùng thôi nhé.
(Mã nguồn tôi cũng đã cập nhật ở bài #1)
Mới thử Lock code cho File *.xlsb lỗi sau
bận quá lướt qua chút mai mốt coi lại

Cảm ơn Bạn
mmm.PNG
 
gửi lộn ....xin lỗi
 
Cuối cùng các bác tự đập bát cơm của mọi người đang viết code vba chăng? Thế này các lớp học VBA đào tạo Excel của GPE đi tong hết - vì cần học cái khác, VBA đâu bảo mật
 
Lỗi này thuộc về chương trình giải nén, tôi dùng Windows 7 (64bit) không thấy xuất hiện lỗi như hình. Các bạn khác test thử xem sao nhé.
Thử vầy xem sao nhé:
1/ File cần lock Code trong D:\Test\testlock.xlsb =============> OK
2/ File cần lock Code trong D:\testlock.xlsb =============> lỗi ?!
3/ Tên File : KieuManh.xlsb =============> OK
4/ Tên File : Kieu Manh.xlsb =============> Lỗi ?!
5/ Tên Folder là tiếng Việt có dấu .... Tại sao sử dụng Fso mà không xử luôn vụ này ?!

6/ Nhiều thứ nữa mai mốt rảnh Mạnh quậy cho
 
Lần chỉnh sửa cuối:
Thử vầy xem sao nhé:
1/ File cần lock Code trong D:\Test\testlock.xlsb =============> OK
2/ File cần lock Code trong D:\testlock.xlsb =============> lỗi ?!
3/ Tên File : KieuManh.xlsb =============> OK
4/ Tên File : Kieu Manh.xlsb =============> Lỗi ?!
5/ Tên Folder là tiếng Việt có dấu .... Tại sao sử dụng Fso mà không xử luôn vụ này ?!

6/ Nhiều thứ nữa mai mốt rảnh Mạnh quậy cho
Trong Sub 'LockCode' (của module 'libLocker') tìm dòng :
PHP:
strFilePath = .GetParentFolderName(strFullName) & "\"
thay thế bằng 2 dòng sau :
PHP:
strFilePath = .GetParentFolderName(strFullName)
If Right$(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\"
(Các bạn xem mã nguồn tôi tải lại ở bài #1 và test tiếp nhé)
 
Trong Sub 'LockCode' (của module 'libLocker') tìm dòng :
PHP:
strFilePath = .GetParentFolderName(strFullName) & "\"
thay thế bằng 2 dòng sau :
PHP:
strFilePath = .GetParentFolderName(strFullName)
If Right$(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\"
(Các bạn xem mã nguồn tôi tải lại ở bài #1 và test tiếp nhé)
Trong cái Sub FileRename ... nếu là Mạnh viết xài Fso rồi thì sẻ làm như sau:
1/ Bỏ cái Hàm Dir kia đi thay thế vô đó là If Fso.FileExists(FilePath) Then ... vì hàm Dir này folder là tiếng viêt có dấu là lỗi
2/ Sử dụng ShortName để xử lý tên file là tiếng việt có dấu và tên file có khoãng cách ...
3/ Sử dụng ShortPath để xử lý Folder là tiếng việt có dấu ...

vậy là tạm ok xử lý được mấy cái lỗi thông thường
 
Trong cái Sub FileRename ... nếu là Mạnh viết xài Fso rồi thì sẻ làm như sau:
1/ Bỏ cái Hàm Dir kia đi thay thế vô đó là If Fso.FileExists(FilePath) Then ... vì hàm Dir này folder là tiếng viêt có dấu là lỗi
2/ Sử dụng ShortName để xử lý tên file là tiếng việt có dấu và tên file có khoãng cách ...
3/ Sử dụng ShortPath để xử lý Folder là tiếng việt có dấu ...

vậy là tạm ok xử lý được mấy cái lỗi thông thường
Tôi đã bỏ luôn cái Sub FileRename.... Tuy nhiên vẫn dính lỗi với thư mục tiếng Việt ở câu lệnh :
PHP:
Open strBinaryFile For Binary Access Read Write As #F1
(trong class cBinEditor). Các bạn có cách nào xử lý không nhỉ ?
 

File đính kèm

  • LabX_Fix01.xlsm
    575.1 KB · Đọc: 174
Cuối cùng các bác tự đập bát cơm của mọi người đang viết code vba chăng? Thế này các lớp học VBA đào tạo Excel của GPE đi tong hết - vì cần học cái khác, VBA đâu bảo mật
Bác thử mở khóa tập tin 'LabX_Version1.0.xlam' ở bài #1 xem nhé !
 
Các form giao diện của bạn khi xài trên laptop hoặc những máy có độ phân giải 'size text' không phải 100% ( lthường các laptop có màn hình nhỏ nhưng card đồ họa cao thì nó phải 125% nhìn mới ổn ) thì nó không hoạt động chính xác. Có form sẽ mất khúc dưới, có form sẽ mất bên trái, có form mất bên phải 1 ít.
 
Các form giao diện của bạn khi xài trên laptop hoặc những máy có độ phân giải 'size text' không phải 100% ( lthường các laptop có màn hình nhỏ nhưng card đồ họa cao thì nó phải 125% nhìn mới ổn ) thì nó không hoạt động chính xác. Có form sẽ mất khúc dưới, có form sẽ mất bên trái, có form mất bên phải 1 ít.
Tôi cũng chưa có điều kiện để test những trường hợp này, chỉ là tham khảo code và đoán để viết thôi, bạn nào quan tâm có thể chỉnh code trong:
PHP:
Friend Sub Polygon(PointL As Long, PointT As Long, PointW As Long, PointH As Long)
    Dim PointToPixelX#, PointToPixelY#, myPoint(4) As POINTAPI
    Const POINTSPERINCH = 72, LOGPIXELSX = 88, LOGPIXELSY = 90 'Logical pixels/inch in X,Y
    
    #If VBA7 Then
        Dim hDC As LongPtr, DrawRegion As LongPtr
    #Else
        Dim hDC As Long, DrawRegion As Long
    #End If
    
    hDC = GetDC(0)
    PointToPixelX = GetDeviceCaps(hDC, LOGPIXELSX) / POINTSPERINCH
    PointToPixelY = GetDeviceCaps(hDC, LOGPIXELSY) / POINTSPERINCH
                                                                    
    myPoint(0).x = PointToPixelX * PointL               '    Form_______________________x__
    myPoint(1).x = PointToPixelX * PointL               '    |     _________________
    myPoint(2).x = PointToPixelX * (PointL + PointW)    '    |    A                E \
    myPoint(3).x = PointToPixelX * (PointL + PointW)    '    |    |                   \
                                                        '    |    |     POLYGON       /D
    myPoint(0).Y = PointToPixelY * PointT               '    |    |                  /
    myPoint(1).Y = PointToPixelY * (PointT + PointH)    '   y|    B_________________/C
    myPoint(2).Y = PointToPixelY * (PointT + PointH)    '    |
    myPoint(3).Y = PointToPixelY * PointT
                                                                    
    DrawRegion = CreatePolygonRgn(myPoint(0), UBound(myPoint), 1)
    Call SetWindowRgn(myHWND, DrawRegion, True)
    Call DeleteObject(DrawRegion)
End Sub
Của class 'cFormUI' và những code trong UserForm.

Tuy nhiên, những code này thực sự chỉ để trang trí thôi. Nếu nó lỗi nhiều quá thì ta bỏ luôn, dùng lại hàm Msgbox của bác Bill (hiện tập tin này đang dùng hàm tự tạo MessageBin)
 
Đúng là mình đã từ bỏ, chơi hẳn 'hàng' của a Sốp cho mau lẹ, phù hợp nhiều tình huống.
 
Tôi đã bỏ luôn cái Sub FileRename.... Tuy nhiên vẫn dính lỗi với thư mục tiếng Việt ở câu lệnh :
Open strBinaryFile For Binary Access Read Write As #F1
(trong class cBinEditor). Các bạn có cách nào xử lý không nhỉ ?

Tôi không có nhu cầu nên cũng chả tải tập tin làm gì. Những nếu đường dẫn có ký tự unicode, vd. tiếng Việt, thì sẽ có lỗi. Open trong VBA không mở được tập tin với đường dẫn unicode.
Mạnh đã gợi ý rồi. Bạn hãy thử lấy đường dẫn ngắn từ đường dẫn full kia.
 
Trong cái Sub FileRename ... nếu là Mạnh viết xài Fso rồi thì sẻ làm như sau:
1/ Bỏ cái Hàm Dir kia đi thay thế vô đó là If Fso.FileExists(FilePath) Then ... vì hàm Dir này folder là tiếng viêt có dấu là lỗi
2/ Sử dụng ShortName để xử lý tên file là tiếng việt có dấu và tên file có khoãng cách ...
3/ Sử dụng ShortPath để xử lý Folder là tiếng việt có dấu ...

vậy là tạm ok xử lý được mấy cái lỗi thông thường
Kiều Mạnh hay bạn nào sửa được up lên cho mọi người coi với, tôi xin chịu nhé.
(Tập dưới đây dùng được với các file có đuôi *.bin |*.xls | *.xla,
Chưa áp dụng được với các file có đuôi *.xlsm | *.xlam | *xlsb)
 

File đính kèm

  • LabX_Fix01.xlsm
    575.7 KB · Đọc: 162
Web KT
Back
Top Bottom