本文目录一览:
二进制Excel怎么破解VBA密码保护
1、打开您需要破解保护密码的Excel文件;
2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:aa;
3、停止录制(这样得到一个空宏);
4、依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮;
5、删除窗口中的所有字符(只有几个),替换为下面的内容;
Option Explicit
Public Sub AllInternalPasswords()
' Breaks worksheet and workbook structure passwords. Bob McCormick
' probably originator of base code algorithm modified for coverage
' of workbook structure / windows passwords and for multiple passwords
'
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
' Modified 2003-Apr-04 by JEM: All msgs to constants, and
' eliminate one Exit Sub (Version 1.1.1)
' Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine vbNewLine
Const AUTHORS As String = DBLSPACE vbNewLine _
"Adapted from Bob McCormick base code by" _
"Norman Harker and JE McGimpsey"
Const HEADER As String = "AllInternalPasswords User Message"
Const VERSION As String = DBLSPACE "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE "Please report failure " _
"to the microsoft.public.excel.programming newsgroup."
Const ALLCLEAR As String = DBLSPACE "The workbook should " _
"now be free of all password protection, so make sure you:" _
DBLSPACE "SAVE IT NOW!" DBLSPACE "and also" _
DBLSPACE "BACKUP!, BACKUP!!, BACKUP!!!" _
DBLSPACE "Also, remember that the password was " _
"put there for a reason. Don't stuff up crucial formulas " _
"or data." DBLSPACE "Access and use of some data " _
"may be an offense. If in doubt, don't."
Const MSGNOPWORDS1 As String = "There were no passwords on " _
"sheets, or workbook structure or windows." AUTHORS VERSION
Const MSGNOPWORDS2 As String = "There was no protection to " _
"workbook structure or windows." DBLSPACE _
"Proceeding to unprotect sheets." AUTHORS VERSION
Const MSGTAKETIME As String = "After pressing OK button this " _
"will take some time." DBLSPACE "Amount of time " _
"depends on how many different passwords, the " _
"passwords, and your computer's specification." DBLSPACE _
"Just be patient! Make me a coffee!" AUTHORS VERSION
Const MSGPWORDFOUND1 As String = "You had a Worksheet " _
"Structure or Windows Password set." DBLSPACE _
"The password found was: " DBLSPACE "$$" DBLSPACE _
"Note it down for potential future use in other workbooks by " _
"the same person who set this password." DBLSPACE _
"Now to check and clear other passwords." AUTHORS VERSION
Const MSGPWORDFOUND2 As String = "You had a Worksheet " _
"password set." DBLSPACE "The password found was: " _
DBLSPACE "$$" DBLSPACE "Note it down for potential " _
"future use in other workbooks by same person who " _
"set this password." DBLSPACE "Now to check and clear " _
"other passwords." AUTHORS VERSION
Const MSGONLYONE As String = "Only structure / windows " _
"protected with the password that was just found." _
ALLCLEAR AUTHORS VERSION REPBACK
Dim w1 As Worksheet, w2 As Worksheet
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
Dim PWord1 As String
Dim ShTag As Boolean, WinTag As Boolean
Application.ScreenUpdating = False
With ActiveWorkbook
WinTag = .ProtectStructure Or .ProtectWindows
End With
ShTag = False
For Each w1 In Worksheets
ShTag = ShTag Or w1.ProtectContents
Next w1
If Not ShTag And Not WinTag Then
MsgBox MSGNOPWORDS1, vbInformation, HEADER
Exit Sub
End If
MsgBox MSGTAKETIME, vbInformation, HEADER
If Not WinTag Then
MsgBox MSGNOPWORDS2, vbInformation, HEADER
Else
On Error Resume Next
Do 'dummy do loop
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
With ActiveWorkbook
.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 .ProtectStructure = False And _
.ProtectWindows = False Then
PWord1 = Chr(i) Chr(j) Chr(k) Chr(l) _
Chr(m) Chr(i1) Chr(i2) Chr(i3) _
Chr(i4) Chr(i5) Chr(i6) Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND1, _
"$$", PWord1), vbInformation, HEADER
Exit Do 'Bypass all for...nexts
End If
End With
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
If WinTag And Not ShTag Then
MsgBox MSGONLYONE, vbInformation, HEADER
Exit Sub
End If
On Error Resume Next
For Each w1 In Worksheets
'Attempt clearance with PWord1
w1.Unprotect PWord1
Next w1
On Error GoTo 0
ShTag = False
For Each w1 In Worksheets
'Checks for all clear ShTag triggered to 1 if not.
ShTag = ShTag Or w1.ProtectContents
Next w1
If ShTag Then
For Each w1 In Worksheets
With w1
If .ProtectContents Then
On Error Resume Next
Do 'Dummy do loop
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
.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 Not .ProtectContents Then
PWord1 = Chr(i) Chr(j) Chr(k) Chr(l) _
Chr(m) Chr(i1) Chr(i2) Chr(i3) _
Chr(i4) Chr(i5) Chr(i6) Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND2, _
"$$", PWord1), vbInformation, HEADER
'leverage finding Pword by trying on other sheets
For Each w2 In Worksheets
w2.Unprotect PWord1
Next w2
Exit Do 'Bypass all for...nexts
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
End With
Next w1
End If
MsgBox ALLCLEAR AUTHORS VERSION REPBACK, vbInformation, HEADER
End Sub
6、关闭编辑窗口;
7、依次点击菜单栏上的工具---宏-----宏,选AllInternalPasswords,运行,确定两次;
二进制数字密码的破译
可以运用ReverseMe来二进制数字密码的破译,需要了解以下的内容:
1、寄存器:
寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西来使用。常见涉及到的九个寄存器:
EAX:扩展累加寄存器;EBX:扩展基址寄存器;ECX:扩展计数寄存器;
EDX:扩展数据寄存器;ESI:扩展来源寄存器;EDI:扩展目标寄存器;
EBP:扩展基址指针寄存器;ESP:扩展堆栈指针寄存器;EIP:扩展的指令指针寄存器;
这些寄存器的大小是32位(4个字节),他们可以容纳数据从0-FFFFFFFF(无符号数),除了以下三个寄存器,其他我们都可以随意使用:
EBP:主要是用于栈和栈帧。ESP:指向当前进程的栈空间地址。EIP:总是指向下一条要被执行的指令。
2、栈:栈是在内存中的一部分,它有两个特殊的性质:
FILO(FisrtInLastOut,先进后出);地址反向增长(栈底为大地址,栈顶为小地址)。
3、CALL指令,call有以下几种方式:
call404000h;直接跳到函数或过程的地址;calleax;函数或过程地址存放在eax,calldwordptr[eax]。
4、系统API:Windows应用程序运行在Ring3级别,API函数,我们也称之为系统提供给我们的接口。因为系统只信任自己提供的函数,所以我们要通过API才能实现对内核的操作。
5、mov指令mov指令格式:movdest,src。
这是一个很容易理解的指令,mov指令将src的内容拷贝到dest,mov指令总共有以下几种扩展:movs/movsb/movsw/movsdedi,
esi:这些变体按串/字节/字/双字为单位将esi寄存器指向的数据复制到edi寄存器指向的空间。movsx符号位扩展,byte-word,word-dword (扩展后高位全用符号位填充)。
然后实现mov。movzx零扩展,byte-word,word-dword(扩展后高位全用0填充),然后实现mov。
6、cmp指令,cmp指令格式:cmpdest,src
cmp指令比较dest和src两个操作数,并通过比较结果设置C/O/Z标志位。
cmp指令大概有以下几种格式:
cmpeax,ebx;如果相等,Z标志位置1,否则0。cmpeax,[404000];将eax和404000地址处的dword型数据相比较并同上置位cmp[404000],eax;同上。
7、标志位:在破解中起到的作用是至关重要的。
在逆向中,你真正需要关心的标志位只有三个,也就是cmp指令能修改的那三个:Z/O/C。
Z标志位(0标志),这个标志位是最常用的,运算结果为0时候,Z标志位置1,否则置0。
O标志位(溢出标志),在运行过程中,如操作数超出了机器能表示的范围则称为溢出,此时OF位置1,否则置0。
C标志位(进位标志),记录运算时从最高有效位产生的进位值。例如执行加法指令时,最高有效位有进位时置1,否则置0。
掌握这些指令后就可以运用ReverseMe来二进制数字密码的破译。
扩展资料:
在数学和数字电路中,二进制(binary)数是指用二进制记数系统,即以2为基数的记数系统表示的数字。这一系统中,数通常用两个不同的符号0(代表零)和1(代表一)来表示。
以2为基数代表系统是二进位制的。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(二进制位)。
把二进制化为八进制也很容易,因为八进制以8为基数,8是2的幂(8=2),因此八进制的一位恰好需要三个二进制位来表示。八进制与二进制数之间的对应就是上面表格中十六进制的前八个数。二进制数000就是八进制数0,二进制数111就是八进制数7,以此类推。
参考资料:百度百科-二进制码
2进制的密码怎么破解
老大!我是计算机专业!二进制密码。。。很难破解二进制密码貌似需要用二进制来编程!!!!!!!能使用二进制来进行简单的加减法已经是很厉害的咯,要使用二进制来编程就是要用二进制来做高等数学题目,这种人少之又少,是顶尖的程序员!!!IE!不是二进制密码,你要说的是什么密码?