Mừng Sinh Nhật GPE 11: sáng 25/6 Hà Nội; 1/7 Huế/Đà Nẵng; Trưa 2/7 TPHCM

Code Crack Pass Sheet

Thảo luận trong 'Lập Trình với Excel' bắt đầu bởi lachinhan, 18 Tháng mười 2008.

  1. lachinhan

    lachinhan The God of Pigs

    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 IntegerAs IntegerAs Integer
    Dim l 
    As IntegerAs IntegerAs Integer
    Dim i1 
    As Integeri2 As Integeri3 As Integer
    Dim i4 
    As Integeri5 As Integeri6 As Integer
    On Error Resume Next
    For 65 To 66: For 65 To 66:         For 65 To 66
     
    For 65 To 66: For 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 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
    NextNextNextNextNextNext
    Next
    NextNextNextNextNext

    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
     
  2. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    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: 18 Tháng mười 2008
  3. hai2hai

    hai2hai VNUNi®

    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: 18 Tháng mười 2008
  4. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    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...
     
  5. cadafi

    cadafi New Style! New Life! Staff Member Super Moderator

    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
     
  6. lachinhan

    lachinhan The God of Pigs

    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 .....
     
  7. hoangdanh282vn

    hoangdanh282vn Nguyễn Cảnh Hoàng Danh Staff Member

    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
     
  8. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    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.
     
  9. Po_Pikachu

    Po_Pikachu Po_pikachu@ymail.com

    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: 14 Tháng ba 2015
  10. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    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 ạ.

    Đú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!
     
  11. Nguyễn Duy Tuân

    Nguyễn Duy Tuân Nghị Hách

    + 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.

    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: 18 Tháng mười 2008
  12. Po_Pikachu

    Po_Pikachu Po_pikachu@ymail.com

    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: 14 Tháng ba 2015
  13. hai2hai

    hai2hai VNUNi®

    Lần chỉnh sửa cuối: 18 Tháng mười 2008
  14. dohuuthuc

    dohuuthuc Thành viên thường trực

    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.
     
  15. QuocPhong

    QuocPhong Learning to be!

    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.
     
  16. Po_Pikachu

    Po_Pikachu Po_pikachu@ymail.com

    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: 14 Tháng ba 2015
  17. QuocPhong

    QuocPhong Learning to be!

    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.
     

    Các file đính kèm:

  18. Po_Pikachu

    Po_Pikachu Po_pikachu@ymail.com

    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.
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 14 Tháng ba 2015
  19. TranThanhPhong

    TranThanhPhong Thời gian !!!

    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.
     
  20. ongtrungducmx25

    ongtrungducmx25 Thành viên gạo cội

    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!
     

Chia sẻ trang này