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
355
Đượ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,
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
hôm trước tôi có dow 1 file trong đó code người ta viết toàn là như bên dưới
abcdfeabcbedgfhgfgf
abcdfeabcbedgfhgfgf
...........................
abcdfeabcbedgfhgfgf

những đoạn code đó được nằm trong modlue có tên gọi hẳn hoi
tất cả những đoạn code đó vẫn chạy bình thường, tìm hoài vẫn không biết tại sao là như vậy.
để tôi tìm lại những file đó rồi gởi lên diễn đàn nghiên cứu dùm tại sao là như vậy

Có vẻ như do các code đó đã được mã hoá theo khoá (encrypted). Tôi nghĩ cái file bạn mói đó là một trong những files mà chủ nhân dùng để demo cái phần mềm mã hoá của họ.
Như tôi đã trình bày ở trên. Cũng có lúc người ta cần bảo vệ những code như vậy. Nhưng không phải do "công sức" thiết lập code như chủ thớt nghĩ. Người ta mã hoá các modules là vì chúng chứa những bảng tra dữ liệu có tính chất quan trọng. Khí ấy bỏ tiền ra mua một phần mềm là chuyện nhỏ.
 
Upvote 0
Theo em thì mỗi người có một trình độ khác nhau, có người giỏi, người chưa giỏi do đó có người dấu code là vì khống muốn phổ biến kiến thức cao siêu của mình nhưng cũng có người dấu code vì code quá vụng về không muốn ai xem, và thậm chí có người còn ăn cắp code của người khác về dùng nên cũng muốn dấu đi chẳng hạn. Nói chung là có quá nhiều lý do để dấu code... Nên thiết nghĩ chúng ta không cần quan tâm mục đích để làm gì. Chủ topic đã không biết và thật tâm muốn hỏi thì anh chị nào biết cách thì chỉ giúp chứ cũng không nên xét mục đích cũng như có cần thiết phải làm như thế không? Mục đích thì chủ topic chắc có mục đích riêng nên mới hỏi.

Đọc cả trang bình luận với thấy bạn đồng tính với mình. Mình đâu có nói mình giỏi hay là dễ . Thú thật Mình có 1 cái phần mềm được làm hoàn chỉnh trên excel mà chưa chắc gì viết code giỏi mà làm được, Phần mềm đó dòi hỏi bạn phải biết rất rõ về lĩnh vực về Y học. Các bạn viết code giỏi mà vấn đề Y học không biết thì làm sao mà làm. Tôi chỉ muốn hỏi là làm sao bảo mật code thôi, các bạn không giúp mà còn bảo tôi đưa sản phẩm lên coi thử có xứng đáng để bảo vệ không . Thật là đau buồn
 
Upvote 0
Bạn đưa sản phẩm của bạn lên đây xem nó có xứng để bảo vệ không nha

rất cảm ơn anh.Anh nên nhớ rằng excel chỉ là công cụ ứng dụng để làm việc, viết code giỏi chưa chắc là làm được tất cả, bây giờ thí dụ anh viết 1 phần mềm để quản lý nhà tù bệnh nhân thì anh phải tìm hiểu rất rõ ràng, vì phải nghiên cứu ra bố cục của nó
( đó cái chổ bố cục đó là mới quan trọng )

sản phẩm dù có dễ hay là Hay thì cũng phải tôn trọng. là 1 thanh viên tôi không muốn mích lòng ai trên diễn đàn hết. tôi chỉ muốn nói " rất mong anh em tập trung vào trọng tâm câu hỏi, để khỏi mất thời gian trả lời mà không giúp được gì "
 
Upvote 0
Hồi nào đến giờ tôi chỉ biết cái vụ giấu code là cỡ mấy cái spreadsheet chuyên tính trên thị trường tài chánh. Người ta giấu đi không phải vì code hay ho gì, mà cốt là giấu phương pháp hạch toán của những bộ óc chuyên gia thẩm định đầu tư (actuary) tầm cỡ.

Cỡ mấy cái con toán vớ vẩn của dân mới học làm quen với bảng tính, xin lỗi, giấu đi có lẽ là sợ người ta nhìn thấy cười vỡ bụng.

cảm ơn bạn. hình như bạn quá tự tin rồi đấy, cần nên khiêm tốn lại nhé
 
Upvote 0
Upvote 0
cảm ơn bạn. hình như bạn quá tự tin rồi đấy, cần nên khiêm tốn lại nhé

Không cần phải "hình như". Tự thuở sinh ra tôi đã có tính tự tin rồi. Cho đến nay, số người có khả năng buộc tôi "cần nên khiêm tốn" không có bao nhiêu. Trên diễn đàn này cũng có, nhưng bạn chưa đạt đến.

Lĩnh vực càng chuyên thì càng nên bỏ tiền ra mua phần mềm bảo mật. Làm lung tung thì lấy gì bảo đảm.

Dân làm việc với dữ liệu quan trọng đều biết luật "chuyển giao trí tuệ". Giả sử bạn tự ý bảo mật hết dữ liệu quan trọng của công ty, một ngày nào đó, bạn đòi lên lương gấp đôi, nếu không thì bạn đem qua công ty khác. Công ty bạn phải đem bỏ sọt rác hết các file "được" bạn bảo mật à? Vì vậy chỉ có những giám đốc vô trách nhiệm mới để cho nhân viên tự ý tự tung bảo vệ files.

Tôi vốn không muốn nói huỵch tẹt ra từ đầu. Nghe giọng điệu thì biết là dân không muốn chia sẻ kiến thức với đồng nghiệp trong cơ quan rồi. Tôi chỉ thấy tội nghiệp cho giám đốc cơ quan này.
 
Upvote 0
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,

Bạn đừng nên khóa; muốn không cho người ta xem, thì bạn đem "Code" sang file khác, tất tần tật.

Khi nào bạn cần thì bạn chép lại, i xì xì & mần tiếp thôi;

/(hi xong việc lại thao tác ngược lại 1 lần nữa.

(húc ngủ ngon giấc với mã Code của bạn!
 
Upvote 0
Đọc cả trang bình luận với thấy bạn đồng tính với mình. Mình đâu có nói mình giỏi hay là dễ . Thú thật Mình có 1 cái phần mềm được làm hoàn chỉnh trên excel mà chưa chắc gì viết code giỏi mà làm được, Phần mềm đó dòi hỏi bạn phải biết rất rõ về lĩnh vực về Y học. Các bạn viết code giỏi mà vấn đề Y học không biết thì làm sao mà làm. Tôi chỉ muốn hỏi là làm sao bảo mật code thôi, các bạn không giúp mà còn bảo tôi đưa sản phẩm lên coi thử có xứng đáng để bảo vệ không . Thật là đau buồn

tôi chưa thấy một đề tài nào có nội dung tương tự được giúp đỡ trên diễn đàn này
lý do thì tôi không biết, hình như người ta không cổ súy cho việc phá pass, hay khóa pass

thôi tự làm đi bạn, làm được bi nhiêu thì xài bấy nhiêu vậy.........hihihihi
 
Upvote 0
dạ em đã xem hết rồi
cách 1 dùng phần mềm Protect VBA thì e chưa thử
cách 2 khóa Shared Workbook thì phần mềm của em có 1 số code chạy không được

Cho em hỏi anh làm theo cách nào

Bạn thử dùng pm hex editor xem sao.
Trước đây mình cũng có để ý vấn đề này nhưng chỉ là tìm hiểu cho biết thôi, vì những cái cơ bản mình cũng chưa nắm hết thì đi đâu cho xa :)
Vừa rồi đọc cái topic này nên mình cũng thử mò theo hướng dẫn của anh TranThanhPhong, và nói chung là bằng các pp mình thường áp dụng để xem code thì đến giờ mình cũng chưa xem lại được ;;;;;;;;;;; (Còn với các anh trên GPE thì mình ko dám chắc đâu nghe :) )

Chúc bạn sớm tìm được giải pháp ưng ý!

ah quên, mình thấy với cách này thì các code trong file mình test thử vẫn hoạt động bình thường, riêng code nào có liên quan đến phần "copy code" thì không hoạt động bạn nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
rất cảm ơn anh.Anh nên nhớ rằng excel chỉ là công cụ ứng dụng để làm việc, viết code giỏi chưa chắc là làm được tất cả, bây giờ thí dụ anh viết 1 phần mềm để quản lý nhà tù bệnh nhân thì anh phải tìm hiểu rất rõ ràng, vì phải nghiên cứu ra bố cục của nó
( đó cái chổ bố cục đó là mới quan trọng )

sản phẩm dù có dễ hay là Hay thì cũng phải tôn trọng. là 1 thanh viên tôi không muốn mích lòng ai trên diễn đàn hết. tôi chỉ muốn nói " rất mong anh em tập trung vào trọng tâm câu hỏi, để khỏi mất thời gian trả lời mà không giúp được gì "

Tôi nói thế là muốn giúp bạn đở.. tốn công thôi. Vì tôi biết rằng bảo mật trong Excel vốn là KHÔNG CÓ CÁCH ---> Chuyện này đã bàn trên diễn đàn bao nhiêu lần rồi (bạn cứ tìm sẽ biết)
Cho dù bạn làm kiểu gì thì tôi cũng mở được như thường, bạn tin không?
(trừ phi bạn dùng các phần mềm chuyên nghiệp như bạn Vetmini nói thì tôi mới chịu thua)
----------------------
Bạn thử dùng pm hex editor xem sao.
Trước đây mình cũng có để ý vấn đề này nhưng chỉ là tìm hiểu cho biết thôi, vì những cái cơ bản mình cũng chưa nắm hết thì đi đâu cho xa :)
Vừa rồi đọc cái topic này nên mình cũng thử mò theo hướng dẫn của anh TranThanhPhong, và nói chung là bằng các pp mình thường áp dụng để xem code thì đến giờ mình cũng chưa xem lại được ;;;;;;;;;;; (Còn với các anh trên GPE thì mình ko dám chắc đâu nghe :) )
Nghe thú vị đây. Bạn thử đưa 1 file đã làm được lên tôi xem thử. Hay bạn đang muốn nói đến file ở bài 21? Nếu là file đó thì có gì mà mở không được ---> 5s thôi

Capture.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nói thế là muốn giúp bạn đở.. tốn công thôi. Vì tôi biết rằng bảo mật trong Excel vốn là KHÔNG CÓ CÁCH ---> Chuyện này đã bàn trên diễn đàn bao nhiêu lần rồi (bạn cứ tìm sẽ biết)
Cho dù bạn làm kiểu gì thì tôi cũng mở được như thường, bạn tin không?
(trừ phi bạn dùng các phần mềm chuyên nghiệp như bạn Vetmini nói thì tôi mới chịu thua)
----------------------

Nghe thú vị đây. Bạn thử đưa 1 file đã làm được lên tôi xem thử. Hay bạn đang muốn nói đến file ở bài 21? Nếu là file đó thì có gì mà mở không được ---> 5s thôi

hihi. bởi vậy em mới nói với em thì ko xem được, còn với các anh trên GPE thì ... 5s /-*+/
Tham gia cho vui thôi chứ cũng không quan tâm lắm, vì các chương trình có cỡ cũng xxx được thì mấy cái file excel tự tạo này có nghĩa gì đâu :)
xui cho pác chủ topic là đụng toàn cao thủ )(&&@@
 
Upvote 0
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,

Chào bạn,

Mình xin trả lời câu hỏi của bạn như thế này:

0. Câu hỏi hay nên câu trả lời dài, nếu dài quá thì đọc luôn số 3 và kết luận.

1. Bạn nói là "tôi nghe nói Khóa pass trong VBA anh em trong diễn dàn bẽ 3 giây là xong":

Mình khẳng định là không có ai trong diễn đàn 3s bẻ được khóa trong VBA của bạn. Nói cho vui thế thôi, việc bẻ khoá để xem được nội dung VBA Project nếu bạn lưu file excel dưới dạng *.xls là luôn luôn thực hiện được 1 cách dễ dàng. Nếu lưu dưới dạng *.xlsm thì khó hơn 1 chút, nhưng không phải là không thể.

2. Bạn nói là "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.":

Mới đầu đọc câu này mình giật mình tưởng bạn bảo anh em trong diễn đàn làm thành quả của bạn đổ ra sông ra biển hết. Nhưng chắc bạn cũng biết là diễn đàn không phải là nơi bàn về các cách hack, phá khoá file excel, VBA; nên điều này bạn không phải lo.

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ả)
  2. Kết hợp cách 1 cộng với việc viết (Obfuscate) code VBA làm cho code của bạn nếu đọc phải mất nhiều thời gian mới giải mã và hiểu được (Cách này ước tính có 80% anh em diễn đàn biết và 40% anh em có khả năng giải quyết vấn đề này)
  3. Thuê luật sư thảo 1 bản EULA (End-User License Agreement), hiểu 1 cách đơn giản là những người có trong tay software của bạn sẽ không được làm 1 số việc trong đó có việc là phá mật khẩu để xem code. Cách này được đánh giá là không khả thi vì ở VN không có gì là không thể. (Cách này ước tính 70% anh em diễn đàn biết nhưng chỉ có 7% nghĩ đến và 0% thực hiện)
  4. Tách VBA code ra 1 file riêng và để trên server (1.xlsm) (1 chỗ mà chúng ta để tài liệu và tuỳ theo quyền truy cập chúng ta sẽ vào được), file sử dụng code đưa cho người dùng (2.xlsm). (Cách này ước tính 60% anh em diễn đàn biết, 40% có khả năng phá khoá)
  5. Viết code của bạn dưới dạng COM Add-In (bằng C#), và dịch ra DLL. Cung cấp cho người dùng cuối file DLL. Nếu không có source code thì file DLL này được xem là khá an toàn (anh Bill bảo thế ). Tại sao chỉ là khá thôi mà không phải là giỏi? Bởi vì từ DLL với decompiler các anh cao thủ có thể dịch ngược (Reverse Engineer) ra được code mà các anh ý hiểu. (Cách này ước tính 50% anh em diễn đàn biết, 4% có khả năng thực hiện)
  6. Bạn không đặt mật khẩu, không chia sẻ cho ai nữa, sẽ không ai xem được code.

Kết luận:

Như vậy thì bạn cần cân nhắc giữa sự an toàn của code của bạn và công sức của bạn phải bỏ ra để bảo vệ nó, giữa giá trị của code và công sức bỏ ra của người sẽ phá khoá để đọc được code của bạn. Câu trả lời chỉ có bạn biết.
Nếu bạn theo cách 5, trừ đi 1 số yếu tố khách quan thì khả năng code của bạn bị phá khoá vào khoảng 1%, mình nghĩ BCS 99% thì 1% này cũng khá là an toàn rồi :))

P.S: mình làm được cách 1 nhưng chưa bao giờ dùng.
 
Lần chỉnh sửa cuối:
Upvote 0
1. Bạn nói là "tôi nghe nói Khóa pass trong VBA anh em trong diễn dàn bẽ 3 giây là xong":

Mình khẳng định là không có ai trong diễn đàn 3s bẻ được khóa trong VBA của bạn. Nói cho vui thế thôi, việc bẻ khoá để xem được nội dung VBA Project nếu bạn lưu file excel dưới dạng *.xls là luôn luôn thực hiện được 1 cách dễ dàng. Nếu lưu dưới dạng *.xlsm thì khó hơn 1 chút, nhưng không phải là không thể.
  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ả)
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
 
Upvote 0
Mình không học gì về IT nhưng trước đây cũng có thể tự crack được Winrar để nó không đòi mua bản quyền nữa (bây giờ chắc quên rồi). Dùng DLL cũng không an toàn đâu.
 
Upvote 0
Mình không học gì về IT nhưng trước đây cũng có thể tự crack được Winrar để nó không đòi mua bản quyền nữa (bây giờ chắc quên rồi). Dùng DLL cũng không an toàn đâu.

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á)
 
Upvote 0
Có 2 lý do người ta muốn giấu code:
1. Như tôi đã trình bày trước, do code ấy chứa nhiều dữ liệu quan trọng (vd bảng tra thông số)
2. Do người ta muốn bán phần mềm, và sợ người mua chôm code.

Lúc đầu tôi thấy gần đây chủ thớt liên tục hỏi hết thủ thuật này đến thủ thuật nọ nên nghĩ răng đương sự đang làm một đồ án nào đó cho công ty. Nhưng xem kỹ lại thái độ ởm ờ không muốn đưa đồ án lên thì khả năng là đương sự viết code đem đi bán.

Trường hợp bán (tức là chỉ giấu code chứ không giấu dữ liệu) thì khá dễ giải quyết. Thủ thuật này được gọi là "VBA code obfuscation". (lên gú gồ từ khoá này sẽ được vài phầm mềm miễn phí). Trước khi giao project ra cho người dùng, người ta dùng một phần mềm sửa code lại thành dạng không thể nào hiểu nổi - ví dụ tên biến bien1 sửa là x0101010, tên hàm ham1 sửa là x1010101111100000111, và cắt bỏ hết các comments. (cái bản chính thì mình vẫn giữ - chứ mã hoá nó luôn thì lấy gì sửa chữa)

Đương nhiên, không có cái gì không phá được. Nhưng để hiểu được cái code kia thì mất nhiều thì giờ lắm, không bỏ công. Cho nên có thể coi như là khoá.
 
Upvote 0
Có lẽ chủ topic nên tham khảo cái này rồi quyết định:Qickviewplus ,phải hết nửa tiếng chứ không phải 5giay
 
Upvote 0
Có lẽ chủ topic nên tham khảo cái này rồi quyết định:Qickviewplus ,phải hết nửa tiếng chứ không phải 5giay
Đưa file Excel nào đó đã khóa VBA lên đây, trong vòng 3-5 giây tôi sẽ cho bạn nhìn thấy nội dung của các module!
 
Upvote 0
Đưa file Excel nào đó đã khóa VBA lên đây, trong vòng 3-5 giây tôi sẽ cho bạn nhìn thấy nội dung của các module!

Bạn hiểu sai ý của tôi rồi , với cao thủ trên GPE thì đúng là 5"".Đang nhắn đền chủ topic mà; với QVP thì nhìn thấy trên 200 định dạng file.
 
Upvote 0
Web KT

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

Back
Top Bottom