Cách Mã Hóa Và Giải Mã Code VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,538
Được thích
4,133
Giới tính
Nam
Có một Bạn cho mình một file Excel .... mình coi code thấy họ mã hóa không hiểu được.... vậy mình muốn hỏi sử dụng công cụ nào mà mã hóa code ra như vậy.. hay đó là một ngôn ngữ lập trình mới vv ...
Rất mong các thành cùng tham gia nghiên cứu và viên Trợ Giúp
xin cảm ơn

Mình mới sửa lại bài viết tiếng Anh ...tiếng viết nhảy lung tung do mình để Anh Google Auto Dich nên mới vậy
Xin lỗi rất nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Mình ban be mot nguoi cung cấp cho one file Excel .... mình coi in which thì thấy mã be mã hóa .... vậy mình muốn hỏi sử dụng công cụ nào to mã hóa such ... that là hay ngôn ngữ mới vv ...
nhiều mộng members of mình giúp đỡ
xin cảm ơn
PHP:
Sub qwertyuiopsdfwy (qwertyuiopsdyt, qwertyuiopsdts, qwertyuiopsdyq, qwertyuiopsdyu, qwertyuiopsdye, qwertyuiopsdyr): qwertyuiopsdre Dim As Integer: Dim qwertyuiopsdyy As Integer Dim qwertyuiopsdyi: qwertyuiopsdyy = qwertyuiopsdfgpy: qwertyuiopsdyi = qwertyuiopsdfgeu: Sheets (qwertyuiopsdyt) .Visible = qwertyuiopsdfgew: Đặt qwertyuiopsdey = Sheets (qwertyuiopsdyt): Sheets (qwertyuiopsdyt) .Copy: Với ActiveSheet: Rows (qwertyuiopsdfgsu) .Insert: qwertyuiopsdre = .Cells (Rows.Count, qwertyuiopsdfgis ). End (xlUp) .RowIf qwertyuiopsdye = qwertyuiopsdyr Thenqwertyuiopsdyu = qwertyuiopsdfgsi & Format (qwertyuiopsdye, qwertyuiopsdfgoe): End Nếu: Với Range (qwertyuiopsdfgso): .Value = qwertyuiopsdyq: .HorizontalAlignment = xlCenter: .Font.Size = qwertyuiopsdfgpp: End With: Với Range (qwertyuiopsdfgsp): .Value = Replace (Replace (qwertyuiopsdyu, qwertyuiopsdfgss, Format (qwertyuiopsdye, qwertyuiopsdfgoe)), qwertyuiopsdfgsd, Format (qwertyuiopsdyr, qwertyuiopsdfgoe)): .HorizontalAlignment = xlCenter: .Font.Italic = qwertyuiopsdfgew: End Nếu qwertyuiopsdre> qwertyuiopsdfgtr + qwertyuiopsdyi ThenRange (qwertyuiopsdfgp & qwertyuiopsdre + qwertyuiopsdfgeu) .Value = .Range (qwertyuiopsdfgp & qwertyuiopsdfgtr + qwertyuiopsdyi) .Value: Range (qwertyuiopsdfgp & qwertyuiopsdre + qwertyuiopsdfgtr) .Value = qwertyuiopsdfgod & qwertyuiopsdye: Range (qwertyuiopsdfge & qwertyuiopsdre + qwertyuiopsdfgeu). Value = .Range (qwertyuiopsdfgp & qwertyuiopsdfgtr + qwertyuiopsdyi) .Value: Range (qwertyuiopsdfge & qwertyuiopsdre + qwertyuiopsdfgtr) .Value = qwertyuiopsdfgpe & Format (DateAdd (qwertyuiopsdfgou, qwertyuiopsdfgwt, qwertyuiopsdyr), qwertyuiopsdfgsf) Range (qwertyuiopsdfgto & qwertyuiopsdfgtr + qwertyuiopsdyi & qwertyuiopsdfgsg & qwertyuiopsdre) .AdvancedFilter Action: = xlFilterCopy, CriteriaRange: = Range (qwertyuiopsdfgp & qwertyuiopsdre + qwertyuiopsdfgeu & qwertyuiopsdfgee & qwertyuiopsdfge & qwertyuiopsdre + qwertyuiopsdfgtr), CopyToRange: = Range (qwertyuiopsdfgto & qwertyuiopsdre + qwertyuiopsdyy), Unique: = qwertyuiopsdfgg: Range (qwertyuiopsdfgto & qwertyuiopsdre + qwertyuiopsdyy - qwertyuiopsdfgwt) .Select: Range (Selection, Selection.End (xlUp)) Chọn: Range (Selection, Selection.End (xlUp)) SelectSelection.EntireRow.Delete Shift: = xlUp: qwertyuiopsdre = .Cells .. ( Rows.Count, qwertyuiopsdfgeu) .End (xlUp) .Row: Range (qwertyuiopsdfgrs & qwertyuiopsdfgeu + qwertyuiopsdyi) .Formula = qwertyuiopsdfgdq & qwertyuiopsdfgtr + qwertyuiopsdyi & qwertyuiopsdfgdw & qwertyuiopsdre & qwertyuiopsdfgde: Range (qwertyuiopsdfgsr) = qwertyuiopsdfgwtIf qwertyuiopsdre> qwertyuiopsdfgis ThenRange (qwertyuiopsdfgdr) = qwertyuiopsdfgeu: Nếu qwertyuiopsdre> qwertyuiopsdfgpy Sau đó, Range (qwertyuiopsdfgdt) .AutoFill Range (qwertyuiopsdfgdy & qwertyuiopsdre) End If: End Nếu: .name = qwertyuiopsdts: End With: ActiveWindow.FreezePanes = qwertyuiopsdfgg: End Sub

làm sao chạy nó vậy bạn, nhấn "run macro" nó ra một cái cửa sổ macro ko có module nào trong đó hết?
 
Upvote 0
Vậy mình úp File gốc lên ta cùng nhau nghiên cứu quậy chơi nha.
 

File đính kèm

Upvote 0
Mình ban be mot nguoi cung cấp cho one file Excel .... mình coi in which thì thấy mã be mã hóa .... vậy mình muốn hỏi sử dụng công cụ nào to mã hóa such ... that là hay ngôn ngữ mới vv ...
nhiều mộng members of mình giúp đỡ
xin cảm ơn

Chưa nói đến code, chỉ đọc nguyên văn câu hỏi trên cũng chả hiểu chú nói gì
???!!!
Cứ như là tiếng Miên trộn với tiếng Anh
 
Upvote 0
[QUOTE = ndu96081631; 669,113] Chưa nói đến ma, chỉ đọc nguyên văn câu hỏi trên mà chả hiểu chú nói gì
??? !!!
Cứ như tiếng Miên trộn cho tiếng Anh [/QUOTE]

Không biết mạng hôm nay nó sao ấy Em viết tiếng Việt nó cứ nhảy ra tiếng Anh ...
Ý Em muốn hỏi dùng công cụ nào mà mã hóa code ra như vậy..... hay đó là ngôn ngữ lập trình mới gì .........
 
Lần chỉnh sửa cuối:
Upvote 0
[QUOTE = ndu96081631; 669,113] Chưa nói đến ma, chỉ đọc nguyên văn câu hỏi trên mà chả hiểu chú nói gì
??? !!!
Cứ như tiếng Miên trộn cho tiếng Anh


Mình nhớ có 1 lần vọc có 1 cái tool cài vào excel. Nó mã hoá ra như vậy nhưng nó đòi bản quyền nên gỡ ra mất tiêu.

hình như tool này
http://www.datasafexl.com/protect-vba-code
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Upvote 0
trong lúc tìm theo đường link của bạn QuocPhuoc, tôi thấy link này
bạn thử xem (thấy miễn phí), tôi thấy mấy cái .exe này ít khi dám chơi lắm.....hiihihihi
http://download.com.vn/download/protect-vba-code/26152


RET7rSAIWEGi6hxSzRNbnWffL72dT5TQGtrZLUkNs97StagIhpCD5PZZOuxQia5h_lgkKN5Htodi1WJtCDNnqKcBzwS7vCYyHR_hH-XTTTZ4kcnf-LR_7171eBi1kMQCtom8KGKJAWpzUMq76V7rLbSysWkKwhHqAxGTM--xEaDL6Cq0DezCjtgf5Jwug2GkJ9T90TtqllruRA2KliZuDHkug34-6_eF7VTwSrt8BOIONCgSU_7W_cG9pUOr3ptNocltCLfdnmvV0vrhXP5ZM6bMSMWQfHWHEyVTcHRtV-F3anIt2L1ELiTYgGWscmCN3FXVVnTpf5FuUO2vhSYAijFuuv6F1jEh7rJy9oDF80UYGiYVMXvvLNTOYMpNphhOzJkUrT7JmtvQgSSnm0uXUCXZooN-47PYLtviURpgUUTT_nI4rNepLb-0-WJWhHWckfXGN5fTXcU6kB15wuchk-HEEmfItCO_KRxF3KnZJaGzJOv6ZNCGn80TWoSX94_NED0rkQ=w1032-h500-no
 
Upvote 0
Mới tải cái Add-ins đó về coi mà không biết xài .... Bạn chỉ cho xài với....
Mình nhớ là cài vào. Chọn file cần mã hoá, mình nhớ nó có thể:
- xoá hết comment trong code
- chỉnh code ra dạng tùm lum gì đó cho rối mắt khỏi đọc
- có 1 vài chức năng giống Lockxls nữa thì phải
Mình nhác cài vào rồi vọc ( vì hết ham máy vụ này ) nên có gì bạn vọc nhé ! //**///**/
 
Upvote 0
ủa tôi đọc kỹ lại thấy nó có khai báo mà???
Mã:
Public Const qwertyuiopsdfgwf = "Percent": Public Const qwertyuiopsdfgwg = "#,##0": Public Const qwertyuiopsdfgeq = "OrderTime": Public Const qwertyuiopsdfgew = True: Public Const qwertyuiopsdfgee = ":": Public Const qwertyuiopsdfger = "B7": Public Const qwertyuiopsdfget = 8: Public Const qwertyuiopsdfgey = "B9": Public Const qwertyuiopsdfgeu = 2: Public Const qwertyuiopsdfgei = 9
Public Const qwertyuiopsdfgeo = "B8:B9"
Public Const qwertyuiopsdfgep = "B8:B"
Public Const qwertyuiopsdfges = "8:"
Public Const qwertyuiopsdfged = "9:"
 
Upvote 0
ủa tôi đọc kỹ lại thấy nó có khai báo mà???
Mã:
Public Const qwertyuiopsdfgwf = "Percent": Public Const qwertyuiopsdfgwg = "#,##0": Public Const qwertyuiopsdfgeq = "OrderTime": Public Const qwertyuiopsdfgew = True: Public Const qwertyuiopsdfgee = ":": Public Const qwertyuiopsdfger = "B7": Public Const qwertyuiopsdfget = 8: Public Const qwertyuiopsdfgey = "B9": Public Const qwertyuiopsdfgeu = 2: Public Const qwertyuiopsdfgei = 9
Public Const qwertyuiopsdfgeo = "B8:B9"
Public Const qwertyuiopsdfgep = "B8:B"
Public Const qwertyuiopsdfges = "8:"
Public Const qwertyuiopsdfged = "9:"

có khai báo biến thì vẫn có nguy cơ bị Doveandrose đọc hiểu code rồi anh ơi . như vậy chưa an toàn
anh phải nghĩ cách gì đó mã hóa mà toàn bộ project VBA chỉ gồm 2 từ
"Kiều" và "Mạnh" ví dụ

Kiều Mạnh Mạnh
Mạnh Kiều Kiều Mạnh Kiều
Kiều Kiều Kiều Mạnh Mạnh ........
vậy mới an toàn --=0--=0--=0
 
Upvote 0
có khai báo biến thì vẫn có nguy cơ bị Doveandrose đọc hiểu code rồi anh ơi . như vậy chưa an toàn
anh phải nghĩ cách gì đó mã hóa mà toàn bộ project VBA chỉ gồm 2 từ
"Kiều" và "Mạnh" ví dụ

Kiều Mạnh Mạnh
Mạnh Kiều Kiều Mạnh Kiều
Kiều Kiều Kiều Mạnh Mạnh ........
vậy mới an toàn --=0--=0--=0
Từ từ đi khui ra hết............File này mình nghĩ là của một thành viên GPE ....cao thủ hay sao ấy....đang nấp sau bui cây....chưa lộ diện thôi...--=0--=0--=0
 
Upvote 0
Anh Mạnh bật mí mật khẩu unprotect mấy sheet trong file với ạh?
đó là người ta khóa.... không phải Mạnh Khóa....sử dụng code trên GPE mở 1s thôi mà ...xong vào Sheet Menu xóa code sau đi là hết Pass họ để chế độ Private Sub Worksheet_ActivatePrivate Sub Worksheet_Deactivate
Từ từ nghiên cứu ko phải là vấn đề khó.....mới thấy dối mắt vậy thôi....
 
Upvote 0
Anh Mạnh bật mí mật khẩu unprotect mấy sheet trong file với ạh?
[gpecode=vb]Sub qwertyuiopsdfs(): Dim qwertyuiopsdty As Worksheet: For Each qwertyuiopsdty In ThisWorkbook.SheetsIf InStr(qwertyuiopsdfguu, qwertyuiopsdfgui & qwertyuiopsdty.name & qwertyuiopsdfgui) = qwertyuiopsdfgti Then
qwertyuiopsdty.Visible = xlSheetVeryHidden
Else: qwertyuiopsdty.Visible = xlSheetVisible: End If
If InStr(qwertyuiopsdfguo, qwertyuiopsdfgui & qwertyuiopsdty.name & qwertyuiopsdfgui) = qwertyuiopsdfgti Then
qwertyuiopsdty.Unprotect qwertyuiopsdty.name
Else: qwertyuiopsdty.Protect qwertyuiopsdty.name: End If: Next qwertyuiopsdty: End Sub[/gpecode]
Theo như code trên thì mật khẩu của mỗi Sheet chính là tên của Sheet đó. (qwertyuiopsdty.name)
 
Upvote 0
[gpecode=vb]Sub qwertyuiopsdfs(): Dim qwertyuiopsdty As Worksheet: For Each qwertyuiopsdty In ThisWorkbook.SheetsIf InStr(qwertyuiopsdfguu, qwertyuiopsdfgui & qwertyuiopsdty.name & qwertyuiopsdfgui) = qwertyuiopsdfgti Then
qwertyuiopsdty.Visible = xlSheetVeryHidden
Else: qwertyuiopsdty.Visible = xlSheetVisible: End If
If InStr(qwertyuiopsdfguo, qwertyuiopsdfgui & qwertyuiopsdty.name & qwertyuiopsdfgui) = qwertyuiopsdfgti Then
qwertyuiopsdty.Unprotect qwertyuiopsdty.name
Else: qwertyuiopsdty.Protect qwertyuiopsdty.name: End If: Next qwertyuiopsdty: End Sub[/gpecode]
Theo như code trên thì mật khẩu của mỗi Sheet chính là tên của Sheet đó. (qwertyuiopsdty.name)
Không Phải Bạn vào Sheet XuatBan nhập Passs là nó Luôn XuatBan
PHP:
ActiveSheet.Protect ActiveSheet.name
 
Upvote 0
Không Phải Bạn vào Sheet XuatBan nhập Passs là nó Luôn XuatBan
PHP:
ActiveSheet.Protect ActiveSheet.name
Thì đó, cái Sub mình trích dẫn ở trên để thực hiện việc ẩn hiện, và khóa, mở khóa các Sheet bằng tên của Sheet đó mà.
Quay lại vấn đề của Topic thì có lẽ ở VBA sẽ không thể tự nó encode và decode được, vì sẽ lại phải có code để thực hiện encode và decode đó. Có chăng thì ta có thể "bảo mật" code bằng cách "giấu" các code của module ra 1 file ngoài (ví dụ: txt) rồi mỗi lần khi cần sử dụng thì nạp code vào file excel.
 
Upvote 0
Thì đó, cái Sub mình trích dẫn ở trên để thực hiện việc ẩn hiện, và khóa, mở khóa các Sheet bằng tên của Sheet đó mà.
Quay lại vấn đề của Topic thì có lẽ ở VBA sẽ không thể tự nó encode và decode được, vì sẽ lại phải có code để thực hiện encode và decode đó. Có chăng thì ta có thể "bảo mật" code bằng cách "giấu" các code của module ra 1 file ngoài (ví dụ: txt) rồi mỗi lần khi cần sử dụng thì nạp code vào file excel.
Bạn nói không hiểu lắm.......
 
Upvote 0
có khai báo biến thì vẫn có nguy cơ bị Doveandrose đọc hiểu code rồi anh ơi . như vậy chưa an toàn
anh phải nghĩ cách gì đó mã hóa mà toàn bộ project VBA chỉ gồm 2 từ
"Kiều" và "Mạnh" ví dụ

Kiều Mạnh Mạnh
Mạnh Kiều Kiều Mạnh Kiều
Kiều Kiều Kiều Mạnh Mạnh ........
vậy mới an toàn --=0--=0--=0

Chứ vầy hổng MẠNH hơn à:
chim câu hồng
hồng câu chim
câu chim hồng

vân vân... và... mây mây...
vào cửa sổ VBA, chỉ toàn thấy có hồng và chim, rối mù luôn --=0
 
Upvote 0
cái này chỉ là mã hóa tên hằng, biến và hàm cho rối mắt thôi.
đại loại là thay xuống dòng bằng ": ", hằng bắt đầu bằng "qwertyuiopsdfg", biến và hàm bắt đầu bằng "qwertyuiopsd", ""qwerty" mà kiểu bàn phím.
đoán mò: tác giả có 1 hoặc 2 bảng liên kê tên các loại nói trên, thay tên bằng mấy ký tự trên và chỉ mục của nó.
làm cách này sẽ rất mệt nếu có quá nhiều tên.
cách khac: đặt tên hàm , biến có các ký tự đầu hoặc cuổi để nhận dạng, mã hóa theo quy tắc nào đó. tuy nhiên cách này dễ giải mã hơn cách trên
 
Upvote 0
cái này chỉ là mã hóa tên hằng, biến và hàm cho rối mắt thôi.
đại loại là thay xuống dòng bằng ": ", hằng bắt đầu bằng "qwertyuiopsdfg", biến và hàm bắt đầu bằng "qwertyuiopsd", ""qwerty" mà kiểu bàn phím.
đoán mò: tác giả có 1 hoặc 2 bảng liên kê tên các loại nói trên, thay tên bằng mấy ký tự trên và chỉ mục của nó.
làm cách này sẽ rất mệt nếu có quá nhiều tên.
cách khac: đặt tên hàm , biến có các ký tự đầu hoặc cuổi để nhận dạng, mã hóa theo quy tắc nào đó. tuy nhiên cách này dễ giải mã hơn cách trên

tôi nghĩ lúc đâu tác giả chưa khai biến toàn cục, mà viết code thông thường thôi dạng như Range("B2:B"......)gì gì đó,
sau khi hoàn tất, anh ta dùng Ctrl F thay thế nguyên cả cụm Rang("B...............") thành chuổi qwert............
cuối cùng thì khai báo biến toàn cục
nói chung là rất công phu
==========
 
Upvote 0
tôi nghĩ lúc đâu tác giả chưa khai biến toàn cục, mà viết code thông thường thôi dạng như Range("B2:B"......)gì gì đó,
sau khi hoàn tất, anh ta dùng Ctrl F thay thế nguyên cả cụm Rang("B...............") thành chuổi qwert............
cuối cùng thì khai báo biến toàn cục
nói chung là rất công phu
==========

Dạng như là: Mua một con siêu xe nhưng lại sợ ăn trộm rình lấy mất nên phải bảo vệ. Nghĩ tới nghĩ lui, thấy khóa cách gì thằng ăn trộm nó cũng mở được nên đã lấy cục phân trâu trét lên đầy xe để ngụy trang. Thằng ăn trộm có vào được thì cũng vì.. khó "ngửi" quá mà bỏ qua luôn
Ẹc... Ẹc... --=0
 
Upvote 0
Như là: Mua con siêu xe nhưng lại sợ ăn trộm rình lấy mất nên phải . . . . Nghĩ tới khóa cách gì thằng ăn trộm nó cũng mở được nên đã lấy cục phân trét lên đầy xe để ngụy trang.
Thằng ăn trộm có vào được thì cũng vì.. khó "ngửi" quá mà bỏ qua luôn . . .

& Trên diễn đàn này không hiếm thằng ăn trộm không khoái fân, fải hôn!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom