Excel 2010でのVBAモジュールのパスワード保護バイパスの強制

こんにちは友人!

最後の日、私はそのような仕事に苦労していました。

.xlsファイルがあり、VBAにパスワードで保護されたマクロが含まれています。 ファイルは、GrandSmetプログラムからエクスポートすることで作成され、マクロで処理する必要がある推定値が含まれています。

32ビットバージョン-問題なく動作します。



64xで、次のエラーが発生しました。





マイクロソフトのヘルプは明確な答えを提供します:





テクニカルサポートに連絡し、理由を説明しました。 答えは1つです。
すべてが機能します。 64ビットバージョンでチェック。




それから私は自分でマクロコードを編集することにしました 。 困難が発生しました-モジュールはパスワードで保護されています。 特殊なパスワード解読ソフトウェアを使用せずにパスワードをリセット/変更する方法について

それでは始めましょう。 私は事前に警告します-私はプロのプログラマーではなく、むしろEniKeyschikなので、間違った処方が可能です。誰かが私が選んだ道を好まないかもしれません。

私が最初にしたことは、解決策を求めてウェブを閲覧することでした。 基本的に、カテゴリPasswordCrackerのソフトウェアへのリンクがたくさんあります。 Ru-Board'eで公開されたソリューションの1つは、VBAモジュールのコードを完全に削除しました。

最終的に、私の努力は報われました-見つかった解決策の無料翻訳を提供します(残念ながら、ソースを示すことはできません-覚えていません)+明らかになった「脆弱性」の本質を理解する試み。



Excel 2007以降、Microsoft Office Open XMLを主な形式として使用していることは誰にとっても秘密ではないと思います。



FarManagerは、ドキュメントの構造全体を表示したxlsファイルを完全に開きます。

1. FarManagerを起動します。

2.ファイルを編集用に開きます。

3. DPBキーの定義を含む行を探し、キー名をDPWに変更します。

4.保存します。

4. Excelでファイルを開きます。

5.キーが間違っているにもかかわらず、プロジェクトのロードを確認します(ステップ3でキーを間違って作成しました)。



6.エラーメッセージのあるウィンドウで、[OK]をクリックしてください。

7. Alt + F11の組み合わせを使用して、VBAエディターを実行すると、マクロコードが編集可能になります。



これで、x64でマクロを実行したときのエラーの原因が明らかになりました!



コンパイラは、このプロジェクトのコードを64ビットシステムで使用するために更新することを提案しています。具体的には、関数を宣言するときにPtrSafeキーワードを追加するだけでよいことを示しています。



変更が行われ、再保存され、確認されました。 すべてが機能します。 同僚に痛みの問題の解決に満足し、経験を積んだ。



私は行き詰まった最後の質問を解決しようとしています:

マクロを実行することで問題を解決するためのTech。Supportを説明するために、いかにわかりやすく、問題なく説明しますか? マクロがx64バージョンのOfficeで正しく動作するように、すべてのテンプレートを自分で(および50個ほど)シャッフルしないでください。 さらに、倫理的な問題-マクロコードの保護を「回避」する必要がありました。



ご清聴ありがとうございました。 コミュニティの一部にとって、この情報が役立つことを願っています。



PS問題の解決策に触発され、少しだけ質問を残しただけで、プロのフレンドリーなアドバイスを期待して、Habréに関する最初のトピックを作成することにしました。



All Articles