Có cách nào không cho xem code trong VBA không

Liên hệ QC

congnguyen88

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/7/14
Bài viết
356
Được thích
31
tôi nghe nói Khóa pass trong VBA anh em trong diễn dàn bẽ 3 giây là xong, như vậy thành quả của mình chắc đổ ra sông ra biển hết. vậy có cách nào khóa không cho người ta xem không,
 
DLL là ngon lành rồi. Còn không thì dùng phần mềm khác để viết (VB6, C chẳng hạn...), cuối cùng đóng gói thành EXE
Nói chung cách không phải là không có. Nhưng.... chúng ta cứ "say sưa" tìm cách nào đó để khóa "tài sản" của chúng ta, cuối cùng có thể nhận ra một nghịch lý rằng: "Cái két sắt còn đắt tiền gấp 100 lần tài sản chứa trong đó" --=0
Ẹc... Ẹc.... các bạn nghĩ sao? Còn tôi thì nghĩ đơn giản: Nâng cao vốn kiến thức của mình, đến khi nào cái vốn ấy thật sự lớn hơn cái két sắt kia rồi hẳn tính bảo vệ cũng chưa muộn
(tự dưng nhớ đến cái ổ khóa mà thằng bạn tôi dùng để khóa chiếc xe đạp cùi của nó quá)

Thích comment này :)

Dám cá với bạn rằng: dù XLS hay XLSM thì việc phá khóa đều như nhau và việc đặt pass dài hay ngắn đều không ảnh hưởng gì đến tốc độ "phá" cả. Tôi vẫn chỉ cần 3s!
Nếu bạn không tin, cứ đưa 1 file XLSM với mật mã dài tùy ý. Tôi sẽ quay video cho bạn xem tôi "phá" nó bằng cách nào

Cũng tò mò tí, nhờ anh ndu96081631 view giúp. (Đây chỉ là cái file test để em mở tầm mắt thôi, không phải "thừa nước đục thả câu" để nhờ view mấy cái file của người khác đâu :) )
 

File đính kèm

  • Test.xls
    39 KB · Đọc: 64
Upvote 0
Thích comment này :)



Cũng tò mò tí, nhờ anh ndu96081631 view giúp. (Đây chỉ là cái file test để em mở tầm mắt thôi, không phải "thừa nước đục thả câu" để nhờ view mấy cái file của người khác đâu :) )
Cái này có khó gì đâu bạn ơi, chỉ cần dùng HexEdit rồi search cụm từ CMG sau đó xóa cái phần trong ngoặc kép ("") của nó thôi là được chứ gì đâu!
 
Upvote 0
Dám cá với bạn rằng: dù XLS hay XLSM thì việc phá khóa đều như nhau và việc đặt pass dài hay ngắn đều không ảnh hưởng gì đến tốc độ "phá" cả. Tôi vẫn chỉ cần 3s!
Nếu bạn không tin, cứ đưa 1 file XLSM với mật mã dài tùy ý. Tôi sẽ quay video cho bạn xem tôi "phá" nó bằng cách nào

Chào bác, "...3s" - đây là câu nói đùa thôi. Còn theo em 3s thì hoàn toàn có thể bởi vì đấy là "phá khoá" chứ không phải là "đoán ra khoá", em chỉ tò mò là 3s của bác bắt đầu từ thời điểm nào thôi? (Bác PM em cái video nhé :p )

3. Bạn nói là "vậy có cách nào khóa không cho người ta xem không":

Còn tuỳ: có và không.

  • Nếu người ta = "chả biết gì về điện" : thì bạn lo gì nữa, chả cần khoá, mà nhìn cũng chả hiểu ...
  • Nếu người ta = cao thủ : có khoá cũng không được, thà không khoá cho xong đỡ mất thời gian.


Tuy nhiên: bạn có thể hạn chế được 1 số người có thể đọc được code VBA của bạn bằng 1 trong những cách sau từ dễ đến khó:



  1. Lưu file có chứa macro/VBA dưới dạng *.xlsm và dùng 1 mật khẩu đủ mạnh (Cách này ước tính 85% anh em diễn đàn biết và 50% anh em có khả năng phá khoá nhưng sẽ không ai phá của bạn cả)

Em nói là cách 1 sẽ hạn chế được 1 số người,bởi vì không phải ai nhận file cũng có nhu cầu phá khoá, mà không phải ai cũng biết cách 3s cả, đặt mật khẩu đủ mạnh ở đây để giúp cho mật khẩu không bị đoán ra 1 cách dễ dàng mà thôi

Còn các cách khác và 1 số khía cạch khác đã phân tích ở câu trả lời trước và vấn đề không phải là phá được khoá trong bao nhiêu giây mà vấn đề là hạn chế được bao nhiêu người dùng nhìn thấy code và hạn chế được đến đâu.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào bác, "...3s" - đây là câu nói đùa thôi. Còn theo em 3s thì hoàn toàn có thể bởi vì đấy là "phá khoá" chứ không phải là "đoán ra khoá", em chỉ tò mò là 3s của bác bắt đầu từ thời điểm nào thôi? (Bác PM em cái video nhé :p )

1) Theo bạn, Bạn cần biết code họ viết thế nào hay bạn cần biết khóa? Còn tôi thì chẳng quan tâm họ khóa cái gì, chỉ cần biết họ viết cái gì trong code.

2) Nếu không phải dùng Unviewable (vì mở cái này phải cần đến HexEdit sẽ lâu hơn), mà chỉ khóa code VBA thông thường, thì thời điểm file bị khóa mở ra, file nguồn để mở khóa cũng được mở ra, vào thời điểm cả 2 file đã được mở, tôi nghĩ 3 giây có quá chậm không ta? Chỉ cần một cái click, rồi Alt+F11, code đã được mở ra!
 
Upvote 0
1) Theo bạn, Bạn cần biết code họ viết thế nào hay bạn cần biết khóa? Còn tôi thì chẳng quan tâm họ khóa cái gì, chỉ cần biết họ viết cái gì trong code.2) Nếu không phải dùng Unviewable (vì mở cái này phải cần đến HexEdit sẽ lâu hơn), mà chỉ khóa code VBA thông thường, thì thời điểm file bị khóa mở ra, file nguồn để mở khóa cũng được mở ra, vào thời điểm cả 2 file đã được mở, tôi nghĩ 3 giây có quá chậm không ta? Chỉ cần một cái click, rồi Alt+F11, code đã được mở ra!
1 -> Có trường hợp cần biết khoá. Mỗi người có nhu cầu khác nhau, bác quan tâm tới code thì cứ phá xong để xem được là xong việc rồi, người ta quan tâm cái khác.

2 -> Đấy là cái thời điểm mà em muốn nói đến đấy, sẵn hết ra đấy rồi chỉ cần click nữa thôi thì ...
 
Upvote 0
Cái này có khó gì đâu bạn ơi, chỉ cần dùng HexEdit rồi search cụm từ CMG sau đó xóa cái phần trong ngoặc kép ("") của nó thôi là được chứ gì đâu!

Hình như không phải chỉ tìm đến CMG và xóa cái dãy số trong ngoặc kép là view đc code đâu anh ơi. em thử làm nhưng chỉ xem được các sheet thôi, còn ngoài ra các modul đều "mất hút" hihi
 
Upvote 0
1 -> Có trường hợp cần biết khoá. Mỗi người có nhu cầu khác nhau, bác quan tâm tới code thì cứ phá xong để xem được là xong việc rồi, người ta quan tâm cái khác.

2 -> Đấy là cái thời điểm mà em muốn nói đến đấy, sẵn hết ra đấy rồi chỉ cần click nữa thôi thì ...

Mở file có file thì có máy mở chậm, máy mở nhanh, hoặc file có dung lượng lớn sẽ mở ra lâu, chứ đâu phải mở ra là chỉ 1 giây đâu bạn? Thế phần mềm nào bẻ khóa mà không chờ mở cái phần mềm đó ra chứ!

Khi có chìa khóa vạn năng, "thằng ăn trộm", "thằng tò mò" nào đó, có cần biết cái chìa khóa nhà bạn là gì không? Hay nó muốn khám phá tiền, vàng, đồ đạc của bạn!?
 
Upvote 0
Mở file có file thì có máy mở chậm, máy mở nhanh, hoặc file có dung lượng lớn sẽ mở ra lâu, chứ đâu phải mở ra là chỉ 1 giây đâu bạn? Thế phần mềm nào bẻ khóa mà không chờ mở cái phần mềm đó ra chứ!

Khi có chìa khóa vạn năng, "thằng ăn trộm", "thằng tò mò" nào đó, có cần biết cái chìa khóa nhà bạn là gì không? Hay nó muốn khám phá tiền, vàng, đồ đạc của bạn!?

Đồng ý với bác máy mở nhanh máy mở chậm.

Với chìa khoá vạn năng thì bác sợ sánh khắp không rồi. Chìa khoá vạn năng vẫn là chìa khoá không phải phá khoá mà vẫn mở được khoá.

Còn trường hợp cần có khoá mà không phá thì em xin để lại cho câu trả lời sau nếu ai thực sự muốn biết.
 
Upvote 0
Đồng ý với bác máy mở nhanh máy mở chậm.

Với chìa khoá vạn năng thì bác sợ sánh khắp không rồi. Chìa khoá vạn năng vẫn là chìa khoá không phải phá khoá mà vẫn mở được khoá.

Còn trường hợp cần có khoá mà không phá thì em xin để lại cho câu trả lời sau nếu ai thực sự muốn biết.
Quan trọng, đi vào trọng tâm chủ đề này: việc "giấu" code trong VBA là rất "lỏng", còn việc mở nhanh, mở chậm thì vẫn là mở và xem được code thôi.
Tùy vào trình độ của người dùng và người làm ra code mà lựa chọn phương pháp "giấu tạm thời" phù hợp thôi.
Theo tôi, thông thường chỉ cần unviewable là cũng "giấu" được khá tốt với một số người rồi.
Dùng công cụ Obfuscation cũng rất hay, giống như việc encode và decode hay dùng trong viết php/ script, người ta vẫn thường dùng để mã hóa, tránh tò mò của một số người.
Còn cao hơn dùng DLL là khá ổn, việc tìm hiểu để dịch ngược lại DLL rồi hiểu được code dịch ngược đó (có thể đó là ngôn ngữ assembly) là một cản trở không nhỏ.
Do vậy, nếu kiến thức có thể chia sẻ được thì cứ chia sẻ cho đồng nghiệp, bạn bè, khi bạn bè, đồng nghiệp ta còn đang nghiên cứu đống code của ta thì ta đã lại nghiên cứu được cái cao siêu hơn rồi ^^
 
Upvote 0
Quan trọng, đi vào trọng tâm chủ đề này: việc "giấu" code trong VBA là rất "lỏng", còn việc mở nhanh, mở chậm thì vẫn là mở và xem được code thôi.
Tùy vào trình độ của người dùng và người làm ra code mà lựa chọn phương pháp "giấu tạm thời" phù hợp thôi.
Theo tôi, thông thường chỉ cần unviewable là cũng "giấu" được khá tốt với một số người rồi.
Dùng công cụ Obfuscation cũng rất hay, giống như việc encode và decode hay dùng trong viết php/ script, người ta vẫn thường dùng để mã hóa, tránh tò mò của một số người.
Còn cao hơn dùng DLL là khá ổn, việc tìm hiểu để dịch ngược lại DLL rồi hiểu được code dịch ngược đó (có thể đó là ngôn ngữ assembly) là một cản trở không nhỏ.
Do vậy, nếu kiến thức có thể chia sẻ được thì cứ chia sẻ cho đồng nghiệp, bạn bè, khi bạn bè, đồng nghiệp ta còn đang nghiên cứu đống code của ta thì ta đã lại nghiên cứu được cái cao siêu hơn rồi ^^

Chào bác,
Tất những ý trên (obfuscation, dll) em cũng nói trong câu trả lời tổng hợp đầu tiên rồi. Không nhắc lại nữa.
Em không ý kiến về việc các bác mất bao thời gian để phá code.
 
Upvote 0
Hình như không phải chỉ tìm đến CMG và xóa cái dãy số trong ngoặc kép là view đc code đâu anh ơi. em thử làm nhưng chỉ xem được các sheet thôi, còn ngoài ra các modul đều "mất hút" hihi
Khóa UnViewable làm người ta thao tác thủ công hơn trên HexEdit thôi, chứ cũng không làm khó người ta được bạn ơi.

Code trong file đó:

Module:

Mã:
Sub showmessage()
UserForm1.Show
End Sub

Trong Form:

Mã:
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
 

File đính kèm

  • TestForm.jpg
    TestForm.jpg
    85.8 KB · Đọc: 192
Upvote 0
Chào bác, "...3s" - đây là câu nói đùa thôi. Còn theo em 3s thì hoàn toàn có thể bởi vì đấy là "phá khoá" chứ không phải là "đoán ra khoá", em chỉ tò mò là 3s của bác bắt đầu từ thời điểm nào thôi? (Bác PM em cái video nhé :p )
.

Có thể bạn mới tham gia diễn đàn nên chưa biết vụ này
Đầu tiên hãy xem qua topic:
http://www.giaiphapexcel.com/forum/showthread.php?72632-Có-thể-dùng-vba-để-xóa-vba-đc-không/page5
đặc biệt là từ bài 41 nhé
Tôi dùng file ở bài 41 save thành xla, chế thêm một chút, tao thành 1 tool trên Ribbon. Từ giờ, khi tôi muốn xem code VBA bất cứ file nào đang bị khóa, tôi làm như sau:
- Mở file ấy lên
- Bấm nút "phá" trên thanh Ribbon (3s được tính từ lúc bấm nút)
thế là xong, mọi thứ hiện ra trước mắt
Vậy theo bạn, con số 3s có phải là hơi nói... thách không? Tôi nghĩ chỉ 1s mới đúng!
Biểu diễn sơ qua cho mọi người xem trong video clip này

[video=youtube;yXkQDoMrK9w]https://www.youtube.com/watch?v=yXkQDoMrK9w&feature=youtu.be[/video]


Chiêu này cả đống người biết
Việc "phá" này ta đâu cần phải rành, chỉ cần search google, tìm công cụ phù hợp rồi xài thôi. Thành ra người chuyên hay không chuyên đều mần được cả
Điều đặc biệt ở đây là: Sau khi "phá" xong, pass VBA vẫn còn chứ không bị phá nha. Tức là: Mở cửa vào xem, lấy gì cứ lấy, xong lại khóa mọi thứ trở về nguyên trạng
 
Lần chỉnh sửa cuối:
Upvote 0
- Bấm nút "phá" trên thanh Ribbon (3s được tính từ lúc bấm nút) thế là xong, mọi thứ hiện ra trước mắt
Vậy theo bạn, con số 3s có phải là hơi nói... thách không? Tôi nghĩ chỉ 1s mới đúng!
Nó ghê vậy ta! Ghê quá! Nó đâu mở 1 file, tất cả các file Excel đang mở, nếu có pass VBA nó cho coi thoải mái, thậm chí pass VBA của thằng Excel luôn mới gứm chứ!--=0--=0--=0
 
Upvote 0
Có thể bạn mới tham gia diễn đàn nên chưa biết vụ này
Đầu tiên hãy xem qua topic:
http://www.giaiphapexcel.com/forum/showthread.php?72632-Có-thể-dùng-vba-để-xóa-vba-đc-không/page5
đặc biệt là từ bài 41 nhé
Tôi dùng file ở bài 41 save thành xla, chế thêm một chút, tao thành 1 tool trên Ribbon. Từ giờ, khi tôi muốn xem code VBA bất cứ file nào đang bị khóa, tôi làm như sau:
- Mở file ấy lên
- Bấm nút "phá" trên thanh Ribbon (3s được tính từ lúc bấm nút)
thế là xong, mọi thứ hiện ra trước mắt
Vậy theo bạn, con số 3s có phải là hơi nói... thách không? Tôi nghĩ chỉ 1s mới đúng!
Biểu diễn sơ qua cho mọi người xem trong video clip này

[video=youtube;yXkQDoMrK9w]https://www.youtube.com/watch?v=yXkQDoMrK9w&feature=youtu.be[/video]


Chiêu này cả đống người biết
Việc "phá" này ta đâu cần phải rành, chỉ cần search google, tìm công cụ phù hợp rồi xài thôi. Thành ra người chuyên hay không chuyên đều mần được cả
Điều đặc biệt ở đây là: Sau khi "phá" xong, pass VBA vẫn còn chứ không bị phá nha. Tức là: Mở cửa vào xem, lấy gì cứ lấy, xong lại khóa mọi thứ trở về nguyên trạng


bác hiểu nhầm ý em rồi, em nói các thứ sẵn hết ra đấy rồi thì 3s thì hơi chậm :))
 
Upvote 0
bác hiểu nhầm ý em rồi, em nói các thứ sẵn hết ra đấy rồi thì 3s thì hơi chậm :))
Cho đến thời điểm này tôi chưa thấy phần mềm hay chương trình nào có thể nhanh hơn code đó. Nếu bạn có chương trình nào chạy nhanh hơn, tôi mời bạn một chầu!
 
Upvote 0
Chào các bác em có tìm hiểu các cách trên của các bác nên em xin gửi các bác xem file xla của em đã: tạo pass open (không nhập trực tiếp từ bàn phím được), kế theo pass sheet, workbook + vba.
Mong các bác có thể trả lời giúp em là các bác có thể xem được vba+macro4 trong file của em không?!
- TH1: Nếu có thì từ nay em sẽ không đặt pass cho bất cứ 1 file excel nào nữa!
- TH2: Nếu chưa được em sẽ cung cấp pass open file cho các bác làm tiếp!
Mục đích của em là:
1. TH1: Kiểm chứng xem nếu đóng pass như thế cho 1 file riêng biệt (tức là chỉ chứa dữ liệu ví dụ xls) đã an toàn chưa?!!
2. TH2: Tìm hiểu xem nếu mở chương trình có gọi mở file xla em gửi lên thì mọi người có cách để xem file hay không?!
Có gì không phải mong các bác lượng thứ và góp ý ạ!
Xin chân thành cảm ơn các bác!
File Đính Kèm: http://1drv.ms/1wRerK3
 
Upvote 0
Chào các bác em có tìm hiểu các cách trên của các bác nên em xin gửi các bác xem file xla của em đã: tạo pass open (không nhập trực tiếp từ bàn phím được), kế theo pass sheet, workbook + vba.
Mong các bác có thể trả lời giúp em là các bác có thể xem được vba+macro4 trong file của em không?!
- TH1: Nếu có thì từ nay em sẽ không đặt pass cho bất cứ 1 file excel nào nữa!
- TH2: Nếu chưa được em sẽ cung cấp pass open file cho các bác làm tiếp!
Mục đích của em là:
1. TH1: Kiểm chứng xem nếu đóng pass như thế cho 1 file riêng biệt (tức là chỉ chứa dữ liệu ví dụ xls) đã an toàn chưa?!!
2. TH2: Tìm hiểu xem nếu mở chương trình có gọi mở file xla em gửi lên thì mọi người có cách để xem file hay không?!
Có gì không phải mong các bác lượng thứ và góp ý ạ!
Xin chân thành cảm ơn các bác!
File Đính Kèm: http://1drv.ms/1wRerK3
Trên PGE Pass: VBA, Sheet,Workbook,Unvew, Mở trong chớp mắt bạn ơi còn Pass Open thì chưa thôi...
còn file xla của bạn cho pass Open đi mình mở cho mà coi........mình thuộc hạng mới tham gia GPE đang tập tành code thôi nha ....còn mấy ông 4,5... sao cứng ấy thì còn hay hơn nhiều
và hãy quên pass đi nha dành thời gian nghiên cứu code hay hơn nhiều đó mới thật sự bổ ích và lý thú
 
Lần chỉnh sửa cuối:
Upvote 0
Trên PGE Pass: VBA, Sheet,Workbook,Unvew, Mở trong chớp mắt bạn ơi còn Pass Open thì chưa thôi...
còn file xla của bạn cho pass Open đi mình mở cho mà coi........mình thuộc hạng mới tham gia GPE đang tập tành code thôi nha ....còn mấy ông 4,5... sao cứng ấy thì còn hay hơn nhiều
và hãy quên pass đi nha dành thời gian nghiên cứu code hay hơn nhiều đó mới thật sự bổ ích và lý thú
Cám ơn bạn nhé! Tớ gửi file này cho bạn nhé (vì không nhập pass bằng cách copy paste được nên phải vậy thôi)
Bạn đổi file xla thành "DT972014.xla" rồi để các file của mình vào thư mục này nhé: C:\Dutoan97
Sau đó chạy file exe. chương trình sẽ tự mở file xla. Rồi bạn tiến hành tiếp xem nhé (cái vba thì 3s rồi quan trọng bạn có xem được các sheet không thôi nhé) http://1drv.ms/1uLy67Q
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn nhé! Tớ gửi file này cho bạn nhé (vì không nhập pass bằng cách copy paste được nên phải vậy thôi)
Bạn đổi file xla thành "DT972014.xla" rồi để các file của mình vào thư mục này nhé: C:\Dutoan97
Sau đó chạy file exe. chương trình sẽ tự mở file xla. Rồi bạn tiến hành tiếp xem nhé (cái vba thì 3s rồi quan trọng bạn có xem được các sheet không thôi nhé) http://1drv.ms/1uLy67Q

Của bạn nó thế này đúng không:





Capture.jpgCapture2.JPG






























































Code thì cũng thuộc dạng... thường thôi
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT
Back
Top Bottom