Code Crack Pass Sheet (1 người xem)

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

lachinhan

The God of Pigs
Tham gia
4/12/06
Bài viết
153
Được thích
2,167
Nghề nghiệp
Banker
Các bạn có thể phá pass của 1 Sheet bị Protect với đoạn code sau :

PHP:
Sub PasswordBreaker()

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66:         For k = 65 To 66
 For l = 65 To 66: For m = 65 To 66:        For i1 = 65 To 66
  For i2 = 65 To 66: For i3 = 65 To 66:       For i4 = 65 To 66
   For i5 = 65 To 66: For i6 = 65 To 66:       For n = 32 To 126

     ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
         Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
         Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
     If ActiveSheet.ProtectContents = False Then

         ActiveWorkbook.Sheets(1).Select
         Range(“a1”).FormulaR1C1 = Chr(i) & Chr(j) & _
              Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
              Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
         Exit Sub
 End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next

End Sub
(Code sưu tầm trên Echip )

Cách sử dụng : Các bạn chọn Sheet bị Protect , bấm phải chuột, chọn View Code, hoặc bấm phím tắt Alt + F11
Paste đoạn code trên vào và RUn. Chờ khoảng 1-2 phút là xong. Pass đã bị phá bạn có thể nhập liệu bình thường

Chúc các bạn thành công .
Thân
 
Bài này, xin phép được nói đôi lời cùng các thành viên. Có thể các bạn nói rằng, đây là "bày cách để phá password", vậy nó có phạm luật không ? Xin thưa là không.

Nếu các bạn đưa một file Excel lên diễn đàn, nhờ người khác phá password dùm, hoặc các bạn nói: "Gửi file cho tôi đi, tôi sẽ bẻ khóa cho", thì đó là phạm luật, bởi điều đó có thể liên quan đến bản quyền. Không ai có thể kiểm tra được file này là của chính bạn hay là của người khác. Hoặc, bạn cung cấp serial number, cung cấp cách crack một sản phẩm thương mại, phổ biến một sản phẩm đã bị crack, thì đó là phạm luật.

Nhưng, bàn về thuật toán để giải mã một password, mà cụ thể là bài này, thì lại là chuyện khác. Vì nó không nói đến cụ thể một file Excel nào. Đây chỉ là bàn về thuật toán, về phương pháp sử dụng VBA để giải mã một password.

Nói như thế nào để các bạn hiểu nhỉ. Giống như vầy: Bạn hack một website, thì bạn phạm luật. Nhưng việc đào tạo ra một hacker, thì hợp pháp. Các trung tâm bảo mật vẫn làm chuyện đó một cách công khai đấy thôi. Bản thân một hành động, một vấn đề, tự nó không có gì xấu (nhân chi sơ tính bản thiện!), xấu hay tốt là do cách chúng ta làm, cách chúng ta xử lý vấn đề đó.

Thêm một ví dụ nữa, đời thường hơn: Phá khóa nhà người ta thì bị bắt, là vi phạm luật pháp; nhưng đi học cách sửa một cái ổ khóa, học cách mở một cái ổ khóa đã bị mất chìa, thì hợp pháp, hoặc bàn về phương pháp tìm ra cách cấu tạo của một cái chìa khóa, thì cũng là hợp pháp.

Việc làm gì, cũng có mặt trái mặt phải, mặt tốt mặt xấu của nó. Bài này đưa ra cách thức vận dụng VBA để giải mã, là không có gì sai cả. Còn vận dụng nó như thế nào thì tốt, như thế nào thì không tốt, là tùy vào cách làm, tùy vào động cơ, mục đích của việc làm. Các bạn có thể áp dụng nó để tìm ra các password của chính các bạn, mà các bạn đã quên, đó là một điều chính đáng.

Vả lại, thường người ta chỉ đặt password cho Sheet để bảo vệ cấu trúc của nó, để tránh bị sửa chữa, thay đổi công thức cũng như định dạng, mà có thể làm cho bảng tính không còn chính xác. Chứ nếu thật sự cần thiết phải bảo mật tuyệt đối, thì không ai làm như vậy. Mà, ví dụ thôi nhé, đặt password cho từng Sheet, rồi đặt password mở file, rồi nén lại, thêm một cái password giải nén nữa... Nhiêu đó thôi, thì có cái bài này trong tay, cũng chẳng làm được gì. Ý tôi muốn nói, các bạn hoàn toàn có thể sử dụng đoạn code trong bài này cho mục đích cá nhân, và bản thân nó không vi phạm luật lệ gì hết.

Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Luật là thế này:
- Tài liệu, code, v.v... hướng dẫn tìm hiểu về bảo mật là điều không vi phạm luật bản quyền. Tìm hiểu về bảo mật để làm bảo mật cho tốt hơn. Giống như các chuyên gia bảo mật phát hiện các lỗ hổng bảo mật để các HĐH ngày càng được hoàn thiện. Với đoạn code ở trên, chúng ta đã chứng minh là pws của sheet là không hề có tính bảo mật cao.

- Nếu trao đổi về cr*ck 1 SP, phá pws của 1 file nào đó cụ thể thì mới là phạm luật.

Như vậy bài trên không phạm luật bản quyền, không vi phạm nội quy của diễn đàn
 
Lần chỉnh sửa cuối:
Upvote 0
Cách sử dụng : Các bạn chọn Sheet bị Protect , bấm phải chuột, chọn View Code, hoặc bấm phím tắt Alt + F11
Paste đoạn code trên vào và RUn. Chờ khoảng 1-2 phút là xong. Pass đã bị phá bạn có thể nhập liệu bình thường

Chúc các bạn thành công .
Thân
Không có 1-2 phút đâu! Đó chỉ là lý thuyết thôi.
Không tin, các bạn thử tạo một password chừng 15 ký tự, sao cho không theo một quy tắc nào cả, rồi bảo nó dò đi, xem mất bao lâu thì xong...
 
Upvote 0
Không có 1-2 phút đâu! Đó chỉ là lý thuyết thôi.
Không tin, các bạn thử tạo một password chừng 15 ký tự, sao cho không theo một quy tắc nào cả, rồi bảo nó dò đi, xem mất bao lâu thì xong...

Cần gì 15 ký tự chứ, em đặt password là: "Ý" thôi! Code này còn bó tay nữa là! (Đặt Pass Có dấu bằng UniCode) ! Hehe
 
Upvote 0
He he .... Code này đưa lên ko phải để đi phá hoại mà để các bạn biết mà bảo mật. Như vậy các bạn đã biết làm thế nào để Sheet mình được an toàn rồi phải ko ?? Đừng nhìn mọi việc chỉ theo 1 hướng tiêu cực .....
 
Upvote 0
Mình bàn về thuật toán một tí.

Trong Unprotect sheet thì pass : AAAAABAAABBn <=> danh
Và pass luôn có 12 ký tự, 11 ký tự đầu là A hoặc B, ký tự thứ 12 là các ký tự thông thường trên bàn phím. Vậy bác nào biết về cách mã hóa này xin hướng dẫn dùm ạ.

Cách dò pass này không theo quy luật là càng nhiều ký tự dò tìm càng lâu.
VD pass là "danh" thì t=30s, là "c" thì t=260s
 
Upvote 0
Giả sử biết trước pass của bạn gồm có 3 con số lấy từ 2 ký tự khác nhau là 1,2
Để tìm ra được một pass thì cần thử lần lượt từng trường hợp trong số 8 (=2^3) trường hợp dưới đây:

a(1) = "111"
a(2) = "112"
a(3) = "122"
a(4) = "121"
a(5) = "222"
a(6) = "221"
a(7) = "211"
a(8) = "212"

Để dò tìm pass, ta đi một vòng lặp cho để kiểm tra từng giá trị trong mảng a

Mã:
For i = 1 To 8
    If MyWorksheet.Unprotect(a(i)) = True Then
        Exit For
    End If
Next i

Trên là một ví dụ tôi đã giả định:
+ Biết trước mật khẩu gồm có 2 ký tự 1 và 2
+ Số ký tự trong mật khẩu là 3

Bài toán thực tế ta không biết trước điều này, vì vậy cần phải kiểm tra tất cả các trường hợp. Cần xác định:

+ Số ký tự có thể có trong mật khẩu từ 1 đến 128 (hoặc cao hơn)
+ Các ký tự khác nhau có thể tham gia là 255

Gọi K là số ký tự trong mật khẩu
Gọi N là số ký tự khác nhau trong mật khẩu
Công thức để xác đinh số lượng mật khẩu cần thử (M) được xác định bằng cách lấy chỉnh hợp lặp chập K của N phần tử.

M = N^K

Ví dụ ta kiểm tra mật khẩu với số ký tự trong mật khẩu là 4 (K=4), số ký tự có thể có trong mật khẩu là 255 (N=255).
Số trường hợp cần phải kiểm tra là M = N^K = 255^4 = 4 228 250 625

Những việc khó khăn như sau:
1) Các bạn hãy thử đặt phép tính với số ký tự trong mật khẩu >4
2) Các bạn hãy làm một hàm tạo ra mảng (a) chứa các mật (số mật khẩu là M lấy từ N ký tự khác nhau).
3) Khi đã làm thành công 1) và 2), hãy thực hiện một vòng lặp For I = 1 To M để tìm mật khẩu đúng. Hãy để ý thời gian tính toán xem mất bao nhiêu ngày +-+-+-+.

Các phần mềm phá mật khẩu thường có bộ định nghĩa, thực ra bản chất là cho phép người dùng giả định về loại ký tự tham gia (A-Z, 0-9,...) và số ký tự của mật khẩu nếu có thể dự đoán trước để nhằm giảm bới số phép thử-->Tìm nhanh.

Có một giải pháp là phá mật khẩu (chứ không phải tìm). Nó tìm đến vùng dữ liệu của file mà nơi đó chứa cấu trúc của mật khẩu, sau đó nó delete luôn chứ không cần biết mật khẩu là gì. Các bạn có thể thấy điều này với các phần mềm c-r-a-c-k trong VBA chỉ mất không đến 1 giây.


Phân tích sơ qua như vậy chúng ta có thể thấy để viết một chương trình tìm mật khẩu rất rất ít người làm được.
 
Upvote 0
Vậy theo bác! Cuối cùng của vấn đề nằm ở chỗ! Mật khẩu đó giấu ở đâu? Và nó được mã hóa như thế nào? Tức là làm cho các phần mềm Cr*** kia không tìm được để xóa chúng đi hoặc chép đè lên đúng không? Vậy bác có thể can thiệp sâu vào trong file dữ liệu của Excel: Để thực hiện việc thay đổi cấu trúc của file Excel đó nhằm không cho thằng kia tìm thấy và xóa chúng đi được không? Bù lại bác phải thêm 1 thao tác gì đó để trả chúng về hình dáng cũ trước khi mở file đó ra. Kiểu như *.rar hoặc *.zip nhưng tự động được không? Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
He he .... Code này đưa lên ko phải để đi phá hoại mà để các bạn biết mà bảo mật. Như vậy các bạn đã biết làm thế nào để Sheet mình được an toàn rồi phải ko ?? Đừng nhìn mọi việc chỉ theo 1 hướng tiêu cực .....

Chào mừng ông bạn đã trở lại, dạo này Ngân Hàng ít việc nên Giám đốc cũng rảnh rỗi đây.
Bắt đầu của ông bạn bao giờ cũng liên quan đến các vấn đề bảo mật!! Híc

Rất mong ông tiếp tục những phần tương tự.

To bác Tuân: Dạo này cũng sư phạm phết nhỉ ?? Cứ vậy phát huy bác ạ.

Phân tích sơ qua như vậy chúng ta có thể thấy để viết một chương trình tìm mật khẩu rất rất ít người làm được.
Đúng đấy, việc bác Tuân nói như trên đó mới chỉ là thuật toán và lý thuyết, muốn mở được khóa thì anh trộm phải biết và hiểu rõ đó là loại khóa gì ??? dùng cho nhà hay cho hầm hay cho két sắt . . .
Cũng như vậy, người viết chương trình phải hiểu rõ về chương trình, về phần mềm mà mình đang định hack nó.

Vì vậy chúng ta cũng chỉ dừng lại ở mức học tập và ứng dụng thôi.

Thân!
 
Upvote 0
Vậy theo bác! Cuối cùng của vấn đề nằm ở chỗ!
Mật khẩu đó giấu ở đâu?
Và nó được mã hóa như thế nào?
Tức là làm cho các phần mềm Cr*** kia không tìm được để xóa chúng đi hoặc chép đè lên đúng không?
Vậy bác có thể can thiệp sâu vào trong file dữ liệu của Excel: Để thực hiện việc thay đổi cấu trúc của file Excel đó nhằm không cho thằng kia tìm thấy và xóa chúng đi được không?
Bù lại bác phải thêm 1 thao tác gì đó để trả chúng về hình dáng cũ trước khi mở file đó ra. Kiểu như *.rar hoặc *.zip nhưng tự động được không?
Thân.

+ Với VBA thì có lẽ chỉ có thể hạn chế bằng cách làm "Project Unviewable". Bạn hãy tìm đọc bài này của ttphong2007 trên GPE. Khi đặt pass, thì cứ làm nhiều ký tự khác nhau, mỗi thứ cho một ít (như chậu nước gạo :)).
+ Việc xác định vùng chứa pass thì mình không biết.

To bác Tuân: Dạo này cũng sư phạm phết nhỉ ?? Cứ vậy phát huy bác ạ.

Hi, tớ vẫn luôn muốn như vậy, chỉ mỗi tội lười và còn hạn chế...! +-+-+-+
 
Lần chỉnh sửa cuối:
Upvote 0
Vâng, em hiện nay cũng dùng nhiều ký tự, có cả dấu ở trong đó nữa! Nhưng bác nó là delete thì em lại không yên tâm! Còn đọc bài của bác ttphong thì em đọc rồi và cũng đã làm được Unviewable nhưng vẫn có cách phá được! Em nghĩ nếu thằng HexEditor tìm thấy nó như các phần mềm Unviewable thì mình cũng có thể can thiệp dữ liệu kiểu như HexEditor được và thay đổi dữ liệu. Chỉ cần thêm 1 dấu chấm ở đâu đó thôi thì các phần mềm bẻ khóa sẽ "quờ quạng" cả! Chỉ là trình độ lập trình của em còn kém quá! Không biết phải làm sao cang thiệp dữ liệu vào HexEditor tự động được. Nếu các bác có ai đã từng làm việc trên lập trình VB6 thì chắc có cách nào đó đọc được theo kiểu định dạng này và thêm dữ liệu vào. Tất nhiên nếu thêm dữ liệu vào thì file đó sẽ không được trên các máy khác nếu không có 1 Add-ins giãi mã cùng tính chất với việc mã hóa kia! Nhưng nếu hai máy điều có thì việc an toàn dữ liệu sẽ có 1 bước ngoặc mới và các phần mềm Cr*** sẽ bó tay vì không thể theo kịp; vì có quá nhiều cách thêm bớt dữ liệu như thế! Kính mong những ai giỏi lập trình, xin chia sẽ 1 chút kiến thức của mình làm tăng tính bảo mật của Excel và nên nghĩ ra đa dạng cách thay đổi dữ liệu để cách phần mềm kia sẽ đóng cửa luôn! (càng tốt) Và gánh nặng từ nay không còn! "Thái bình thịnh quốc" Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Hiện nay phổ biến 3 dạng gỡ bỏ mật khẩu của file đó là :
*Dò tìm : dở nhất ( các PM quảng cáo trên các tạp chí ,các mạng ... )
*Bẻ khóa :Tương tự như 1 cây đoản đa năng của bọn ăn trộm,mọi ổ khóa xe đều vô dụng( tất nhiên mở rồi thì hư luôn ổ khóa )
*Kính Chiếu yêu :Chương trình này gốc Xuất phát từ trung quốc , hiện nay ở 1số cơ sở tại TP_HCM mở tiệm nhận mở khóa cho bất kỳ loại file nào , bởi nó vẫn bảo toàn đuợc mật mã vẫn còn nguyên cho khách hàng .Khi hộp thoại xuất hioện yêu cầu mật khẩu thì đưa chiếc kính lúp vào ô ,thì các ký tự do người dùng gỏ vào dù dài ,phức tạp bao nhiê vẫn hiện lên và công việc là copy ra ngoài dể dán lên và phóng lớn ra.
Ngoài ra trong "giang hồ " các hack còn những thủ thuật khác mà tôi chưa đuợc biết.

Tuy nhiên để bảo mật cho file , thì có một phần mềm mà bên Echip.com có giới thiệu ,đó là tạo ra một phân vùng ảo, và từ phân vùng ảo này đuợc phép tạo ra file ở dạng ẩn và tất cả các file khi đưa vào vùng này đều được tạo mật mã ngẫu nhiên ở thuật toán 256 bit ( phân vùng ảo này lấy dung lương RAM để tạo ,do đó khí tắt máy là tự động file được bảo vệ ) ,mọi chương trình bẻ khóa đều phải bó tay vì có thấy file đâu để bẻ , file muốn hiện lên thì phải nằn trong chương trình tạo ra nó.Khi bị mất USB có chứa dữ liệu quan trọng mà kẻ ác tâm có khả năng đe dọa tống ,tung lên mạng ... thì mới thấy đuợc mật khẩu là vô cùng quan trọng.Nhưng mà khóa kiểu này thì với Excel thì lại vô cùng bất tiện Vài dòng đến các bạn xem qua để biết hiện trạng.
 
Upvote 0
Mình có 1 addin (sưu tầm) có thể bỏ hẳn password của sheet kể cả các password khó. Mình đưa file addin đó lên cho các bạn nghiên cứu không biết có phạm luật không?
Thân.
 
Upvote 0
Nhưng, bàn về thuật toán để giải mã một password, mà cụ thể là bài này, thì lại là chuyện khác. Vì nó không nói đến cụ thể một file Excel nào. Đây chỉ là bàn về thuật toán, về phương pháp sử dụng VBA để giải mã một password. Nói như thế nào để các bạn hiểu nhỉ. Giống như vầy: Bạn hack một website, thì bạn phạm luật. Nhưng việc đào tạo ra một hacker, thì hợp pháp. Các trung tâm bảo mật vẫn làm chuyện đó một cách công khai đấy thôi. Bản thân một hành động, một vấn đề, tự nó không có gì xấu (nhân chi sơ tính bản thiện!), xấu hay tốt là do cách chúng ta làm, cách chúng ta xử lý vấn đề đó. Thêm một ví dụ nữa, đời thường hơn: Phá khóa nhà người ta thì bị bắt, là vi phạm luật pháp; nhưng đi học cách sửa một cái ổ khóa, học cách mở một cái ổ khóa đã bị mất chìa, thì hợp pháp, hoặc bàn về phương pháp tìm ra cách cấu tạo của một cái chìa khóa, thì cũng là hợp pháp. Việc làm gì, cũng có mặt trái mặt phải, mặt tốt mặt xấu của nó. Bài này đưa ra cách thức vận dụng VBA để giải mã, là không có gì sai cả. Còn vận dụng nó như thế nào thì tốt, như thế nào thì không tốt, là tùy vào cách làm, tùy vào động cơ, mục đích của việc làm. Các bạn có thể áp dụng nó để tìm ra các password của chính các bạn, mà các bạn đã quên, đó là một điều chính đáng. Ý tôi muốn nói, các bạn hoàn toàn có thể sử dụng đoạn code trong bài này cho mục đích cá nhân, và bản thân nó không vi phạm luật lệ gì hết. Thân.
Mình nghĩ chắc bác BNTT không có phản đối gì đâu nhỉ! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đưa lên để chứng minh là người ta có thể phá được những passord khó như thế nào thôi. Còn addin này không view được code.
Thân.
 

File đính kèm

Upvote 0
Em gửi bài này chỉ mong mọi người đừng giận em! Và thêm 1 yêu cầu nữa là không hỏi làm sao ra được cái này nha! Chỉ theo tinh thần mà bác BNTT đặt ra là cùng xây dựng 1 ứng dụng bảo vệ mọi người từ những cái có sẵn. Không truy cứu cách giải các loại pass khó mở! Trên nguyên tắc là: "Muốn bảo vệ tốt thì trước tiên phải biết thằng H*** là đã làm gì để biết cách chống lại nó!" Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ngày này các phần mềm bẻ khóa có quá nhiều công cụ mạnh, cho đến thời điểm này ngoại trừ password open/ modified file là khá an toàn, còn lại các loại Protect khác trong Excel thì hầu như loại bỏ rất dễ dàng kể cả Excel 2007.

Hy vọng cộng đồng GPE của chúng ta sẽ tìm ra cách khắc phục các điểm yếu này.

TP.
 
Upvote 0
Ngày này các phần mềm bẻ khóa có quá nhiều công cụ mạnh, cho đến thời điểm này ngoại trừ password open/ modified file là khá an toàn, còn lại các loại Protect khác trong Excel thì hầu như loại bỏ rất dễ dàng kể cả Excel 2007.

Hy vọng cộng đồng GPE của chúng ta sẽ tìm ra cách khắc phục các điểm yếu này.

TP.
cái này là đặt thủ thuật như thế nào ngoại trừ password open/ modified file là khá an toàn mức độ an toàn cao ra sao pác phong nói cụ thể hơn cho em hiểu với!
 
Upvote 0
An toàn hơn chứ! 1/Vì "password open/ modified" có hỗ trợ tiếng Việt Unicode. 2/Vì "password open/ modified" chỉ có thể dò thôi chứ không phá như các kiểu khác, như vậy thời gian sẽ lâu và số lượng ký tự sẽ là nhân tố quyết định việc an toàn của loại khóa này! Nhưng trên tất cả đó chính là: Hiện nay các dòng máy mạnh hơn đã ra đời việc dò pass đã phải tăng thêm số ký tự! Nhớ ngày xưa chỉ cần 7-8 ký tự là đã bó tay vì dò lâu quá, nay lên đến 17-18 ký tự rồi nhưng chỉ mất vài tiếng. Như vậy không lâu nữa thì chuyện 20-30 ký tự sẽ không còn xa vời nữa! Không biết đến lúc đó chúng ta có còn nhớ hết những password mà chúng ta đã đánh không! Vì không thể chỉ dùng 1 cái pass cho tất cả hệ thống được (Vì như vậy thì dò 1 phá 10 mất). Xin mọi người cố gắng nghĩ thêm 1 vài cách khác, không nhớ nhiều nhưng phải hiệu quả và gặp tình trạng phá pass kiểu này nữa! Vì thơi gian không chờ đợi ai! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Theo tôi, các bạn nên chuyển những code module quan trọng (thậm chí là tất cả) sang VB6 để lập trình cho Excel. Việc chuyển sang chúng ta chỉ phải sửa chút ít là được. KHi biên dịch ra DLL hoặc EXE thì nó như những PM đóng gói hoàn chỉnh. Các chương trình thương mại viết cho Excel hiện nay đại đa số các tác giả đều dùng ngôn ngữ khác để viết, hay dùng và dễ dùng nhất là VB6.

Chuyển sang VB6, các bạn cần chuẩn bị cho mình những điều kiện sau:
+ Mua đĩa VS 2006, hoặc Visual Basic 6.0
+ Mua, tìm đọc các tài liệu học lập trình VB6
+ Nghiên cứu cách làm việc của các đối tượng, đặc biệt là các đối tượng của Excel, Office.

Theo tôi, nếu các bạn muốn cái của mình tốt hơn nữa thì nên thay đổi và tiếp nhận cái khác!
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy bác nên chỉ cho tịu em thêm kiến thức về VB6 với! Như các hàm ở Excel thì xài bên VB6 ntn? Cách thiết lập định dạng bảng tính bên VB6 ra sao? Viết Module bên VB6 có thể khai thác tính năng Cells của Excel vào được không? Và còn rất nhiều việc nữa, mong bác chỉ dẫn từ từ cho! Xin cảm ơn bác về lời nhắc nhở vừa qua! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
An toàn hơn chứ!
1/Vì "password open/ modified" có hỗ trợ tiếng Việt Unicode.
2/Vì "password open/ modified" chỉ có thể dò thôi chứ không phá như các kiểu khác, như vậy thời gian sẽ lâu và số lượng ký tự sẽ là nhân tố quyết định việc an toàn của loại khóa này!

Không hẳn là không phá được đâu bạn, trên mạng vẫn một số phần mềm có thể phá luôn cả "password open/ modified". (Ví dụ: Office Multi-document Cracker)
Thân.
 
Upvote 0
Vậy bác nên chỉ cho tịu em thêm kiến thức về VB6 với!
Như các hàm ở Excel thì xài bên VB6 ntn?
Cách thiết lập định dạng bảng tính bên VB6 ra sao?
Viết Module bên VB6 có thể khai thác tính năng Cells của Excel vào được không?
Và còn rất nhiều việc nữa, mong bác chỉ dẫn từ từ cho!
Xin cảm ơn bác về lời nhắc nhở vừa qua!
Thân.

Tất cả những gì bạn làm được trong Excel thì bạn có thể làm được với VB6 và thậm chí còn có thể tốt, ngoài trừ tốc độ (cái này bạn đừng nên lo).

Để tìm hiểu VB6 và Excel, bạn thử tìm các bài liên quan đến "VB6" trong GPE. Những bìa dạng này chưa được nhiều nhưng ít nhất cũng giúp bạn hướng nghiên cứu tốt hơn.

Xin nói sơ sơ với bạn cách làm việc với đối tượng là như thế này.

Bản chất các đối tượng bạn làm trong Excel VBA , gốc của nó đều thuộc đối tượng mẹ là Application

Ví dụ, trong VBA gọi các đối tượng chỉ là

ActiveWorkbook
ActiveSheet
ActiveCell
Sheets
Range

Trong VB6 gọi các đối tượng phải gọi là

Set ExcelApp = GetObject(,"Excel.Application")

ExcelApp.ActiveWorkbook
ExcelApp.ActiveSheet
ExcelApp.ActiveCell
ExcelApp.Sheets
ExcelApp.Range

Muốn gặp một người trong một Công ty ExcelApp đầu tiên phải qua cổng, cứ như vậy bạn đi vào các ngõ ngách của các phòng ban rồi mới gặp được người trong đó.

VÍ dụ bên VB6, để gán giá trị vào ô A1 của Sheet1 của Workbook đang làm việc thì làm như sau

'--Bắt buộc bên VB6--------------------------------
Dim ExcelApp As Excel.Application
Set ExcelApp = GetObject(,"Excel.Application")
'---------------------------------------------------
ExcelApp.ActiveWorkbook.Sheets("Sheet1").Range("A1").Value = "Dữ liệu từ VB6"

Set ExcelApp = Nothing

Trong VBA đơn giản là

Sheets("Sheet1").Range("A1").Value = "Dữ liệu từ VB6"

Lập trình VB6 bạn sẽ hiểu hơn về đối tượng lập trình.
 
Upvote 0
Các bác cho em hỏi cái. Đấy là trường hợp người ta dùng Protect Sheet thì ta làm thế nhưng nếu người ta dùng VBA Protect để bảo vệ Code không cho ta có thê Paste đoạn Code trên vào thì bó tay luôn hả các bác !
 
Upvote 0
Các bác cho em hỏi cái. Đấy là trường hợp người ta dùng Protect Sheet thì ta làm thế nhưng nếu người ta dùng VBA Protect để bảo vệ Code không cho ta có thê Paste đoạn Code trên vào thì bó tay luôn hả các bác !
Thì bạn paste code vào file khác... đứng tại file này, gọi code từ file khác ấy ---> Chuyện nhỏ
 
Upvote 0
cảm ơn bài viết ! tôi có đặt pass sheet mà quên , hên quá hmay có thể làm pass sheeet mới .và phải nhớ.
 
Upvote 0
cảm ơn .em quen mất khấu giờ lấy lại được .code nay hay cần phải học cho biết hj
 
Upvote 0
mệt quá nếu họ đặt pass VBA luôn thì làm sao mà view code được chứ... dùng phần mềm chuyên dùng của hãng khác đi cho nhanh...
nếu muốn bảo mật excel là khó...theo mình đang dùng cách này tương đối an toàn là: dùng wirar nén lại và đặt pass từ 9 ký tự trở lên. trong đó có ký tự thường,in,số và ký tự đặt biệt nũa là tương đối ok...
 
Upvote 0
mệt quá nếu họ đặt pass VBA luôn thì làm sao mà view code được chứ... dùng phần mềm chuyên dùng của hãng khác đi cho nhanh...

Thế bạn cần VIEW CODE để làm gì? Chắc ý bạn là: vì không xem được code nên không thế paste code crack pass vào file chăng?
Thế thì không cần! Bạn có thể cho code vào file bất kỳ nào đó rồi đứng tại file cần crack, bấm Alt + F8, chọn tên sub (vừa paste vào) và run thôi
Có vấn đề gì chứ?
(hoặc đơn giản cũng có thể Save As code crack pass thành 1 AddIn rồi dùng trên bất kỳ file nào, dù file đó có đặt pass VBA hay không)
 
Upvote 0
Upvote 0
Có cao thủ nào thử View code file còn lại "SERIAL" của mình xem thử, minh thấy bảo mật code cũng khá ok. Nếu không xem được code của file này thì xem như bảo mật code trong VBA của Excel chẳng phải đã giải quyết rồi sao..Code chính của file ta đặt trong file này thì làm sao mà nhòm ngó phải không ? còn file Bạn khanhhero xem code được chỉ là file gọi code chính thực thi mà thôi. Cám ơn khanhhero nhé !
Thanks
Theo yêu cầu của bác đây ạ..................
View attachment 170899
 
Lần chỉnh sửa cuối:
Upvote 0
Có cao thủ nào thử View code file còn lại "SERIAL" của mình xem thử, minh thấy bảo mật code cũng khá ok. Nếu không xem được code của file này thì xem như bảo mật code trong VBA của Excel chẳng phải đã giải quyết rồi sao..Code chính của file ta đặt trong file này thì làm sao mà nhòm ngó phải không ? còn file Bạn khanhhero xem code được chỉ là file gọi code chính thực thi mà thôi. Cám ơn khanhhero nhé !
Thanks
Đây là file addin ạ...............
Gỡ pass.jpg
 
Upvote 0
Cám ơn khanhhero !
Hình bạn up lên mình không thấy rõ, hình như bạn nhầm file nào rồi ý. Bạn up lại hình có đoạn code trong file addins để chọn In mình xem lại được khg. Thực ra thì mình có hướng viết bảo mật code vào addins thử không biết có ok không ? Bạn có cao kiến gì thì chỉ giúp mình với.
Thanks !
 
Lần chỉnh sửa cuối:
Upvote 0
File addin của bác có 4 module, ConvertFont, Msgunicode, Save_File, Tomau, Sub workbook_open bác vô hiệu hóa phím tắt ALT + F11 bằng Onkey, còn đây là code của Sub Save_File:
Sub LuuFile()Dim NewName As String, nm As Name, ws As Worksheet, i As Long, Arr(), Rng
Dim txt As Control, msg




msg = MsgboxUni(UNC("File míi sÏ ®­îc l­u cïng th­ môc File nµy, B¹n cã muèn tiÕp tôc kh«ng ?"), vbYesNo + vbDefaultButton1 + vbInformation, UNC("Th«ng b¸o"))
If msg = vbYes Then
GoTo Nhap
End If
If msg = vbNo Then
Exit Sub
End If
Nhap:
Application.DisplayAlerts = False
Application.ScreenUpdating = False


NewName = InputBox("Nhap Ten File")
ReDim Arr(1 To ActiveWorkbook.Worksheets.Count - 2)
For Each ws In Worksheets
If ws.Name <> "SERIAL" And ws.Name <> "INFOMATION" And ws.Name <> "KHONGCO" Then
i = i + 1
Arr(i) = ws.Name
End If
Next ws
Sheets(Arr).Copy


With ActiveWorkbook
On Error Resume Next
.SaveAs ThisWorkbook.Path & "" & NewName, 52
.Close SaveChanges:=True
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom