情報の漏洩防止ソフトMiharuPCを作りました
クリップボードから、MsOffice内に重要な情報が張付けられていないか監視するために、MsOfficeから文字を抽出するこ事をやっています。
その方法を紹介します、まずはExcelから
MsOfficeのファイルは複数のXMLファイルをZIPで固めた物です。 拡張子を「xlsx」から「zip」に変えるだけで、解凍できます。
「新規 Microsoft Office Excel 2007 ブック.xlsx」から「新規 Microsoft Office Excel 2007 ブック.zip」に変換した例を記します。
ディレクトリ「xl」内にシートと対応するXMLファイルがあります
sheet1の内容です
数値データは「sheet1.xml」内に直接保持しているのですが、文字列に関しては文字列データの番号のみを保持しています
文字列は「sharedStrings.xml」内に保持しています
「sharedStrings.xml」の内容です
文字列の番号はsharedStrings.xmlに保持していない様ですが、<si>タグのうえから0番、1番・・・と続いている様です。
以下MiharuPCの説明です
Excelのファイルを解析する為の良いライブラリーが出回っていますが、MiharuPcは主記憶常駐なので処理を軽くするために「System.Xml」を使って手作業でやりました
MiharuPCの「MSOF_OffiseDocument」がMicrosoftOfficeドキュメントを扱うクラスです。
「MSOF_ExcelDocument」はその下のExcel解析用で 、「MSOF_SheetDocument」は 「sheet*.xml」のラッピングクラスで「MSOF_ExcelString」は「sharedStrings.xml」のラッピングクラスです。
MsOfficeのバージョンは2007 2013 2016で確認しました
ソースリストはMiharuPCのホームページからダウンロードできます
0 件のコメント:
コメントを投稿