hỏi về giải thuật phá pass (1 người xem)

  • Thread starter Thread starter gintano1
  • Ngày gửi Ngày gửi
Liên hệ QC

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

gintano1

Thành viên mới
Tham gia
27/7/14
Bài viết
22
Được thích
0
chào các bác, em đọc trên mạng có đoạn code vba phá pass file excel như này mà em không hiểu họ dùng giải thuật gì, nôm na có thể nói là thử từng password nhưng các biến cho chạy từ 65 - 66 hơi khó hiểu, các bác có thể giải thích giúp em được không
Sub PasswordBreaker()
If ActiveSheet.ProtectContents = False Then
MsgBox "Sheet '" & ActiveSheet.Name & "' is unprotected!", vbInformation
Else
If MsgBox("Sheet '" & ActiveSheet.Name & "' is protected, do you want to unprotect it?", _
vbYesNo + vbQuestion, "Unprotect Active Sheet") = vbNo Then Exit Sub
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)
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
If ActiveSheet.ProtectContents = False Then MsgBox "Sheet '" & ActiveSheet.Name & "' is unprotected!", vbInformation
End If
End Sub
 
Thử thay chỗ:
PHP:
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)
thành:
PHP:
MsgBox Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
xem thế nào...
 
Upvote 0
Thử thay chỗ:
PHP:
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)
thành:
PHP:
MsgBox Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
xem thế nào...
Bác muốn chủ thớt gãy tay à. Suối vậy dễ sóc lắm. Sao không ghi vào ô trong sheet cho khỏe.
 
Upvote 0
Thử thay chỗ:
PHP:
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)
thành:
PHP:
MsgBox Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
xem thế nào...
ý em là em thấy hàm chr() trả về ký tự theo mã ASCII, mà 65 - 66 là A và B, vậy thì code này có vấn đề không, e thử mở bằng code này thì vẫn đc
 
Upvote 0
Bị lừa hết roài chăng?

Thớt giải thuật phá pass thành ra code phá pass.
Giài thuật = code? . Chắc chả phải.
Nhậu = Xỉn? . Chắc chả phải.

Xỉn cả roài chăng? Hay thiệt
 
Upvote 0
Bị lừa hết roài chăng?

Thớt giải thuật phá pass thành ra code phá pass.
Giài thuật = code? . Chắc chả phải.
Nhậu = Xỉn? . Chắc chả phải.

Xỉn cả roài chăng? Hay thiệt
code này chạy được anh ạ, ý em muốn hỏi là tại sao các con số của biến i j k l m chạy từ 65 đến 66 anh ơi
 
Upvote 0
code này chạy được anh ạ, ý em muốn hỏi là tại sao các con số của biến i j k l m chạy từ 65 đến 66 anh ơi
Thớt này tiêu đề nói về giải thuật không phải nói về code nên chịu, trả lời về code chắc bị lạc đề.
Giải thuật thì tui làm đơn giản thôi:
C1: Cài thêm 1 cái "pát ô pen phai", rồi mới chủ nhân "phai" đó đến mà mở. Không mở được thì bạn không phải dùng nữa. Khỏe re như bò kéo xe.//**/--=0
C2: Gọi chủ nhân file đó đến, dùng "ô pen óp phích" hiệu chỉnh cái đó cho chủ nhân "phai" đó phải đi mua kính chống lác. Chủ nhân đó tốn tí $ nhưng làm cho tiền tệ được lưu thông làm kinh tế đất nước thêm tăng trưởng, giúp ích cho xã hội. Rất đáng hoan nghênh./-*+/:clap:
 
Upvote 0
Hình như tác dụng của đoạn code này là làm rối loạn cơ chế protect của Excel để cưỡng bức nó phải unprotect chứ không phải thử khớp mật khẩu.

Bạn thử thêm lệnh để ghi pass cuối cùng ra cell nào đó thử coi có phải là BBBBBBBBBBB~ không nhé. Tất nhiên đó không phải là pass bạn đặt để protect.
 
Upvote 0
Hình như tác dụng của đoạn code này là làm rối loạn cơ chế protect của Excel để cưỡng bức nó phải unprotect chứ không phải thử khớp mật khẩu.

Bạn thử thêm lệnh để ghi pass cuối cùng ra cell nào đó thử coi có phải là BBBBBBBBBBB~ không nhé. Tất nhiên đó không phải là pass bạn đặt để protect.
em cảm ơn anh, dễ hiểu hơn rồi
 
Upvote 0
Uh! Dễ hiểu nhưng mà.. giải thích trật lất
Thử giải thích cách khác đi bạn. Tất nhiên tôi ko chắc về suy đoán của mình nên mới nói hình như... Nếu bảo người ta nói sai mà ko chỉ ra cái đúng thì 1 là kiêu căng quá lố hoặc 2 là ko biết mà nói bừa.
 
Upvote 0
Uh! Dễ hiểu nhưng mà.. giải thích trật lất

suy nghĩ từ cuộc sống thường ngày :
có 2 cách để mở 1 ống khóa :
1.Lấy chìa khóa đúng của nó để mở
2.Lấy búa và đục phang tới 1 số hữu hạn lần nào đó => gây rối loạn cơ chế bảo vệ của ống khóa để cưỡng bức =))

Chỉ tiếc là ống khóa vật lý hoạt động không giống Excel . hi hi
Còn Excel hoạt động thế nào thì có người đang nóng lòng muốn biết kìa /-*+//-*+/
 
Upvote 0
suy nghĩ từ cuộc sống thường ngày :
có 2 cách để mở 1 ống khóa :
1.Lấy chìa khóa đúng của nó để mở
2.Lấy búa và đục phang tới 1 số hữu hạn lần nào đó => gây rối loạn cơ chế bảo vệ của ống khóa để cưỡng bức =))

Chỉ tiếc là ống khóa vật lý hoạt động không giống Excel . hi hi
Còn Excel hoạt động thế nào thì có người đang nóng lòng muốn biết kìa /-*+//-*+/

Phần xanh thì (gần) đúng. Nhưng rất tiếc là phần tím thì sai. Bạn chỉ có thể phá hỏng ống khoá, cắt đứt ống khoá. Chứ loại khoá mà bạn "cưỡng bức" được nó phải mở, không hư hao thì là loại khoá ba xu.
Nói cho đúng, đây là một phương pháp mò kẻ hở của Excel chứ suốt quy trình chả có cái gì bị rối loạn cả.
(hình như qua 2016 - và 2013/64 bit - thì kẻ hở này bị MS trám lại rồi)
 
Lần chỉnh sửa cuối:
Upvote 0
Thử giải thích cách khác đi bạn. Tất nhiên tôi ko chắc về suy đoán của mình nên mới nói hình như... Nếu bảo người ta nói sai mà ko chỉ ra cái đúng thì 1 là kiêu căng quá lố hoặc 2 là ko biết mà nói bừa.
Đúng ra mình không định trả lời vì thái độ của bạn có vẻ như thách thức chứ không phải muốn học hỏi
Nhưng thôi, trả lời theo những gì tôi biết và trả lời cho những ai cần nghe:
- Đối với Excel 2003 trở về trước, mỗi khi ta tạo ra một password để bảo vệ bảng tính (protect sheet, protect workbook) thì ngay lập tức anh Bill sẽ tạo ra một chìa khóa "cửa hậu" để mở
- Cặp chìa khóa này có tính tương tác 2 chiều. Tức bạn Protect Sheet bằng pass A thì bạn có thể Unprotect Sheet bẳng A và "cửa hậu" B nào đó, đồng thời nếu bạn làm ngược lại: Protect Sheet bằng pass B thì chắc chắn bạn có thể Unprotect Sheet được bằng khóa A. Lấy ví dụ tôi Protect Sheet bằng pass ndu và tôi có khóa "cửa hậu" là AABAAABBAAAW. Vậy với 1 bảng tính khác, nếu tôi Protect Sheet bằng pass AABAAABBAAAW thì tôi sẽ Unprotect được bẳng pass ndu
- Các tính chất như đã nêu đều dựa vào lỗ hỏng bảo mật trong các phiên bản office trước đây và từ đó người ta xây dựng code dò tìm (chứ không phải "cưỡng bức" hay "rối loạn tiền đình" gì cả). Bây giờ với phiên bản 2013, 2016 mà dùng code dò theo kiểu đó đến Tết của chưa ra
(Riêng file xlsx được tạo từ phiên bảng Excel 2007 tôi chưa thử nên không chắc)
 
Upvote 0
Bổ sung:
Do số lượng "chìa khóa" mã hóa (dạng AABBABA...) có hạn mà số lượng password người dùng có thể đặt gần như vô hạn nên sẽ có rất nhiều password có chung "chìa khóa" mã hóa và đương nhiên các password có chung "chìa khóa" mã hóa sẽ mở được "ổ khóa" của nhau. Ví dụ như:
Chuỗi 15 ký tự của các chữ cái sau có thể mở cho sheet đặt password là là một trong số chung: A, B, D, G, H, K, M, N, P, S, U, V, Y, Z (tức là đặt password AAAAAAAAAAAAAAA thì mở bằng BBBBBBBBBBBBBBB, DDDDDDDDDDDDDDD, GGGGGGGGGGGGGGG,... cũng được)
Chuỗi 15 ký tự của các chữ cái sau cũng chung một bộ: C, E, F, I, J, L, O, Q, R, T, W, X (15 khoảng trắng cũng nằm trong bộ này)
 
Upvote 0
Đúng ra mình không định trả lời vì thái độ của bạn có vẻ như thách thức chứ không phải muốn học hỏi
Nhưng thôi, trả lời theo những gì tôi biết và trả lời cho những ai cần nghe:
- Đối với Excel 2003 trở về trước, mỗi khi ta tạo ra một password để bảo vệ bảng tính (protect sheet, protect workbook) thì ngay lập tức anh Bill sẽ tạo ra một chìa khóa "cửa hậu" để mở
- Cặp chìa khóa này có tính tương tác 2 chiều. Tức bạn Protect Sheet bằng pass A thì bạn có thể Unprotect Sheet bẳng A và "cửa hậu" B nào đó, đồng thời nếu bạn làm ngược lại: Protect Sheet bằng pass B thì chắc chắn bạn có thể Unprotect Sheet được bằng khóa A. Lấy ví dụ tôi Protect Sheet bằng pass ndu và tôi có khóa "cửa hậu" là AABAAABBAAAW. Vậy với 1 bảng tính khác, nếu tôi Protect Sheet bằng pass AABAAABBAAAW thì tôi sẽ Unprotect được bẳng pass ndu
- Các tính chất như đã nêu đều dựa vào lỗ hỏng bảo mật trong các phiên bản office trước đây và từ đó người ta xây dựng code dò tìm (chứ không phải "cưỡng bức" hay "rối loạn tiền đình" gì cả). Bây giờ với phiên bản 2013, 2016 mà dùng code dò theo kiểu đó đến Tết của chưa ra
(Riêng file xlsx được tạo từ phiên bảng Excel 2007 tôi chưa thử nên không chắc)
Tôi suy đoán chứ không biết cơ chế. Nếu không phải kiêu sao ngay lúc đó không giải thích đi, đợi bị khích mới nói. Chủ thớt cần biết mà ai cũng làm ngơ, có người còn chọc quê nữa.

Chừ chủ thớt cảm ơn tôi đi nhé!
 
Upvote 0
Xin hỏi BQT trường hợp này thì làm thế nào? Và mọi người cho ý kiến ạ.
Topic: Tạo macro / công thức Excel để tự cập nhật cơ sở dữ liệu
Bạn chủ topic sau 03 ngày hỏi xong vấn đề của mình thì quay lại xóa yêu cầu tại bài #1 và các bài viết khác trong topic. Đồng thời, bạn ấy còn đề nghị xóa topic đi:

Không biết bạn ấy có phật ý về điều gì chăng?
Lúc trước cần lắm chức năng blacklist nhưng không có
Thì thêm hắn vào blacklist là xong. Sau này cứ làm ngơ là được --=0
Bây giờ đã có và vừa mới thử.
 
Upvote 0
Web KT

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

Back
Top Bottom