ลบรหัสผ่านจากเอกสาร Excel


11

ฉันให้การสนับสนุนภายในและหนึ่งในผู้ใช้ของเราได้จัดการใส่รหัสผ่านไฟล์ excel โดยไม่ได้ตั้งใจฉันได้ทำการตรวจสอบที่เหมาะสมเพื่อให้แน่ใจว่าผู้ใช้ควรเข้าถึงเอกสารและตอนนี้ต้องการทราบว่า คำแนะนำสำหรับการลบรหัสผ่านจากเอกสาร Excel

รหัสผ่านจะปรากฏขึ้นหลังจาก Excel เปิดขึ้น แต่ก่อนที่คุณจะเห็นข้อมูลใด ๆ ใน excel


อืมคุณรู้สึกอิ่มแล้ว หากคุณไม่ต้องการทำสิ่งเข้ารหัสที่ซับซ้อน ... (ฉันไม่ทราบว่ามีโปรแกรมใดที่ทำเช่นนี้ใน. xls) ไม่มีวิธีอัตโนมัติแบบธรรมดาในการทำ Excel - ที่จะเอาชนะจุดที่มีรหัสผ่านในตอนแรก ... ความหวังเดียวของคุณคือโปรแกรมถอดรหัสรหัสลับพิเศษสำหรับไฟล์ดังกล่าว (ซึ่งอาจยากที่จะ หา). บางที Google decrypt xlsหรือบางสิ่งที่คล้ายกัน
ซามูเอล Jaeschke

ไฟล์ excel .xlsx เป็นเพียงไฟล์ zip เปิดเครื่องรูดและปฏิบัติตามคำแนะนำเช่นนี้ เคยลองมาแล้วไม่แน่ใจว่าใช้งานได้หรือไม่หากไฟล์ทั้งหมดได้รับการป้องกันด้วยรหัสผ่าน nileshkumar83.blogspot.com/2012/05/…
Joop

1
@SamuelJaeschke วิธีการของ hook ที่stackoverflow.com/a/27508116/5757159ทำงานได้ทุกครั้ง ไม่จำเป็นต้องแคร็ก
ThunderFrame

คำตอบ:


11

Elcomsoft สร้างโปรแกรมที่มีประโยชน์ที่เรียกว่าAdvanced Office Password Recoveryซึ่งสามารถทำงานได้ดีกว่าสิ่งอื่น ๆ ที่ฉันเคยใช้

อาจคุ้มที่จะใส่ค่าลงในข้อมูลที่คุณพยายามกู้คืนก่อนที่จะลองทำเช่นนี้บางครั้งมันก็ไม่แพงที่จะให้ผู้ใช้สร้างเอกสารขึ้นใหม่อีกครั้งตั้งแต่ต้น (และสอนบทเรียนที่มีค่า ;-)) AOPR ไม่ฟรีและบางครั้งรหัสผ่านสามารถทำงานได้โดยใช้กำลังดุร้าย (ลองใช้การรวมตัวอักษรที่เป็นไปได้) ซึ่งอาจใช้เวลานานมาก


โปรแกรมของ Elmcomsoft นั้นดีฉันเคยประสบความสำเร็จในการเปิดไฟล์ Excel ที่ผ่านมาโดยไม่ต้องใช้รหัสผ่าน รับ wordlist ที่ดีและลองใช้ก่อน (รายการที่รวมอยู่ใน Cain และ Abel นั้นดีขนาด 3MB) หากล้มเหลวให้ลองบังคับสัตว์เดรัจฉาน แต่ถ้าเป็นรหัสผ่านที่คาดเดายากคุณจะไม่ได้รับสิ่งใด
Dentrasi

ฉันไม่ได้เป็นแฟนของการแนะนำซอฟต์แวร์เชิงพาณิชย์ในเว็บไซต์นี้ แต่ในกรณีนี้มันเป็นตัวเลือกที่ดีที่สุด แนะนำ +1
agtoever

1

เป็นเช่นนี้Add-in ของExcel Password Remover XLA คุณเป็นอย่างไร

แก้ไข: คิดเกี่ยวกับมันอาจจะไม่ - นี้ใช้สำหรับการลบรหัสผ่านจากแผ่นงาน / สมุดงานป้องกัน


เราสามารถแก้ปัญหาด้วยการใช้เครื่องมือนี้อย่างมีจริยธรรมหรือไม่
joe

1

หากคุณรู้ว่ารหัสผ่านคืออะไรให้ไปข้างหน้าแล้วเปิดเอกสาร Excel จากนั้นคลิกที่ไฟล์> บันทึกเป็น ทางด้านซ้ายของปุ่มบันทึกจะเป็นเครื่องมือแบบเลื่อนลงเล็กน้อย คลิกที่นั้นแล้วคลิกที่ตัวเลือกทั่วไป ลบรายการรหัสผ่านที่นั่นแล้วคลิกตกลง บันทึกเอกสาร

หากคุณไม่ทราบว่ารหัสผ่านคืออะไรคุณสามารถใช้ VBA เพื่อค้นหาได้ หากฉันต้องเดาผู้ใช้ของคุณอาจไม่ได้ใช้รหัสผ่านที่แข็งแกร่งมากดังนั้นเราจึงสามารถใช้วิธีการบังคับแบบ brute force เพื่อค้นหา รหัสด้านล่างนั้นหยาบ แต่มันช่วยให้ฉันค้นพบรหัสผ่านที่อ่อนแอและสูญหายในเอกสารของผู้ใช้ของฉัน มันจะตรวจสอบรหัสผ่านที่มีความยาวเท่าใดก็ได้ด้วยอักขระ ASCII ตั้งแต่ 1 ถึง z คุณจะโทรจากหน้าต่างทันทีและรอหลายนาทีดังนี้:

? GetPassword("D:\mywkbk.xlsx")

-

Public Function GetPassword(ByRef sFileName As String) As String
On Error Resume Next
    Dim pw As String
    pw = ""
    Do
        VBA.Err.Clear
        pw = GenerateNextPassword(pw)            
        Application.Workbooks.Open sFileName, False, True, , pw, pw
        VBA.DoEvents
    Loop While VBA.Err.Number = 5408
    GetPassword = pw
End Function

Public Function GenerateNextPassword(ByRef sCurrentPassword As String) As String
    Const MAX_CHAR = 122
    Const MIN_CHAR = 49

    Dim sCurrentPasswordMax As String
    Dim sNewPassword As String
    Dim i As Long

    sCurrentPasswordMax = String(Len(sCurrentPassword), Chr(MAX_CHAR))
    If sCurrentPassword = sCurrentPasswordMax Then
        'do an increment that changes the length
        sNewPassword = String(Len(sCurrentPassword) + 1, Chr(MIN_CHAR))
        Debug.Print Now(); ": "; sNewPassword
    ElseIf Asc(Right(sCurrentPassword, 1)) = MAX_CHAR Then
        'do an increment that changes multiple characters
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(MIN_CHAR)
        For i = Len(sCurrentPassword) - 1 To 1 Step -1
            sNewPassword = Left(sNewPassword, i - 1) & Chr(Asc(Mid(sNewPassword, i, 1)) + 1) & Mid(sNewPassword, i + 1)
            If Asc(Mid(sCurrentPassword, i, 1)) <> MAX_CHAR Then
                Exit For
            End If
        Next i
    Else
        'do an increment on the rightmost character
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(Asc(Right(sCurrentPassword, 1)) + 1)
    End If

    GenerateNextPassword = sNewPassword
End Function

โดยปริยายว่ารหัสผ่านสูญหายและถูกลืมดังนั้นย่อหน้าแรกของคุณจึงไม่เกี่ยวข้อง หากคุณพบรูทีน VBA ของคุณเพื่อลบรหัสผ่านที่ไม่รู้จักโปรดแจ้งให้เราทราบ แต่ฉันสงสัยว่าเป็นไปไม่ได้
สกอตต์

1
หลังจากอ่าน OP อีกครั้งฉันขอยืนยันว่ามันไม่ชัดเจนว่ารหัสผ่านหายไปดังนั้นฉันจึงเก็บย่อหน้านั้นไว้ที่นั่น ฉันได้อัปเดตคำตอบด้วยรหัส VBA บางอย่างที่สามารถใช้เพื่อค้นหารหัสผ่านภายในไม่กี่นาทีหรือนานกว่านั้นหากไม่ทราบรหัสผ่าน
Bobort

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.