読み取り専用属性属性が設定されたOffice Open XML(OOXML)形式のファイル(.pptx/.xlsx/.docx等)のパスワードを簡単に除去することができるツール「Officer Breaker」がGitHubで公開されています。
同サイトによると、Officer Breakerのソースコードは、JDK 8+以降、Apache Antを使用し、プロジェクトフォルダの直下で以下のコマンドを実行することでビルド可能。
ant -buildfile build.xml
実行後.dist/フォルダ以下にjarファイルが作成されるので、これを使用します。
もしくはGitHubのリリースページからjarファイルを直接ダウンロードすることができます。
目次
動作原理は簡単
Officer Breakerの動作原理は単純で、.pptx/.xlsx/.docxを展開し、中に含まれている特定のファイルからパスワード設定に関連した要素を削除するというものです。
例えば.pptxファイルの構造は以下のようになっており、7zipやその他圧縮解凍ツールを利用して中身を取り出すことができます。
myFile.pptx . ├── docProps │ ├── app.xml │ ├── core.xml │ ├── custom.xml │ └── thumbnail.jpeg ├── ppt │ ├── handoutMasters │ ├── media │ ├── media │ ... │ ... │ ... │ └── presentation.xml ├── _rels │ ├── .rels └── [Content_Types].xml
通常の方法でファイルをクラックすることはほぼ不可能であるものの、presentation.xmlに含まれるセキュリティ要素p:modifyVerifierを削除するだけで目的を達成することができると説明されています。
将来のバージョンのOOXMLファイルタイプでは、要素の命名規則や、フォルダ、ファイルの構造が大幅に変更される可能性はあるものの、同じセキュリティ対策がとられるのならば同様の問題が残ることになると、ツールの作者は警告しています。