最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VBA工程加密PJ方式(兩種)

 更新時間:2021年12月03日 17:16:32   作者:張翰博  
今天遇到一個excel小工具感覺不錯,想研究研究代碼,竟然有密碼,我就不淡定了。網(wǎng)上找了找代碼,改了一下就OK了。接下來通過本文給大家分享兩種方式破解VBA工程加密,需要的朋友參考下吧

兩種方式破解VBA加密代碼

第一種:

Sub VBAPassword1() '你要解保護的Excel文件路徑
    Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")
    If Dir(Filename) = "" Then
        MsgBox "沒找到相關(guān)文件,清重新設(shè)置。"
        Exit Sub
    Else
        FileCopy Filename, Filename & ".bak" '備份文件。
    End If
    Dim GetData As String * 5
    Open Filename For Binary As #1
    Dim CMGs As Long
    Dim DPBo As Long
    For i = 1 To LOF(1)
        Get #1, i, GetData
        If GetData = "CMG=""" Then CMGs = i
        If GetData = "[Host" Then DPBo = i - 2: Exit For
    Next
    If CMGs = 0 Then
        MsgBox "請先對VBA編碼設(shè)置一個保護密碼...", 32, "提示"
        Exit Sub
    End If
    Dim St As String * 2
    Dim s20 As String * 1
    '取得一個0D0A十六進制字串
    Get #1, CMGs - 2, St
    '取得一個20十六制字串
    Get #1, DPBo + 16, s20
    '替換加密部份機碼
    For i = CMGs To DPBo Step 2
        Put #1, i, St
    Next
    '加入不配對符號
    If (DPBo - CMGs) Mod 2 <> 0 Then
        Put #1, DPBo + 1, s20
    End If
    MsgBox "文件解密成功......", 32, "提示"
    Close #1
End Sub

第二種:

Option Explicit
    Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Long, Source As Long, ByVal Length As Long)
    Private Declare Function VirtualProtect Lib "kernel32" (lpAddress As Long, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
    Private Declare Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As Long
    Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
    Private Declare Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As Long, ByVal pTemplateName As Long, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Integer
    Dim HookBytes(0 To 5) As Byte
    Dim OriginBytes(0 To 5) As Byte
    Dim pFunc As Long
    Dim Flag As Boolean
Private Function GetPtr(ByVal Value As Long) As Long
    GetPtr = Value
End Function
Public Sub RecoverBytes()
    If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 6
End Sub
Public Function Hook() As Boolean
    Dim TmpBytes(0 To 5) As Byte
    Dim p As Long
    Dim OriginProtect As Long
    Hook = False
    pFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA")
    If VirtualProtect(ByVal pFunc, 6, &H40, OriginProtect) <> 0 Then
        MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, 6
        If TmpBytes(0) <> &H68 Then
            MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 6
            p = GetPtr(AddressOf MyDialogBoxParam)
            HookBytes(0) = &H68
            MoveMemory ByVal VarPtr(HookBytes(1)), ByVal VarPtr(p), 4
            HookBytes(5) = &HC3
            MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 6
            Flag = True
            Hook = True
        End If
    End If
End Function
Private Function MyDialogBoxParam(ByVal hInstance As Long, _
ByVal pTemplateName As Long, ByVal hWndParent As Long, _
ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Integer
    If pTemplateName = 4070 Then
        MyDialogBoxParam = 1
    Else
        RecoverBytes
        MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, hWndParent, lpDialogFunc, dwInitParam)
        Hook
    End If
End Function
Sub Crack()
    If Hook Then MsgBox "破解成功"
End Sub

本文來自博客園,作者:張翰博,轉(zhuǎn)載請注明原文鏈接:https://www.cnblogs.com/vbashuo/p/15638693.html

到此這篇關(guān)于兩種方式破解VBA工程加密的文章就介紹到這了,更多相關(guān)VBA工程加密破解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VBA中的循環(huán)代碼的使用

    VBA中的循環(huán)代碼的使用

    本文主要介紹了VBA中的循環(huán)代碼的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Excel?VBA指定條件刪除整行整列的實現(xiàn)

    Excel?VBA指定條件刪除整行整列的實現(xiàn)

    本文主要介紹了Excel?VBA指定條件刪除整行整列的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • VBA實現(xiàn)全文件快速替換的示例代碼

    VBA實現(xiàn)全文件快速替換的示例代碼

    要想一下子就替換掉很多個WORD文檔中的內(nèi)容,我們可以使用VBA的辦法,本文主要介紹了VBA實現(xiàn)全文件快速替換的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • VBA解決Windows空當(dāng)接龍的617局

    VBA解決Windows空當(dāng)接龍的617局

    本文給大家分享的是使用VBA解決Windows空當(dāng)接龍的617局的方法和思路,有需要的小伙伴可以參考下。
    2015-09-09
  • VBA數(shù)組去重(字典去重多種方法+數(shù)組去重2種方法)

    VBA數(shù)組去重(字典去重多種方法+數(shù)組去重2種方法)

    本文主要介紹了VBA數(shù)組去重(字典去重多種方法+數(shù)組去重2種方法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • excel vba 限制工作表的滾動區(qū)域代碼

    excel vba 限制工作表的滾動區(qū)域代碼

    如果希望限制工作表中滾動的區(qū)域,可以通過設(shè)置WorkSheet對象的ScrollArea屬性來實現(xiàn)。
    2009-07-07
  • vba將excel按照某一列拆分成多個文件

    vba將excel按照某一列拆分成多個文件

    本文主要介紹了vba將excel按照某一列拆分成多個文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2023-01-01
  • VBA中Excel宏的介紹及應(yīng)用

    VBA中Excel宏的介紹及應(yīng)用

    本文主要介紹了VBA中Excel宏的介紹及應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • VBA 中要用到的常數(shù)

    VBA 中要用到的常數(shù)

    VBA 中要用到的常數(shù)...
    2007-02-02
  • VBA UsedObjects 集合用法

    VBA UsedObjects 集合用法

    可用 Application 對象的 UsedObjects 屬性返回一個 UsedObjects 對象。
    2009-07-07

最新評論

清河县| 泰州市| 平罗县| 达拉特旗| 长沙县| 丹巴县| 乐平市| 乌海市| 图木舒克市| 延寿县| 福泉市| 通渭县| 元朗区| 新蔡县| 祁连县| 游戏| 滦平县| 正镶白旗| 定西市| 武强县| 荃湾区| 大厂| 砚山县| 防城港市| 湾仔区| 壶关县| 多伦县| 怀宁县| 汝城县| 平邑县| 太和县| 乌兰浩特市| 黑水县| 高淳县| 广宗县| 沈阳市| 武宣县| 大竹县| 柳江县| 乾安县| 湖口县|