[WEB Tool] Office Inspector v1.0 — Word / Excel / PowerPoint の中身を覗いて、残っている情報を確かめるツール使い方ガイド

[WEB Tool] Office Inspector v1.0 — Word / Excel / PowerPoint の中身を覗いて、残っている情報を確かめるツール使い方ガイド

概要

Office Inspector は、Word / Excel / PowerPoint のファイルの中身を、ブラウザだけで覗けるツールです。

docx / xlsx / pptx の実体は ZIP ファイルで、中に XML が何十個も入っています。このツールは、それを分解して、文書の中身、XML、hex(生のバイト列)の 3 つの見方で同時に表示します。どこにカーソルを乗せても、他の見方の対応する場所が光ります。

ファイルを開くと、最初に「見つかったもの」の一覧が出ます。変更履歴で消した文章、コメント、隠し文字、非表示のシート、発表者ノート、作成者の名前、保存したフォルダのパスなど、画面には出ないが、ファイルには入っているもの です。項目を押すと、それが書かれている場所へ飛びます。

これは閲覧ソフトではありません。Word の代わりに文書を読むためのものではなく、ファイルに何が入っているかを調べる道具です。ページの見た目は描きません。

パーサーは自作で、外部ライブラリは使っていません。インストール不要で、ファイルはサーバーに送信されません。

Office Inspector

スタートメニューから起動

トップページのスタートメニューからも起動できます。

Office Inspector — スタートメニューから起動

スクリーンショット

Office Inspector — FINDINGS(見つかったものの一覧)

Office Inspector — FINDINGS

Office Inspector — CONTENT(削除された文字と隠し文字)

CONTENT タブ — 削除された文字は赤い取り消し線、隠し文字はオレンジ

Office Inspector — PART(XML と hex)

PART タブ — XML の行を選ぶと、hex の対応する範囲が光る

操作動画

操作動画

ツールの特徴

  • ブラウザ完結: インストール不要。ファイルはブラウザの中だけで解析し、サーバーには送信しません。Office が入っていなくても使えます。
  • 見つかったものの一覧: 変更履歴、コメント、見えない内容、メタデータ、外部への参照、マクロ、埋め込みファイル、保護、入れ物の異常を、種類ごとに並べます。
  • 3 方向の連動: 文書の中身・XML・hex のどこにカーソルを乗せても、他の対応する場所が光ります。
  • 参照先へ飛べる: XML の中の r:id="rId5" のような ID を押すと、指している画像やパートへ移動します。
  • ZIP の構造まで: ヘッダの 1 項目ずつに、hex のどのバイトかを対応させています。目次に載っていないデータも見つけます。
  • 旧形式も開く: doc / xls / ppt(Office 97〜2003)の文字、プロパティ、消し残りのデータを表示します。
  • マクロのソース: VBA のソースコードを取り出して表示します。開いたときに自動で動く手続きがあれば、知らせます。
  • パスワード付きも開く: パスワードを入れると、ブラウザの中で復号して、中身を開きます。
  • 壊れたファイルも開く: 途中で切れた ZIP や、閉じていない XML でも、読める範囲で開きます。
  • 全体から検索: 圧縮されたパートの中身まで、文字列で検索できます。

対応形式

項目対応
Worddocx / docm / dotx。本文、ヘッダー・フッター、脚注、コメント、変更履歴、隠し文字、フィールド
Excelxlsx / xlsm / xltx。セルの値と数式、共有文字列、日付の変換、非表示のシート・行・列、コメント、名前の定義、外部リンク
PowerPointpptx / pptm / ppsx。図形ごとの文字、表、ノート、コメント、非表示のスライド、枠外の図形
旧形式doc / xls / ppt(Office 97〜2003)。文字、プロパティ、シートの一覧、最後に保存した人の名前、VBA マクロ
パスワード付きdocx / xlsx / pptx の暗号化(Agile 方式・Standard 方式)を、パスワードで復号
そのほかodt / ods / odp(プロパティと変更履歴のみ)、任意の ZIP(構造と XML の表示のみ)
画像PNG / JPEG / GIF / BMP / WebP のプレビュー。JPEG の EXIF(撮影日時・機種・位置情報)

未対応のものは「注意事項」を見てください。


まず試す:消したはずの金額を見る

Office ファイルを知らなくても、これだけで「中に何が入っているか」が分かります。サンプルの内容は、すべて架空です。

Word

  1. 左の「▶ DOCX」を押します
  2. FINDINGS に、「変更履歴が残っています(削除 2 件・挿入 1 件)」と出ます
  3. その下の赤い行 削除 … 「1,200,000 円」 を押します

PART タブに切り替わって、XML の <w:del …> の行が選ばれます。消した金額が、消した人の名前と日時と一緒に、ファイルに残っています。

上の CONTENT タブを押すと、本文の中での位置が分かります。削除された文字は赤い取り消し線、隠し文字はオレンジです。

Excel

  1. 左の「▶ XLSX」を押します
  2. CONTENT タブを押します
  3. 上のボタンから「メモ(veryHidden)」を押します

Excel の画面からは再表示できないシートの中身が、そのまま出ます。「見積」のシートに戻ると、非表示にした列(原価)や、表示形式 ;;; で隠したセル(粗利率)にも、値が入っているのが分かります。

PowerPoint

  1. 左の「▶ PPTX」を押します
  2. CONTENT タブで、スライド「3(非表示)」を押します。スライドショーでは飛ばされるスライドです
  3. MEDIA タブを押して、写真を押します

写真の EXIF に、撮影した場所(緯度・経度)と、カメラの機種が残っています。


使い方

1. ファイルを読み込む

次のどれかで読み込みます。

方法操作
ドロップファイルをページのどこかにドロップします
ファイル選択左上の枠をクリックしてファイルを選びます
URL左上の URL 欄にアドレスを入れて LOAD。同じサイト内のファイルか、CORS が許可されたファイルに限ります
サンプル「▶ DOCX」「▶ XLSX」「▶ PPTX」で、サンプル(36KB / 8KB / 55KB)を読み込みます

拡張子は見ていません。中身の先頭で、ZIP か旧形式かを判定します。壊れたファイルも、そのまま開けます。

2. 画面の構成

場所内容
左読み込み、ファイル情報、中身のツリー
中央7 つのタブ
右hex(バイト列)
右下ステータスバー(カーソルを乗せた場所の情報)と色の凡例

3. 上部のバー

項目内容
FINDINGS 〜 STATS中央の表示を切り替えます(1〜7 キーでも切り替わります)
FINDINGS の横の数字「重要」と「注意」の件数
⌘K 移動 / 検索移動・検索パレットを開きます
? HELP操作方法のヘルプを開きます
◧左パネルの表示 / 非表示

移動・検索パレットには、次の書き方ができます。

入力動作
パート名の一部そのパートを開きます
文字列全パートの中身から検索します(圧縮されているパートも、展開して探します)
0x1a2bhex の、そのオフセットへ移動します

文字列の検索は、大文字と小文字を区別しません。マクロや埋め込みのようなバイナリのパートは、UTF-16 でも探します。

4. 左パネル

FILE INFO には、ファイルの概要が出ます。

項目内容
name / type / sizeファイル名、判定した種類、サイズ
partsZIP の中のファイル(パート)の数。目次に載っていないものがあれば、赤で出ます
unpacked展開後の合計サイズと、圧縮率
cfb / streams旧形式のとき。入れ物のバージョンと、ストリームの数
app保存したアプリとバージョン
findings見つかったものの件数

PACKAGE は、ファイルの中身のツリーです。ZIP のフォルダとパートが並びます。

色意味
黄本体のパート(word/document.xml など)
青フォルダ
紫バイナリのパート
赤どこからも参照されていないパート、または目次に載っていないエントリ

▸ で展開、クリックで中央に表示します。vbaProject.bin のような、中に別の入れ物(CFB)を持つパートは、さらに展開できます。

5. FINDINGS タブ

見つかったものの一覧です。上のボタンで、重要度ごとに絞り込めます。

分類見つけるもの
変更履歴削除・挿入された文字、変更した人と日時、書式の変更
コメントコメントの本文、書いた人、日時
見えない内容隠し文字、白い文字、非表示のシート・行・列・スライド、ノート、枠外の図形、どこからも参照されていないパート
メタデータ・個人情報作成者、最終更新者、会社名、テンプレート、保存したフォルダのパス、プリンター名、写真の位置情報
外部への参照外部の画像やブックへのリンク、データ接続、開いたときに外を読みに行くフィールド
マクロ・実行されるものVBA マクロ、自動で動く手続き、Excel 4.0 マクロシート
埋め込まれたファイル埋め込まれた文書、OLE オブジェクト、包まれたファイルの元のパス
保護・暗号化編集の制限、シートやブックの保護、パスワードによる暗号化
入れ物の異常ZIP の目次と中身の食い違い、壊れた XML、存在しないパートへの関係
重要度目安
重要実行ファイルの埋め込み、自動で動いて外に作用するマクロ、壊れている箇所
注意渡す前に確認したほうがよいもの(変更履歴、非表示のもの、名前やパスなど)
情報入っていること自体はふつうのもの

項目や、その下の行を押すと、それが書かれている場所(XML の行、hex の範囲)へ移動します。

6. CONTENT タブ

文書の中身です。上のボタンで、表示する部分を切り替えます。

種類切り替えるもの1 行の単位
Word本文、ヘッダー、フッター、脚注、コメント段落(表は 1 行ずつ)
Excelシート。非表示のシートはオレンジセル
PowerPointスライド。非表示のスライドはオレンジ図形の名前と、その中の段落。最後にノート

色の意味は次のとおりです。

表示意味
赤い取り消し線変更履歴で削除された文字
緑変更履歴で挿入された文字
オレンジ隠し文字、白い文字、非表示の行・列、非表示・枠外の図形
水色フィールドの命令(Word)、数式(Excel)
ピンクコメントや脚注の印、ノートの見出し

Excel のセルは、左から「セルの位置」「値」「数式」の順です。日付の書式が付いた数値には、横に変換した日付が出ます。

操作動作
行にカーソルを乗せる対応するバイトが hex で光ります
行をクリック選択して、hex の範囲を固定します
行をダブルクリック / Enterその場所の XML を、PART タブで開きます
「このパートの XML」表示している部分のパートを、PART タブで開きます
[ / ]前 / 次のシート・スライド

7. PART タブ

選んだパートの中身です。上に、役割、種類、サイズ、ZIP の中での位置が出ます。

XML のパートは、1 タグ 1 行で、入れ子に合わせて字下げします。左端の数字は、展開後のバイト位置(16 進)です。

操作動作
行にカーソルを乗せる対応するバイトが hex で光ります。ステータスバーに、ルートからの要素の並びが出ます
行をクリック選択して固定します
ピンクの値(r:id="rId5" など)をクリック参照先のパートへ移動します
◀ 戻る / Backspace前の画面に戻ります

上のボタンは次のとおりです。

ボタン動作
ZIP の中での位置hex を元のファイルに切り替えて、このパートの圧縮データの範囲を選択します
このパートから出る関係このパートの関係ファイル(.rels)を開きます
← 〇〇(△△)このパートを参照しているパートへ移動します
保存展開した中身をファイルに保存します
このファイルを Inspector で開く埋め込まれた文書を、新しく開きます。左上の「← 元のファイルに戻る」で戻れます
ソースをコピーマクロのソースをコピーします

XML 以外のパートは、種類に合わせて表示します。

パート表示
画像プレビューと、EXIF などのメタデータ
CFB(vbaProject.bin、埋め込みオブジェクト)ヘッダ、ディレクトリ、マクロのモジュール一覧。ストリームの行をダブルクリックで、その中身へ
マクロのモジュールVBA のソースコード
プロパティのストリーム作成者などの項目
そのほかhex だけ

8. ZIP タブ

ZIP を構成するすべての構造体を、ファイル内の位置の順に並べます。左端の数字は、ファイル上の位置(16 進)です。

構造体内容
ローカルヘッダ各エントリの先頭。名前、圧縮方式、サイズ
データ圧縮された中身
データ記述子サイズと CRC を、データの後ろに書く形式のとき
目次セントラルディレクトリ。全エントリの一覧と、ローカルヘッダの位置
EOCD末尾。目次の位置を指します
赤い行目次に載っていないエントリ、どこにも属さない領域

「フィールドを表示」を押すと、各構造体の項目(シグネチャ、圧縮方式、CRC-32 など)が 1 行ずつ出ます。カーソルを乗せると、その項目のバイトが hex で光ります。

操作動作
行をクリックhex の範囲を選択します
ローカルヘッダ・データの行をダブルクリックそのパートの中身を開きます

旧形式のファイルでは、このタブは使えません。入れ物の構造は、ツリーの一番上(ファイル名)を押すと、PART タブに出ます。

9. RELS タブ

パート同士の関係を、入口(_rels/.rels)から辿った木です。左から、関係 ID、種類、参照先です。

本文の XML には、画像のパスは書かれていません。あるのは ID だけで、対応はこの関係に書かれています。

表示意味
「外部」ファイルの外(URL やフォルダのパス)を指しています
「パートがありません」指している先が、ファイルの中にありません
末尾の赤い見出しどこからも参照されていないパート

参照先をダブルクリックすると、そのパートを開きます。

10. MEDIA タブ

画像・動画・音声の一覧です。画像はサムネイルが出ます。

表示内容
1 行目ファイル名
2 行目種類、サイズ、画像の大きさ
3 行目使っているパート。どこからも使われていなければ、赤で「どこからも参照されていない」
オレンジの行EXIF の内容(位置情報、機種など)

カードを押すと、PART タブで開きます。

11. STATS タブ

サイズの内訳です。種類ごとの合計と、パートごとの圧縮前後のサイズが、大きい順に出ます。行を押すと、そのパートを開きます。

ファイルが大きい原因を探すときに使えます。たいていは画像か、埋め込みファイルです。

12. マクロを見る

マクロのあるファイル(docm / xlsm / pptm、または旧形式)では、FINDINGS の「マクロ・実行されるもの」に、モジュールの一覧が出ます。

モジュール名を押すと、VBA のソースコードが出ます。Shell や CreateObject のような、外に作用する呼び出しは赤で表示します。

表示意味
自動実行: Workbook_Open などファイルを開いたとき・閉じたときに、自動で動く手続きがあります
外部に作用する呼び出しほかのプログラムの起動、ファイルのダウンロードなどに使われる呼び出しがあります

このツールは、マクロを実行しません。 ソースを取り出して、文字として表示するだけです。

13. パスワード付きのファイルを開く

「パスワードを付けて保存」した docx / xlsx / pptx を開くと、左に PASSWORD 欄が出ます。

  1. パスワードを入れて、OPEN を押します
  2. 合っていれば、復号した中身が、新しいファイルとして開きます
  3. 左上の「← 元のファイルに戻る」で、暗号化された状態に戻れます

復号は、ブラウザの中で行います。パスワードも、復号した中身も、送信しません。

Excel で「ブックの保護」だけを掛けたファイルは、決まったパスワードで暗号化されています。その場合は、欄に最初からパスワードが入っているので、OPEN を押すだけです。

14. HEX

バイト列です。左が 16 進、右が ASCII(文字として読めるバイト)です。

hex の表示対象は、見ているものに合わせて切り替わります。

表示対象切り替わるとき
元のファイルFINDINGS・ZIP・RELS・STATS タブ。色は ZIP の構造体ごと
パートの展開後CONTENT・PART タブ。XML は、タグ・属性の値・文字で色が変わります
ストリーム旧形式や vbaProject.bin の中の、ストリームを見ているとき

上の FILE ボタンを押すと、元のファイルに切り替えて、いま見ているパートの圧縮データの範囲を選択します。同じ中身が、圧縮された状態では読めないバイト列になっているのが分かります。

表示意味
オレンジの背景カーソルを乗せている行の範囲
緑の背景選択中の範囲
白い枠カーソルの下にあるバイト
操作動作
バイトにカーソルを乗せるそのバイトが何に属するかを、ステータスバーに表示します
バイトをクリックそのバイトを含む行を選びます。元のファイルのデータ領域なら、そのパートを開きます

15. ステータスバー

右下のステータスバーには、カーソルを乗せた場所の情報が出ます。

OFFSET 1559 (0x000617)  LEN 73
w:document › w:body › w:p › w:del
行内容
1 行目バイト位置と長さ。hex の上では、そのバイトの値も出ます
2 行目XML のときは、ルートからの要素の並び。ZIP のときは、構造体と項目の名前

16. キーボード

キー動作
Ctrl + K / ⌘ + K / /移動・検索パレット
1〜7タブの切り替え
Backspace / Alt + ←戻る
[ / ]前 / 次のシート・スライド(CONTENT)
L左パネルの表示を切り替え
?ヘルプ
Esc選択を解除 / ダイアログを閉じる

行の一覧をクリックしてフォーカスしているときは、次のキーも使えます。

キー動作
↑ ↓ PgUp PgDn選択行を移動(hex も追従)
Enter参照先を開く / XML の該当箇所へ
← →横スクロール

入力欄にカーソルがあるときは、ショートカットは効きません。


注意事項

  • ファイルはブラウザの中だけで解析します。サーバーへの送信や保存は一切しません。
  • ページを閉じたり再読み込みしたりすると、読み込んだ内容は失われます。
  • このツールは、読んで調べるためのものです。見つけたものを消したり、ファイルを書き換えたりする機能はありません。
  • 文書の見た目(ページやスライドのレイアウト)は描きません。
  • 次のものには対応していません。
    • xls のセルの位置(文字列の一覧までです)
    • doc の変更履歴を、本文と区別すること(削除された文字も、本文に混ざって出ます)
    • 旧形式(doc / xls / ppt)の、パスワードによる暗号化の復号
    • xlsb(バイナリ形式のブック)のシートの中身
    • 電子署名の検証
    • odt / ods / odp の本文(プロパティと変更履歴だけです)
  • 大きなファイルでは、1 シート 20 万セル、1 パート 40 万行で表示を打ち切ります。
  • FINDINGS に何も出なくても、「何も残っていない」ことの保証にはなりません。画像の中に写っている文字や、このツールが知らない場所に書かれた情報は、見つけられません。
  • マクロのソースの「外部に作用する呼び出し」は、単語を拾っているだけです。安全かどうかの判定ではありません。

よくある質問 (FAQ)

Q. 変更履歴で消した文章が見えるのは、このツールが何かを復元しているのですか
A. 何も復元していません。「変更履歴の記録」をオンにして編集した文書は、削除した文字が、そのままファイルに入っています。Word でも、表示を「すべての変更履歴」にすれば見えます。

Q. 渡す前に、残っている情報を消したい
A. このツールには、消す機能がありません。Word / Excel / PowerPoint の「ファイル」→「情報」→「問題のチェック」→「ドキュメント検査」を使ってください。変更履歴は、先に「すべての変更を承諾」してください。消した後に、もう一度このツールで開くと、消えたかどうかを確かめられます。

Q. PDF にして渡せば、大丈夫ですか
A. 変更履歴や非表示のシートは、PDF にするときに落ちます。ただし、作成者の名前などのプロパティは、PDF にも引き継がれることがあります。コメントを含めて出力する設定もあります。

Q. 非表示にしたシートは、相手に見えますか
A. 見えます。Excel でシートの見出しを右クリックして「再表示」を押すだけです。veryHidden のシートはメニューに出ませんが、このツールのように中身を読むソフトからは、ふつうに見えます。「シートの保護」や「ブックの保護」を掛けても、中身は暗号化されません。

Q. 「どこからも参照されていないパート」とは何ですか
A. ファイルには入っているが、文書のどこからも使われていないデータです。Office の画面には出ません。Office 以外のソフトで加工したファイルに、差し替える前の画像などが残っていることがあります。

Q. docx が ZIP だというのは、本当ですか
A. 本当です。拡張子を .zip に変えると、ふつうの展開ソフトで開けます。このツールの hex の先頭を見ると、50 4B 03 04(PK)で始まっています。ZIP ファイルの印です。

Q. パスワード付きのファイルを、パスワードなしで開けますか
A. 開けません。正しいパスワードが必要です。例外は、Excel の「ブックの保護」だけを掛けたファイルです。これは決まったパスワードで暗号化されているので、誰でも開けます。

Q. マクロのあるファイルを、このツールで開いても安全ですか
A. このツールは、マクロを実行しません。ソースを文字として表示するだけです。ただし、ブラウザで開いた後に、同じファイルを Office で開いてマクロを有効にすれば、マクロは動きます。

Q. doc や xls を開くと、文字の一覧しか出ません
A. 旧形式は、文字と、残りやすい情報だけを取り出しています。書式や表の構造までは読んでいません。入れ物の構造は、ツリーの一番上を押すと出ます。

Q. 「使われていない領域に、データが残っています」とは何ですか
A. 旧形式のファイルは、保存のたびに、中身の置き場所が入れ替わります。使われなくなった場所は「空き」になるだけで、前の内容が残ることがあります。少しであれば、ごくふつうに起きます。中身は hex で赤く表示されます。

Q. URL から読み込めません
A. 別のサイトのファイルは、そのサイトが CORS を許可していないと、ブラウザの制限で読み込めません。ファイルをダウンロードしてから、ドロップしてください。

技術記事

実装の詳細は、技術記事にまとめています。

PDF 版もあります。

更新履歴

バージョン日付内容
v1.0.02026/10/4初回公開(文書の中身・XML・hex の連動、見つかったものの一覧、ZIP の構造、関係の木、旧形式、マクロのソース、パスワード付きファイルの復号)

クレジット

本ツールは、外部ライブラリを使わずに作っています。

  • ZIP・XML・CFB のパーサー / deflate の展開 / VBA の展開 / 暗号(AES・SHA)/ UI — 自作
  • 画像の表示 — ブラウザのデコーダ

検証には次のものを使いました(ページには含まれていません)。

  • Apache POI のテストデータ — Apache License 2.0(1,449 ファイル)
  • olefile / oletools — BSD(旧形式の入れ物と、マクロのソースの突き合わせ)
  • msoffcrypto-tool — MIT(復号結果の突き合わせ)
  • python-docx / openpyxl / python-pptx — MIT(文字の突き合わせと、サンプルの土台)
  • LibreOffice — サンプルが開けることの確認

仕様は、ECMA-376(Office Open XML)、APPNOTE.TXT(ZIP)、Microsoft の公開仕様(MS-CFB、MS-OVBA、MS-OFFCRYPTO、MS-OLEPS、MS-DOC、MS-XLS、MS-PPT)を参照しています。