(57)【要約】【課題】本発明の課題は、不正なファイル複製を予防するファイル管理装置を提供することである。【解決手段】関数動作情報の取得開始指示の入力を受け付けて、オペレーティングシステムに関数を特定する情報と引数と戻り値とを含む関数動作情報を通知するように指示する関数動作情報提供指示関数に、関数動作情報の通知を開始するように、指示して、オペレーティングシステムから関数動作情報受け取って、前記取得対象情報を参照して、取得対象情報が指定するファイル操作関数の関数動作情報を選択して、既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むログデータを作成する、ファイル管理装置である。【選択図】図１
2007304737.tif 000002
【特許請求の範囲】
【請求項１】
ファイル操作関数と、オペレーティングシステムに関数を特定する情報と引数と戻り値とを含む関数動作情報を通知するように指示する関数動作情報提供指示関数と、を含む関数ライブラリと、
ファイル操作関数を特定する情報を記載した取得対象情報と、
既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むログデータと、
を記憶する記憶手段と、
関数動作情報の取得開始指示の入力を受け付けて、関数動作情報提供指示関数に、関数動作情報の通知を開始するように、指示する取得開始手段と、
前記取得対象情報を参照して、オペレーティングシステムから受け取った関数動作情報の中から、取得対象情報が指定するファイル操作関数の関数動作情報を選択する関数動作情報取得手段と、
関数動作情報取得手段が選択した関数動作情報を用いて、ファイル操作履歴を含むログデータを作成するログ保存手段と、
を備えることを特徴とするファイル管理装置。
【請求項２】
ファイル操作関数と、オペレーティングシステムに関数を特定する情報と引数と戻り値とを含む関数動作情報を出力するように指示する関数動作情報提供指示関数と、を含む関数ライブラリと、
ファイル操作関数を特定する情報を記載した取得対象情報と、
既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むログデータと、
を用いるファイル管理方法であって、
関数動作情報の取得開始指示の入力を受け付けて、関数動作情報提供指示関数に、関数動作情報の通知を開始するように、指示する取得開始ステップと、
前記取得対象情報を参照して、オペレーティングシステムから受け取った関数動作情報の中から、取得対象情報が指定するファイル操作関数の関数動作情報を選択する関数動作情報取得ステップと、
関数動作情報取得手段が選択した関数動作情報を用いて、ファイル操作履歴を含むログデータを作成するログ保存ステップと、
を含んだ手順でなされることを特徴とするファイル管理方法。
【請求項３】
コンピュータに組込むことによって、コンピュータを請求項１に記載のファイル管理装置として動作させるコンピュータプログラム。
【請求項４】
請求項３に記載のコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイルの操作（たとえば、ファイルの上書き保存や複写）を検知することで、情報漏洩の予防を含むセキュリティ対策を図る装置、および、その方法に関するものである。
【０００２】
近年、個人情報のような外部漏洩してはならない情報を持った機密ファイルに対して、セキュリティ対策が図られている。
【背景技術】
【０００３】
特許文献１では、暗号化した電子ファイルの利用権限の併用禁止（たとえば、暗号ファイル参照権限と平文保存権限と暗号ファイル複製権限とから、複数権限の併用禁止）して、電子ファイル利用を許可する技術が開示されている。（従来技術１）
特許文献２では、機密ファイルの利用範囲（たとえば、参照のみ、参照と編集のみ、参照と編集と複写、など）を、利用者ごとに定めて、その利用権限の範囲で、電子ファイルの利用許可を与える技術が開示されている。（従来技術２）
【特許文献１】特開特開２００５−１６５９００号公報（１０〜１２ページ、図３、６）
【特許文献２】特開特開２００５−３０１３８６号公報（８〜１１、１３〜１４ページ、図２−９，１１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、従来技術１、および、従来技術２では、電子ファイルの利用方法については、詳細に管理しているが、ファイル操作の履歴記録がないために、ファイルが保存（たとえば、上書き保存や複製保存）されたときに、利用者が意図した保存であるのか、悪意のプログラムによる不正な複製保存であるのかを判別できないという問題点があった。さらには、ファイル操作の履歴記録がないために、不正なファイル保存が行われていないことを証明できないという欠点があった。
【０００５】
本発明はこのような従来技術を考慮してなされたものであって、本発明の課題は、不正なファイル複製を予防するファイル管理装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、以下のような解決手段により、前記課題を解決する。すなわち、請求項１の発明は、ファイル操作関数と、オペレーティングシステムに関数を特定する情報と引数と戻り値とを含む関数動作情報を通知するように指示する関数動作情報提供指示関数と、を含む関数ライブラリと、ファイル操作関数を特定する情報を記載した取得対象情報と、既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むログデータと、を記憶する記憶手段と、関数動作情報の取得開始指示の入力を受け付けて、関数動作情報提供指示関数に、関数動作情報の通知を開始するように、指示する取得開始手段と、前記取得対象情報を参照して、オペレーティングシステムから受け取った関数動作情報の中から、取得対象情報が指定するファイル操作関数の関数動作情報を選択する関数動作情報取得手段と、関数動作情報取得手段が選択した関数動作情報を用いて、ファイル操作履歴を含むログデータを作成するログ保存手段と、を備えることを特徴とするファイル管理装置である。
【０００７】
ここで関数動作情報とは、たとえば、関数の名称情報と、引数と戻り値である。
【０００８】
したがって、関数動作情報取得手段は、確実に、ファイル操作関数の処理動作を把握することができるファイル操作するときに作成されるログデータを解析することで、不正な操作を確実に発見することができる。
【０００９】
請求項２の発明は、ファイル操作関数と、オペレーティングシステムに関数を特定する情報と引数と戻り値とを含む関数動作情報を出力するように指示する関数動作情報提供指示関数と、を含む関数ライブラリと、ファイル操作関数を特定する情報を記載した取得対象情報と、既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むログデータと、を用いるファイル管理方法であって、関数動作情報の取得開始指示の入力を受け付けて、関数動作情報提供指示関数に、関数動作情報の通知を開始するように、指示する取得開始ステップと、前記取得対象情報を参照して、オペレーティングシステムから受け取った関数動作情報の中から、取得対象情報が指定するファイル操作関数の関数動作情報を選択する関数動作情報取得ステップと、関数動作情報取得手段が選択した関数動作情報を用いて、ファイル操作履歴を含むログデータを作成するログ保存ステップと、を含んだ手順でなされることを特徴とするファイル管理方法である。
【００１０】
請求項３の発明は、コンピュータに組込むことによって、コンピュータを請求項１に記載のファイル管理装置として動作させるコンピュータプログラムである。
【００１１】
請求項４の発明は、請求項３に記載のコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体である。
【発明の効果】
【００１２】
本願発明によれば、不正なファイル複製を発見することが可能である。また、不正なファイル複製がないことを証明することが可能である。
【発明を実施するための最良の形態】
【００１３】
（実施例）
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。図１は、ファイル管理装置１００の詳細な構成図である。
【００１４】
ファイル管理装置１００は、取得開始手段１１０と、関数動作情報取得手段１２０と、ログ保存手段１５０と、記憶手段１９０と、を備える。記憶手段１９０は、関数ライブラリ１９１と、取得対象情報１９３と、ファイル１９５と、ログデータ１９９と、ファイル操作データ１９７と、を記憶する。
【００１５】
関数ライブラリ１９１は、ファイル操作関数（たとえば、ファイルを開く関数や、ファイルを保存する関数）と、オペレーティングシステム（＝ＯＳ）に関数ライブラリ１９１の関数の関数動作情報（たとえば、関数名称情報と、引数と戻り値）を出力するように指示する関数動作情報提供指示関数と、を含んだ関数のプログラム・コードである。ログデータ１９９は既存のファイルについての上書き保存なのか、マニュアル入力による別名保存ファイルを指定した上での別名保存なのか、マニュアル入力による別名保存ファイル指定を伴わない別名保存なのか、を区別した記録を含むデータである。取得対象情報１９３は、関数動作情報取得手段が関数動作情報を選択するファイル操作関数を指定する関数名称情報を含むデータである。
【００１６】
なお、各関数は、引数や戻り値を有している。
【００１７】
取得開始手段１１０は、取得開始指示の入力を受け付けて、関数動作情報提供指示関数を関数ライブラリ１９１から呼び出す。
関数動作情報取得手段１２０は、ＯＳが出力した関数動作情報に含まれる関数名称情報を用いて、前記記憶手段に記憶される取得対象情報１９３を参照して、取得対象情報１９３が指定するファイル操作関数の関数動作情報であることを判定して、選択する。
【００１８】
ログ保存手段１５０は、関数動作情報取得手段１２０が選択した関数動作情報のファイル操作関数の引数や戻り値を用いて、ファイル操作履歴を含むログデータ１９９を作成する。
【００１９】
取得開始手段１１０と、関数動作情報取得手段１２０と、ログ保存手段１５０と、関数ライブラリ１９１と、は、コンピュータプログラムである。取得対象情報１９３と、ファイル１９５と、ログデータ１９９と、ファイル操作データ１９７と、は、コンピュータプログラムが可読なデータである。記憶手段１９０は、メモリである。
【００２０】
なお、関数ライブラリ１９１とは、オペレーティングシステム（＝ＯＳ）が備えている特定の処理を行う関数（＝コンピュータプログラム）の集合である。この関数は、所定の記憶領域に記憶されている。それぞれの関数は、アプリケーションプログラム（たとえば、マクロソフト（登録商標）のワードパッド（wordpad.exe）やメモ帳（notepad.exe））に呼び出されると（＝システムコールされるともいう。）、ファイル管理や、表示や、印刷や、キーボード・マウス入力情報の取得、などの処理を行う。
【００２１】
ここで、ＯＳとは、アプリケーションプログラムの動きを補助するプログラムである。アプリケーションプログラムの起動や、アプリケーションプログラムが関数を呼び出すときの仲介などを行う。
【００２２】
図２は、ファイル管理装置１００の大まかな処理の流れを説明する図である。
【００２３】
ファイル管理装置１００は、取得開始の指示を受け付けて、取得対象情報１９３が指定するファイル操作関数の関数動作情報の読取を開始する（図２（１））。
【００２４】
ファイル管理装置１００は、取得対象情報１９３が指定する「ファイルを開く関数」が、ファイル１９５を開くときに、ファイル操作データ１９７を作成して保持する（同（２））。
【００２５】
ここで、「ファイルを開く」とは、ファイル管理データを読み取る行為である。アプリケーションプログラムは、読み取ったファイル管理データを用いて、ファイルからファイルデータを取り込む。また、アプリケーションプログラムが、ファイルにファイルデータを書き込むときにも、「ファイルを開く」行為が、必要になる。
【００２６】
ファイル管理装置１００は、取得対象情報１９３が指定する「ファイルを保存する関数」が、ファイル１９５に上書き保存をするときに、上書保存ログデータ１９９を記録する（同（３））。ファイル管理装置１００は、取得対象情報１９３が指定する「ファイルを保存する関数」が、ファイル１９５に別名保存するときに、別名保存ログデータ１９９を記録する（同（４））。
【００２７】
ファイル管理者は、不正ファイル操作調査をするときに、ログデータ１９９を参照することで、ファイルの不正操作を発見することができる、また、ファイル管理者は、同様にして、ファイルの不正操作がなかったことを証明することができる（同（５））。
【００２８】
つまり、ファイル管理装置１００を用いてファイル操作する者に対して、不正なファイル操作を抑制させるという効果が得られる。
【００２９】
図３は、関数ライブラリ１９１の例である。図３には、関数ライブラリ１９１に含まれる関数として、プログラム名取得関数１７１、ファイル設定関数１７２、ファイル取得関数１７４、別名保存指示受付関数１７５、ファイル保存関数１７６、関数動作情報提供指示関数１７７などが例示されている。
【００３０】
図４と図１２とは、関数の動作を説明する図である。図１２は、関数動作情報提供指示関数（SetWindowsHookEx関数）(Windows：登録商標）の動作が、図示されている。
【００３１】
図１２には、アプリケーションプログラム８００によって呼び出された関数動作情報提供指示関数１７７の動作が、図示されている。
【００３２】
取得開始手段１１０は、取得開始の指示を受け付けて、関数動作情報提供指示関数１７７（SetWindowsHookEx関数））(Windows：登録商標）を呼び出す（図１２（１））。
【００３３】
呼び出された関数動作情報提供指示関数１７７は、 ＯＳ９００に、「関数動作情報取得手段１２０」に関数動作情報を通知するように、指示する（同（２））。
【００３４】
ＯＳ９００は、アプリケーションプログラム８００の関数の呼出命令８００ａが、関数ライブラリ１９１の関数を呼び出したら、関数動作情報を読み取って、関数動作情報取得手段１２０に、通知する（同（３））。
【００３５】
関数動作情報取得手段１２０は、ＯＳ９００から、関数動作情報の関数名を受け取り、取得対象情報１９３を参照して、関数名と一致するものがあれば、取得対象の関数であると判断して、ＯＳ９００から、引数や戻り値を含む関数動作情報を読み取る（同（４））。
【００３６】
図４には、アプリケーションプログラム８００によって呼び出されたファイル操作をする主な関数の動作が、図示されている。以下に、取得対象のファイル操作関数の動作を、個々に説明する。
【００３７】
アプリケーションプログラム８００は、関数を特定する情報を含んだ関数呼出命令８００ａを、発行して、関数ライブラリ１９１から、所望の関数を呼び出す（図４（１））。
【００３８】
プログラム名取得関数１７１（たとえば、GetModuleFileName関数）は、ファイルを開いたアプリケーションプログラムのプログラム名８００ｅを取得する。ＯＳ９００は、プログラム名取得関数１７１から、プログラム名取得関数名と、プログラム名８００ｅを含む引数と戻り値とを、受け取って、関数動作情報取得手段１２０に、渡す（同（２））。
【００３９】
ファイル設定関数１７２（たとえば、CreateFile関数）は、場所情報（パス）を含む読取ファイル名１８０ａの入力を受け付けて、ファイル１９５ａを開く。ＯＳ９００は、ファイル設定関数１７２から、読取ファイル名１８０ａを含む引数と戻り値を受け取って、関数動作情報取得手段１２０に、渡す（同（３））。
【００４０】
ファイル取得関数１７４（たとえば、ReadFile関数）は、読取ファイル名１８０ａを受け取って、読取ファイル名のファイル１９５ａのファイルデータ１９５ｃを読み取って、主記憶上に、保持する。ＯＳ９００は、読取ファイル名１８０ａを含む引数と戻り値を受け取って、関数動作情報取得手段１２０に、渡す（同（４））。
【００４１】
ここで、アプリケーションプログラム８００（たとえば、wordpad.exe）は、主記憶上のファイルデータ１９５ｃを操作（追加、削除、変更）する（同（５））。
【００４２】
ファイル保存関数１７６（たとえば、WriteFile関数）は、読取ファイル名１８０ａと主記憶上のファイルデータ１９５ｃを受け取って、読取ファイル名のファイル１９５ａに、上書き保存する。ＯＳ９００は、ファイル保存関数１７６から、読取ファイル名１８０ａ（この場合、WriteFile関数の引数）を含む引数と戻り値を受け取り、関数動作情報取得手段１２０に、渡す（同（６））。
【００４３】
別名保存指示受付関数１７５（たとえば、GetSaveFileName関数）は、ファイル選択ダイアログに入力された場所情報（パス）を含む別名保存ファイル名１８０ｂの入力を受け付ける。ＯＳ９００は、別名保存指示受付関数１７５から、別名保存ファイル名１８０ｂを含む引数と戻り値を受け取り、関数動作情報取得手段１２０に、渡す（同（７））。
【００４４】
ファイル設定関数１７２（たとえば、CreateFile関数）は、別名保存ファイル名１９５ｂを受け取って、別名保存ファイル１９５ｂを開く。ＯＳ９００は、ファイル設定関数１７２から、別名保存ファイル名１９５ｂを受け取って、関数動作情報取得手段１２０に、渡す（同（８））。
【００４５】
ファイル保存関数１７６（たとえば、WriteFile関数）は、別名保存ファイル名１９５ｂと主記憶上のファイルデータ１９５ｃを受け取って、別名保存ファイル名１９５ｂのファイルにファイルデータ１９５ｃを保存する。ＯＳ９００は、ファイル保存関数１７６から、別名保存ファイル名を含む引数と戻り値を受け取って、関数動作情報取得手段１２０に、渡す（同（９））。
【００４６】
図５は、ログデータ１９９の例である。図５には、アプリケーションプログラム名が「wordpad.exe」のログ（図５（１））と、その他のアプリケーションプログラムのログ（同（２））とが例示されている。
【００４７】
まず、アプリケーションプログラム名が「マクロソフト（登録商標）のワードパッド（wordpad.exe）」のログ（図５（１））について、説明する。
【００４８】
「元ファイル名」と「保存ファイル名」が同じである上書き保存したログ１９９ａ「上書き保存  C:\機密Ａ.rtf  ←  C:\機密Ａ.rtf 」が例示されている。
【００４９】
これは、「元ファイル名」と「保存ファイル名」が同じであるので、正常（正当）な上書き保存が実行されたとみなされる。
【００５０】
ダイアログを用いて、別名保存のファイル名設定をしたログ１９９ｂ「別名保存設定  C:\日報.rtf」と、「元ファイル名」と「保存ファイル名」とが異なる別名保存したログ１９９ｃ「別名保存  C:\ 日報.rtf  ←  C:\機密Ａ.rtf」が、例示されている。
【００５１】
これは、別名保存のファイル名設定がなされた後に、この別名保存設定のファイル名を「保存ファイル名」にして実行された別名保存/新規保存であるので、正常（正当）な別名保存/新規保存であるとみなせる。
【００５２】
さらにダイアログを用いて、別名保存のファイル名設定をしたログがないのに、別名保存したログ１９９ｄ「別名保存  C:\私用Ｂ.rtf  ←  C:\機密Ａ.rtf」が例示されている。
【００５３】
これは、別名保存のファイル名設定がされていない別名保存であるので、不正なファイル複製が実行されたとみなされる。
【００５４】
次に、その他のアプリケーションプログラム（たとえば、マクロソフト（登録商標）のメモ帳（notepad.exe）やペイント（mspaint.exe））のログ（同（２））について、説明する。
【００５５】
notepadプログラムにて開いたファイルを上書き保存したログ１９９ｅ「notepad.exe  上書き保存  C:\aaaa.txt  ←  C:\aaaa.txt 」が例示されている。
【００５６】
つまり、「元ファイル名」と「保存ファイル名」が同じであるので、正常（正当）な上書き保存が実行されたとみなされる。
【００５７】
mspaint.exeプログラムを使用中に、ファイルの別名保存のファイル名設定をしたログ１９９ｆ「mspaint.exe  別名保存設定  C:\sample.bmp」と、「元ファイル名」と「保存ファイル名」とが異なる別名保存したログ１９９ｇ「mspaint.exe  別名保存  C:\sample.bmp  ←  C:\図.bmp 」が例示されている。
【００５８】
これは、同一のプログラムの下で、別名保存のファイル名設定がなされた後に、この別名保存設定のファイル名を「保存ファイル名」にして、別名保存設定のファイル名を「保存ファイル名」にして、実行された別名保存/新規保存であるので、正常（正当）な別名保存/新規保存であるとみなせる。
【００５９】
不明なプログラム名が開いたファイルを上書き保存したログ１９９ｈ「          上書き保存  C:\ffff.txt  ←  C:\ffff.txt 」が例示されている。
【００６０】
これは、ファイルを開いたプログラム名が不明であるので、不正なファイル上書き保存であるとみなせる。
【００６１】
図６は、ファイル操作データ１９７の形式と例を説明する図である。ファイル操作データ１９７は、「ファイル操作データ番号」と、「開いたファイル名」と、「プログラム名」と、「別名保存」と、「元のファイル名」と、から構成される。
【００６２】
「ファイル操作データ番号」は、正の整数番号で、値が大きいほど、新しく作成されたデータである。「開いたファイル名」は、開いたファイルのファイルパス情報を含んだファイル名称情報である。「プログラム名」は、ファイルを操作したプログラム名称情報である。「別名保存」は、上書き保存であれば、「０」、別名保存であれば、「１」、が記述される。「元のファイル名」は、ファイルパス情報を含んだ元のファイル名称情報が記述される。
【００６３】
図６には、「ファイル操作データ番号＝６」、「開いたファイル名＝C:\日報.rtf」、「プログラム名＝wordpad.exe」、「別名保存＝１」、「元のファイル名＝C:\機密Ａ.rtf」、のファイル操作データ１９７が例示されている。
【００６４】
また、「ファイル操作データ番号＝７」、「開いたファイル名＝C:\aaaa.txt」、「プログラム名＝notepad.exe」、「別名保存＝０」、のファイル操作データ１９７が例示されている。
【００６５】
図７は、ファイル保存の処理手順の説明図である。
（１）CreateFile関数１７２は、ファイル名を受け付けて、該当するファイルを指定する。（ステップＳ０１０）
（２）保存イベント（メニューより『保存』が選ばれた等）が発生したか判定する。上書き保存の場合には、ステップＳ０３０に進む。別名保存／新規保存の場合には、ステップＳ０４０に進む。（ステップＳ０２０）
（３）WriteFile関数１７６は、 CreateFile関数１７２にて指定されたファイル名を取得して、そのファイルに、主記憶上のファイルデータ１９５ｃを記録して、保存する。終了する。（ステップＳ０３０）
（４）GetSaveFileName関数１７５は、別名保存ファイル名１８０ｂを受け付ける。（ステップＳ０４０）
（５）CreateFile関数１７２は、GetSaveFileName関数１７５が受け付けた別名保存ファイル名１８０ｂのファイルを作成する(=開く)。（ステップＳ０５０）
（６）WriteFile関数１７６は、CreateFile関数１７２が受け付けた別名保存ファイル名を取得して、そのファイルに、所定のファイル（主記憶上のファイル）を記録して、保存する。終了する。（ステップＳ０６０）
なお、新規保存の場合は、ステップＳ０１０は、不要である。
【００６６】
図８は、ログデータ記録のフローチャートである。
（１）関数動作情報取得中であるか判定する。取得中ならば、ステップＳ１１０に進む。取得中でないならば、終了する。（ステップＳ１００）
（２）関数動作情報取得手段１２０は、関数動作情報と取得対象情報１９３とを用いて、CreateFile関数１７２が呼び出されたか判定する。ＮＯならば、ステップＳ１６０に進む。ＹＥＳならば、ステップＳ１２０に進む。（ステップＳ１１０）
（３）CreateFile関数処理して、ステップＳ１００に戻る（ステップＳ１２０）
（４）関数動作情報取得手段１２０は、関数動作情報と取得対象情報１９３とを用いて、GetSaveFileName関数１７５が呼び出されたか判定する。呼び出されたならば、ステップＳ１４０に進む。呼び出されてないならば、ステップＳ１５０に進む。（ステップＳ１３０）
（５）GetSaveFileName関数処理して、ステップＳ１００に戻る。（ステップＳ１４０）
（６）関数動作情報取得手段１２０は、関数動作情報と取得対象情報１９３とを用いて、WriteFile関数１７６が呼び出されたか判定する。呼び出されたならば、ステップＳ１６０に進む。呼び出されてないならば、ステップＳ１００に戻る。（ステップＳ１５０）
（７）WriteFile関数処理して、ステップＳ１００に戻る。（ステップＳ１６０）
【００６７】
図９は、WriteFile関数処理のフローチャートである。
（１）関数動作情報取得手段１２０は、WriteFile関数１７６の引数で指定されたファイル名を、受け取る。（ステップＳ３００）
（２）関数動作情報取得手段１２０は、GetModuleFileName関数１７１の戻り値である、ファイルを格納したプログラム名を受け取る。（ステップＳ３１０）
（３）ファイル操作データ１９７のプログラム名と開いたファイル名とを参照して、「取得したプログラム名」と「取得したファイル名」と同じ値が存在するか判定する。存在しなければ、Ｓステップ３３０に進む。存在すれば、ステップＳ３４０に進む。Ｓ３２０）
（４）ログ保存手段１５０は、「取得したファイル名」を別名保存名として設定したログデータ１９９を作成して、保存する。終了する。（ステップＳ３３０）
（５）ログ保存手段１５０は、ファイル操作データ１９７のプログラム名と開いたファイル名とが「取得したプログラム名」と「取得したファイル名」であるものを選択して、その中から最新のファイル操作データ１９７を指定する。（ステップＳ３４０）
（６）最新のファイル操作データ１９７の「別名保存」の値を判定する。「別名保存＝０」ならば、ステップＳ３６０に進む。「別名保存＝１」ならば、ステップＳ３７０に進む。（ステップＳ３５０）
（７）ログ保存手段１５０は、「取得したファイル名」を上書き保存名に設定した上書き保存ログデータ１９９を、保存する。終了する。（ステップＳ３６０）
（８）ログ保存手段１５０は、最新のファイル操作データ１９７の「元のファイル名」をとりだして、これを元のファイル名にして、「取得したファイル名」を別名保存名に設定した別名保存ログデータ１９９を、作成して保存する。終了する。（ステップＳ３７０）
【００６８】
図１０は、GetSaveFileName関数処理のフローチャートである。
（１）関数動作情報取得手段１２０は、GetSaveFileName関数１７５の引数にて指定されたファイル名を取得する。（ステップＳ５００）
（２）関数動作情報取得手段１２０は、GetModuleFileName関数１７１の戻り値である、ファイルを保存したプログラム名を取得する。（ステップＳ５１０）
（３）ファイル操作データ１９７のプログラム名を参照して、「取得したプログラム名」と同じものが存在するか判定する。存在すれば、ステップＳ５４０に進む。存在しなければ、ステップＳ５３０に進む。（ステップＳ５２０）
（４）ログ保存手段１５０は、「取得したファイル名」を別名保存名に設定した別名保存ログデータ１９９を、保存して、終了する。（ステップＳ５３０）
（５）ログ保存手段１５０は、ファイル操作データ１９７のプログラム名が「取得したプログラム名」と同じ値のものを選択して、その中から最新のファイル操作データ１９７を指定して、この指定したファイル操作データ１９７の「元のファイル名」に、「取得したファイル名」を記録して、更新する。（ステップＳ５４０）
（６）ログ保存手段１５０は、「取得したファイル名」を別名保存名に設定した別名保存ログデータ１９９を、作成保存して、終了する。（ステップＳ５５０）
【００６９】
図１１は、CreateFile関数処理のフローチャートである。
（１）関数動作情報取得手段１２０は、CreateFile関数１７２の引数で指定されたファイル名を、受け取る。（ステップＳ７００）
（２）関数動作情報取得手段１２０は、GetModuleFileName関数１７１の戻り値である、ファイルを開いたプログラム名を受け取る。（ステップＳ７１０）
（３）ファイル操作データ１９７の元のファイル名を参照して、「取得したファイル名」と同じ「元のファイル名」が存在するか判定する。存在しないならば、ステップＳ７３０に進む。存在するならば、ステップＳ７５０に進む。（ステップＳ７２０）
（４）ログ保存手段１５０は、「取得したファイル名」と同じ値の「元のファイル名」のファイル操作データ１９７を選択して、「開いたファイル名」の値を読み取って、この選択したファイル操作データ１９７を削除する。（ステップＳ７３０）
（５）ログ保存手段１５０は、新しいファイル操作データ１９７の「開いたファイル名」に、「取得したファイル名」を設定して、新しいファイル操作データ１９７の「プログラム名」に、「取得したプログラム名」を設定して、新しいファイル操作データ１９７の「別名保存」に「１」を設定して、「元のファイル名」に、前記読み取った「開いたファイル名」を設定して、保存する。ステップＳ１００に戻る。（ステップＳ７４０）
（６）ログ保存手段１５０は、ファイル操作データ１９７の「開いたファイル名」と「プログラム名」とに、「取得したファイル名」と「取得したプログラム名」を設定して、「別名保存」に、「０」を設定して、保存する。ステップＳ１００に戻る。（ステップＳ７５０）
【００７０】
以上詳しく説明したように、本願発明によれば、不正なファイル複製を発見することができた。また、不正なファイル複製がないことを証明することができた。
【図面の簡単な説明】
【００７１】
【図１】ファイル管理装置の概要を説明する図
【図２】ファイル管理装置の大まかな処理の流れを説明する図
【図３】関数ライブラリの例
【図４】関数の動作の説明図（１）
【図５】ログデータの例
【図６】ファイル操作データの形式と例を説明する図
【図７】ファイル保存の処理手順の説明図
【図８】ログデータ記録のフローチャート
【図９】WriteFile関数処理のフローチャート
【図１０】GetSaveFileName関数処理のフローチャート
【図１１】CreateFile関数処理のフローチャートである。
【図１２】関数の動作の説明図（２）
【符号の説明】
【００７２】
１００  ファイル管理装置
１１０  取得開始手段
１２０  関数動作情報取得手段
１５０  ログ保存手段
１７１  プログラム名取得関数、GetModuleFileName関数
１７２  ファイル設定関数、CreateFile関数
１７４  ファイル取得関数、ReadFile関数
１７５  別名保存指示受付関数、GetSaveFileName関数
１７６  ファイル保存関数、WriteFile関数
１７７  関数動作情報提供指示関数、SetWindowsHookEx関数）(Windows：登録商標）
１８０ａ  読取ファイル名
１８０ｂ  別名保存ファイル名
１９０  記憶手段
１９１  関数ライブラリ
１９３  取得対象情報
１９５  ファイル
１９５ａ  読取ファイル名のファイル
１９５ｂ  別名保存ファイル
１９５ｃ  主記憶上のファイルデータ
１９７  ファイル操作データ
１９９  ログデータ
１９９ａ  「元ファイル名」と「保存ファイル名」が同じである上書き保存したログ
１９９ｂ  ダイアログを用いて、別名保存のファイル名設定をしたログ
１９９ｃ  「元ファイル名」と「保存ファイル名」とが異なる別名保存したログ
１９９ｄ  別名保存のファイル名設定をしたログがないのに、別名保存したログ
１９９ｅ  上書き保存ログ
１９９ｆ  別名保存のファイル名設定をしたログ
１９９ｇ  「元ファイル名」と「保存ファイル名」とが異なる別名保存したログ
１９９ｈ  不明なプログラム名が開いたファイルを上書き保存したログ
８００  アプリケーションプログラム
８００ｅ  プログラム名
９００  オペレーティングシステム、ＯＳ
【図１】
2007304737.tif 000003
【図２】
2007304737.tif 000004
【図３】
2007304737.tif 000005
【図４】
2007304737.tif 000006
【図５】
2007304737.tif 000007
【図６】
2007304737.tif 000008
【図７】
2007304737.tif 000009
【図８】
2007304737.tif 000010
【図９】
2007304737.tif 000011
【図１０】
2007304737.tif 000012
【図１１】
2007304737.tif 000013
【図１２】
2007304737.tif 000014