web-dev-qa-db-ja.com

Hex Editorを介したExcel VBAパスワード

過去に何度も "Hex Editor to DPB to DPx"を使用して、古いExcel VBAプロジェクト(.xls)でVBAプロジェクトのセキュリティをバイパスしていました。

しかし、私は昨日それをやろうとしましたが、もう機能していないようです。 Excel 2011(Mac)とExcel 2003(Windows)の両方を使用してみましたが、どちらの場合も同じ動作になりました。

VBAエディターを開くと、プロジェクトが破損しており、プロジェクトが削除されるというメッセージが表示されました。その後、VBAエディターが開き、モジュールとワークシートからすべてのVBAが削除されます。

私はこの方法を試しました: Excel VBAプロジェクトでパスワードを解読する方法はありますか? (つまり、既知のパスワードでスプレッドシートを作成し、関連するフィールド間でコピーする)

しかし、「ダミー」スプレッドシートで作成された「GC」キーの長さは、アクセスしたいスプレッドシートの「GC」キー(「ターゲット」)よりも短いことがわかります。 「ターゲット」キーがより長い場合、「ダミー」キーを同じ長さまでパディングできるが、逆の場合に何をすべきかを見つけることができないことを別の場所で読みました。

だから-私の質問(秒)。

  • 「16進エディタ」アプローチを無効にするパッチが適用されているかどうか誰もが知っていますか?
  • ダミーキーがターゲットキーよりも長い場合、誰でも何をするのを手伝うことができますか?
  • 他の誰かがこの問題に関する最新のオンサイトを提供できますか?

EDITこれを(ある程度)解決したので、ここに要約を追加すると思いました。

IHAVE NOTは、これをMac Excel 2011で機能させることができました。ファイルをfilname.xlsmからfielname.Zipに変更し、再び元に戻す結果Excel 2011が認識を拒否する破損したExcelファイル。

I DIDは、.xlsmファイル名を.Zipに変更し、vbaproject.binファイルのDPB = AND GC =値を編集することにより、これを古いWindowsマシン(XP/Excel 2007)で動作するように管理します。 16進エディタを使用して、これを.Zipファイルに保存してから、.Zipの名前をxlsmに戻します。一番下でRickoが提供した「テスト」の例を使用し、1つのCAVEATで機能しました。GC値を「パディング」して、ファイルの元の値と同じ長さにしなければなりませんでした。

ORIGINAL:       GC="0F0DA36FAF938494849484"
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF4"  (from Ricko below)
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF40000"  (what i used and what worked)
29
Andrew

今日同じ問題があったので、あなたの答えがあります:

誰かが.xlsm(2007+バージョン)を含むすべてのExcelファイルに対して、vba保護パスワードを「マクロ」に変更するvbaコードを作成しました。彼のコードを参照すると、その仕組みを確認できます。

これは男のブログです: http://lbeliarl.blogspot.com/2014/03/Excel-removing-password-from-vba.html ここにあります作業を行うファイル: https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit

彼のブログの以前の投稿から貼り付けました。

Excel 2007/2010(.xlsm)ファイルの場合、次の手順を実行します。

  1. 新しい.xlsmファイルを作成します。
  2. VBA部分で、単純なパスワード(たとえば「マクロ」)を設定します。
  3. ファイルを保存して終了します。
  4. ファイルの拡張子を「.Zip」に変更し、アーカイバプログラムで開きます。
  5. ファイルを見つけます: 'vbaProject.bin'( 'xl'フォルダー内)。
  6. アーカイブから抽出します。
  7. 抽出したファイルを16進エディターで開きます。
  8. DPB = "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A"のように、パラメーターDPB(引用符内の値)から値を見つけてコピーします。 (この値は「マクロ」パスワード用に生成されます。このDPB値を使用して、手順1〜8をスキップできます)

  9. パスワードが不明なファイル(ロック解除するファイル)に対して手順4〜7を実行します。

  10. 手順8でコピーした値で、このファイルのDBP値を変更します。

    コピーされた値が暗号化されたファイルよりも短い場合、欠落している文字に0(ゼロ)を入力する必要があります。値が長い場合-それは問題ではありません(そのまま貼り付けます)。

  11. 「vbaProject.bin」ファイルを保存して、16進エディターを終了します。

  12. 既存の「vbaProject.bin」ファイルを変更されたファイルで置き換えます。
  13. 拡張子を「.Zip」から「.xlsm」に戻す
  14. ここで、VBAコードを表示するために必要なExcelファイルを開きます。VBAコードのパスワードは単にマクロです(ここに示した例のように)。
51
Morosho

新しいバージョンでは、GC =もあります。DPBとGCの両方をこれらに置き換えてください。

DPB = "DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC = "BAB816BBF4BCF4BCF4"

パスワードは「テスト」になります

16
Ricko
  1. 16進エディターでxlsファイルを開きます。
  2. DPBを検索
  3. DPBDPxに置き換えます
  4. ファイルを保存。
  5. Excelでファイルを開きます。
  6. メッセージボックスが表示されたら、[はい]をクリックします。
  7. VBAプロジェクトプロパティから新しいパスワードを設定します。
  8. ファイルを閉じて再度開き、新しいパスワードを入力して保護を解除します。

チェック http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/

13
John

.xlsmの代わりに.xlsファイルを扱う場合は、古い方法を使用できます。 vbaProject.binメソッドを使用して.xlsmDBP->DBxを何度も変更しようとしていましたが、それが機能せず、DBPの値も変更できませんでした。だから私は非常に驚いた次が働いた:
1。 .xlsmとして.xlsとして保存します。
2。 DBP->DBx.xlsメソッドを使用します。
3。残念ながら、変更された.xlsファイルを使用するとエラーが発生する場合があります。.xls.xlsxとして保存し、モジュールを追加してから.xlsmとして保存する必要があります。

4
Qbik