MSExcelでのVBAプロジェクト保護

こんにちは!私は通常のMSExcelユーザーです。プロのプログラマーではありませんが、VBAプロジェクトの保護をインストールしてバイパスするのに十分な経験を積んでいます。



免責事項:



この記事では、不正アクセスからのVBAプロジェクトの保護の種類について説明します。彼らの長所と短所はランク付けされています。



この記事の目的は、MSOfficeのVBAプロジェクトの各タイプの保護の長所と短所を示すことです。Macro Tools VBA



アドオンで、1つまたは別の保護を削除およびインストールするための開発済みツールのデモンストレーション。  すべてのツールは、追加のライブラリを使用せずに、標準のVBAツールを使用して実装されます。 









メインパネルアドインマクロツールVBA



最初のタイプの保護-通常のパスワード



削除する時間:即座に



短所:パスワードで保護されたVBAモジュールの



標準ツールにすばやくアクセスできます(VBEの場合:[ツール]パネル-> [VBAプロジェクトのプロパティ]-> [保護])。 



最も簡単に取り外し可能な保護。この保護を解除するためのコードをインターネット上で見つけるのは簡単です。 



この保護は、次のツールを使用して削除できます。





2番目のタイプの保護-プロジェクトは表示できません



削除する時間:10〜15分(手動)



短所:VBAモジュールのソースコードへのアクセス



最も一般的なタイプの保護の1つ。VBAモジュールで保護されたファイルの95%で見つかりました。プロジェクトを開こうとすると、ダイアログボックスが開き、「プロジェクトは表示できません」というメッセージが表示されます 





多くのバリエーションとニュアンスがあるため、ほとんどのExcelユーザーはこの保護を削除できません。削除するには、Excelファイルの内部構造を理解しておく必要があります。



このタイプの保護は、キーの変更に基づいています。



CMG=«4A488FCC54D054D054D054D0»

DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»




ファイル内vbaProject.bin。 





この保護がどのように作成されるかを簡単に説明します



この保護を作成するには、Excelファイルを解凍する必要があります。アーカイブ内のxlフォルダーに移動し、vbaProject.binファイルを開きます。ファイルの最後にキーがあり、キー値を編集して空にし、ファイルを保存します。アーカイブをExcelファイルに変換し直します。完了しました。 



これはこの保護の最も単純なバージョンですが、多くの変更があります。



保護プロジェクトを削除するためのアルゴリズムは表示されません。



1)実験ファイルを解凍し、ファイルに移動します  ... \ xl \ _rels \ workbook.xml.rels









2)ファイルでworkbook.xml.rels  私たちは言葉を含む行を探している  VBAProjectのは、通常は次のようになります  /> この行では、ターゲットキーとその値に関心があります。値は、VBAプロジェクトを含むファイルの名前です。プロテクターがキー値をprinterSettings.binに変更することがあります。VBAプロジェクトのファイルが別のファイルに偽装されていることが判明しました。



3)編集用のターゲットキーで指定されたファイルを開き、ファイル内CMG、DPB、GCキーを探します  。また、名前の文字を他の文字に変更します。例:CMC、DPC、CC..。検索するときは注意が必要です。防御側は、キーの1つを繰り返す署名付きのフォームをプロジェクトに入れることができるためです(例:DPB = "0B09CE0F8E108E108E")。変更すると、VBAプロジェクトはExcelワークブックから削除されます。ファイルを保存して閉じます。



4)アーカイブをExcelファイルに変換し直します。



5)Excelを起動し、次の手順を実行します。[セキュリティセンター]-> [マクロオプション]-> [通知なしですべてのマクロを無効にする]。 Excelを再起動します。この操作は、マクロの作成者によって設定されることがある保護をブロックするために必要です。この保護は次のように実装されます。 VBAモジュール「ThisBook」、本を開いたり閉じたりするイベントに対応する手順が作成されます。これらのイベントは通常、VBAプロジェクトのパスワードの存在、保存の禁止などをチェックします。



6)ファイルを開きます。すべてが正しく行われると、Excelはパラグラフ3で編集した間違ったキーを誓います。これらのメッセージが終了してダイアログボックスが閉じるまで、[はい]をクリックします。 



      このメッセージが表示されない場合は、VBAプロジェクトを含むファイルを編集していません。





7)VBAプロジェクトを開きます。結局のところ、VBAプロジェクトは利用可能であるはずです。



8)ただし、保護が解除されない場合は、ファイルを保存する必要があります。実際に保存されていることを確認してください。そして再び行われたファイルは通常時にこの問題が発生した7まで1ステップworkbook.xml.relsキーでターゲットを  設定printerSettings.bin .IF保存を、Excelがの値にそれを修正するvbaProject.bin



この保護インストールおよび削除できるツールは次のとおりです。





3番目のタイプの保護-非表示モジュール、非表示VBAモジュール



削除時間:15〜20分(たとえば、OLEオブジェクトエディター、構造化ストレージビューアーが必要です。



短所:VBAモジュールコードへのアクセス



通常、プロジェクト保護と組み合わせて、あまり一般的ではないタイプの保護が見られます。この保護がインストールされている場合、VBAモジュールはExcelワークブックプロジェクトに表示されません。VBAコードを分析するか(時間がかかります!)、OpenOfficeまたはLibreOfficeでExcelファイルを開くことでその存在を確認できます  (プロジェクトを保護するときにコードを見ることができます。表示できませんが、この方法では、パスワードなしで作業ファイルを取得する機会は提供されません)。 





LibreOfficeで VBAコードを表示する 



この保護がどのように作成されるかを簡単に説明します



この保護を作成するには、ファイルの設定に応じて、VBAプロジェクト(vbaProject.bin  またはprinterSettings.binを使用してファイルを編集する必要があります... \ xl \ _rels \ workbook.xml.relsファイルの最後で、Module1 = 32、32、635、330、Zのような行が削除されます。目的のモジュール名を使用します。





この保護を削除するには、削除したモジュールレコードvbaProject.binファイルに復元する必要があります



この保護は、次のツールで設定できます。





4番目のタイプの保護-コードの難読化



撤回する時間:不明、コードのサイズとコードの一部の再利用によって異なります





難読化されたVBAコード



短所:操作性について難読化後にファイルをテストする必要が



あるVBAソースコードを人間が読み取れない形式に変更することに基づく非常にまれなタイプの保護。すべてのコメント、コードのフォーマットが削除され、すべての変数、プロシージャ、関数、モジュールなどの名前が変更されます。攻撃者はコードの元の形式を復元することはできず、人間が読み取れる形式に復元するには多くの時間がかかります。  



コードの難読化を解除するには、時間のある専用のソフトウェアが必要です。



この保護は、次のツールで設定できます。





5番目のタイプの保護-dllへのコードの移植



削除する時間:不明、プログラミング言語と資格によって異なります



短所:追加のdllファイルの必要性



最もまれなタイプの保護の1つ。主なアイデアは、メインコードを他のプログラミング言語で記述された別のdllに転送することです。このタイプの保護は、次の理由で普及していません。Excelファイルが必要なため、追加のファイルdllを「ドラッグ」します。



dllコードにアクセスするには、特別な知識が必要です。



結論



結論として、保護の無用さを強調したいと思います。  プロジェクトは表示不能で非表示のモジュールであり、本質的には何も保護しません。OpenOffice    LibreOfficeなどのプログラムで元のファイルを変更せずにVBAコードを表示できますしたがって、問題なく削除されます。



All Articles