秘密情報ファイルが壊れましたNo.00736
Tsunaki さん 01/12/06 22:46
 
はじめまして。
いきなりですが、助けてください。
「パスワード総合管理」で、秘密情報ファイルの保存中に
PCがフリーズしてしまい、秘密情報ファイルが壊れてしまいました。
問題のファイルを開こうとしたら、以下のメッセージが表示されます。
「*****.SEC - データサイズが合いません。データ1 = 65826、データ2 =930、デー
タ3 = 39、データ4 = 44」
別フォルダにバックアップを保存していましたが、そのバックアップも壊れてしまい、
バックアップを開こうとしても同様のメッセージが表示されます。
秘密情報ファイルを修復する方法はあるのでしょうか?

[ ]
RE:00736 秘密情報ファイルが壊れましたNo.00737
秀まるお2 さん 01/12/07 09:52
 
 2つのファイルとも壊れていて他にファイルが無いなら復旧不可能です。

 一応、パスワード総合管理がファイル保存中にパソコンがフリーズしたのな
ら、普通、保存中だった方のファイルだけが壊れてもう片方は壊れないと思い
ますが、どうしたことやら?。

 とりあえずスキャンディスクしてみれば、それで復旧する可能性がわずかに
あるかもしれないです。一度お試しを。

 もしそれでもダメなら、とりあえず今ソースコードを見直した限り、データ
の途中までは復旧できそうな気がします。復旧用のスペシャルバージョンを準
備します。

[ ]
RE:00737 秘密情報ファイルが壊れましたNo.00738
秀まるお2 さん 01/12/07 10:06
 
 スペシャルバージョンと言う程ではないですが、一応、「データサイズが合
いません」のエラーが出ても無理矢理読み込みを続行できるようにしました。

 http://www.hidemaru.interlink.or.jp/software/bin/pwinte193.exe

 これでお試しいただきたいと思います。

[ ]
RE:00738 秘密情報ファイルが壊れましたNo.00739
Tsunaki さん 01/12/07 20:15
 
コメントありがとうございます。

さて、そのバージョンで無理矢理読み込んでみましたが、
以下のようなメッセージボックスが表示されて、開けませんでした。
「Pwinteが原因でPWINTE.EXEにエラーが発生しました。Pwinteは終了します。
 問題が解決しない場合は、コンピュータを再起動してください」
そのメッセージボックスで[デバッグ]をクリックすると、
C++が起動されて、更に以下のメッセージが表示されます。
「ハンドルされていない例外はPWInte.exeにあります
 :0xC0000005:Access Violation」
スキャンディスクもしてみましたが、状況は変わりませんでした。
やっぱり復旧は不可能なのでしょうか?

[ ]
RE:00739 秘密情報ファイルが壊れましたNo.00741
秀まるお2 さん 01/12/08 12:20
 
>さて、そのバージョンで無理矢理読み込んでみましたが、
>以下のようなメッセージボックスが表示されて、開けませんでした。

 一応、僕の所でわざとエラーになるデータを作ってテストした限りは死なな
かったんですが、死ぬ場合もあるようで…。

 すみませんがワトソン博士のログが欲しいです。VisualC++が起動してしま
うとまずいです。

 まず、Windowsのスタートメニューの「ファイル名を指定して実行...」など
からdrwtsn32.exe(またはdrwatson.exe)を起動して、そこのヘルプを見てく
ださい。そこの目次の「ワトソン博士を設定する」を見て、ワトソン博士のロ
グを取るようにしてください。

 それでパスワード総合管理を死なせてみて、出てくるログを僕に教えてくだ
さい。それで死なないように修正したいと思います。

 もし、データの復旧をあきらめるのでしたらなんですけど、やはり復旧した
方がいいですよね?

[ ]
RE:00741 秘密情報ファイルが壊れましたNo.00742
Tsunaki さん 01/12/08 21:39
 
> まず、Windowsのスタートメニューの「ファイル名を指定して実行...」など
>からdrwtsn32.exe(またはdrwatson.exe)を起動して、そこのヘルプを見てく
>ださい。そこの目次の「ワトソン博士を設定する」を見て、ワトソン博士のロ
>グを取るようにしてください。

データの復旧は諦め切れません。可能な限りの手は尽くしたいと思います。
さて、drwatson.exeを起動したところ、ヘルプは表示されず
ワトソン博士がタスクバーに常駐しました。
とりあえずその状態でパスワード総合管理を死なせて
ワトソン博士の[診断]タブに表示された内容を以下に書きます。

---<表示内容はここから>---

パスワード総合管理 のメモリ アクセスが無効です。パスワード総合管理 は、存在
しないメモリから読み取ろうとしました。初期化されていない変数を使用しているか、
メモリを解放してからアクセスしようとした可能性があります。

モジュール名 : PWINTE.EXE
説明 : パスワード総合管理
バージョン : 1, 6, 0, 0
製品名 : 有限会社サイトー企画 パスワード総合管理
製造元 : 有限会社サイトー企画

アプリケーション名 : Pwinte.exe
説明 : パスワード総合管理
バージョン : 1, 6, 0, 0
製品名 : 有限会社サイトー企画 パスワード総合管理
製造元 : 有限会社サイトー企画

--------------------
タスク バーが正常に動作しない場合は、既存の Internat を試してください。

モジュール名 : INTERNAT.EXE
説明 : Internat
バージョン : 4.90.1000.0
製品名 : Microsoft(R) Windows NT(R) Operating System
製造元 : Microsoft Corporation

--------------------
タスク バーが正常に動作しない場合は、既存の Multimedia background task suppo
rt module を試してください。

モジュール名 : mmtask.tsk
説明 : Multimedia background task support module
バージョン : 4.90.3000
製品名 : Microsoft Windows
製造元 : Microsoft Corporation

---<表示内容はここまで>---

また[詳細]タブに、関係あると思われるアセンブラコードやダンプリストが
表示されていますが、これを載せようとすると600行以上の長文になります。
それでもこのフォーラムに書いて宜しいでしょうか?
それとも、ログファイル自体をメールで送った方が宜しいでしょうか?

[ ]
RE:00742 秘密情報ファイルが壊れましたNo.00746
秀まるお2 さん 01/12/10 13:24
 
 たしかにパスワード総合管理が死んでいると思うんですけど、そこに出てい
る情報は別の物のような気がします。

 というか、死んだときのログは「診断」の所に出てくるのでなくて、
drwtsn32.logという名前のファイルに出力されているはずです。そのファイル
の内容を教えて欲しいです。

 死んだときにVisualC++が起動しないなら、たしかにワトソン博士のログが
出ていると思います。(たぶん、Windowsのsystemフォルダかsystem32フォル
ダに)

 内容はこんな感じです。

Microsoft (R) Windows NT (TM) Version 3.51 DrWtsn32
Copyright (C) 1985-1996 Microsoft Corp. All rights reserved.



アプリケーション例外が発生しました:
        アプリケーション: winhlp32.DBG (pid=124)
        発生時間: 11/9/2000 @ 13:2:20.337
        例外番号: c0000005 (アクセス違反)

----> システム情報 <----*
        コンピュータ名: SERVER
        ユーザー名: Server
        プロセッサの数: 1
        プロセッサの種類: x86 Family 5 Model 2 Stepping 12
        Windows Version: 3.51
        現在のビルド: 1057
        現在のタイプ: Uniprocessor Free
        登録されている会社名: 有限会社サイトー企画
        登録されている所有者: 斉藤秀夫

*----> タスク リスト <----*
   0 Idle.exe
   2 System.exe
  25 smss.exe
  33 csrss.exe
  38 winlogon.exe
  45 services.exe
  47 lsass.exe
  70 nddeagnt.exe
  72 conime.exe
  78 progman.exe
  81 spoolss.exe
  82 llssrv.exe
 116 WINHLP32.exe
 119 WINHLP32.exe
 122 WINHLP32.exe
 124 WINHLP32.exe
 126 WINHLP32.exe
 131 WINHLP32.exe
 133 WINHLP32.exe
 137 drwtsn32.exe
 139 drwtsn32.exe
 143 drwtsn32.exe

(02210000 - 02260000) exe\winhlp32.DBG
(77f70000 - 77fcd000) dll\ntdll.DBG
(77e00000 - 77e2d000) dll\advapi32.DBG
(77f00000 - 77f67000) dll\kernel32.DBG
(77e40000 - 77e7d000) dll\rpcrt4.DBG
(77ec0000 - 77ef5000) dll\gdi32.DBG
(77e80000 - 77ebf000) dll\user32.DBG
(76e80000 - 76e98000) dll\imm32.DBG
(73500000 - 73535000) ime\msime95.DBG
(76930000 - 7696d000) dll\msime95k.DBG
(77d50000 - 77d85000) dll\comctl32.DBG

スレッド ID 0x7b のステート ダンプ

eax=00000000 ebx=00000001 ecx=00000254 edx=00000224 esi=0001021e edi=
00000001
eip=02241313 esp=0012f804 ebp=0012f89c iopl=0         nv up ei pl nz
na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=
00000202


ファンクション: <(I<]N^Y(J なし>
        022412e6 89440da4         mov     [ebp+ecx-0x5c],eax     ss:
009deb77=????????
        022412ea 47               inc     edi
        022412eb 3b3d5cf12402     cmp     edi,[0224f15c]         ds:
0224f15c=00000008
        022412f1 0f8c3bffffff     jl      02241232
        022412f7 6800040000       push    0x400
        022412fc bf01000000       mov     edi,0x1
        02241301 e8200c0000       call    02241f26
        02241306 393d5cf12402     cmp     [0224f15c],edi         ds:
0224f15c=00000008
        0224130c 7e35             jle     02241343
        0224130e a1dce82402       mov     eax,[0224e8dc]         ds:
0224e8dc=00000000
フォールト ->02241313 8a0438           mov     al,[eax+edi]            
    ds:00000001=??
        02241316 240f             and     al,0xf
        02241318 3c01             cmp     al,0x1
        0224131a 751e             jnz     0224133a
        0224131c 8b4df4           mov     ecx,[ebp-0xc]          ss:
00b0e1be=????????
        0224131f ff34b9           push    dword ptr [ecx+edi*4]  ds:
00000001=????????
        02241322 6a02             push    0x2
        02241324 6802110000       push    0x1102
        02241329 56               push    esi
        0224132a ff15f0122102     call    dword ptr [022112f0]   ds:
022112f0=77e8339b
        02241330 6800040000       push    0x400
        02241335 e8ec0b0000       call    02241f26

…………………………………………

[ ]
RE:00746 秘密情報ファイルが壊れましたNo.00747
Tsunaki さん 01/12/10 19:49
 
> というか、死んだときのログは「診断」の所に出てくるのでなくて、
>drwtsn32.logという名前のファイルに出力されているはずです。そのファイル
>の内容を教えて欲しいです。

Cドライブの中から(サブフォルダも含めて)その名前のファイルを
検索しましたが、見つかりませんでした。
そのかわり、C:\Windows\DRWATSON\ に WATOSON**.WLG という
ログファイルが生成されます。
OSがWinMeだから、なのでしょうか?
"WLG"という拡張子は「ワトソン博士」と関連付けられていて、
エディタで開いてみてもフォーマットが違います。

[ ]
RE:00747 秘密情報ファイルが壊れましたNo.00748
秀まるお2 さん 01/12/11 12:15
 
 手元のWindows2000とWindowsMeではワトソン博士の設定方法が違っていて、し
かもWindowsMeのワトソン博士にはヘルプも説明も付いてませんでした。

 ということで、改めてワトソン博士の設定方法を連絡させていただきます。

 VisualC++を起動して、「ツール・オブション...」を実行して、「デバッグ」
のページの「ジャストインタイムデバッグ」というオプションがあるので、それ
をOFFにしてください。

 その状態でパスワード総合管理を死なせばワトソン博士がログを出すはずです。
ログは、たぶんWindowsMeのインストールしたフォルダ(例えばC:\Windows)配
下のdrwatsonというフォルダの下に作成されると思います。

[ ]
RE:00747 秘密情報ファイルが壊れましたNo.00749
秀まるお2 さん 01/12/11 12:40
 
 うむ、そもそもWindows98系ではワトソン博士のログは出ないような気がし
ます。(ワトソン博士を常駐させとけば出るのやら?)

 死んだときに出てくる「アプリケーションエラー」のダイアログボックスの
「詳細>>」を押して出てくる内容でもかまいません。

[ ]
RE:00749 秘密情報ファイルが壊れましたNo.00753
Tsunaki さん 01/12/11 21:49
 
> VisualC++を起動して、「ツール・オブション...」を実行して、「デバッグ」
>のページの「ジャストインタイムデバッグ」というオプションがあるので、それ
>をOFFにしてください。

それで再度、パスワード総合管理を死なせてみましたが、今度はワトソン博士の画面
自体が出てきません。
ワトソン博士を常駐させない状態でも試してみましたが、アプリケーションエラーの
ダイアログも表示されず、
パスワード総合管理が固まったまま「応答なし」になってしまいます。

[ ]
RE:00753 秘密情報ファイルが壊れましたNo.00754
秀まるお2 さん 01/12/12 10:49
 
>ワトソン博士を常駐させない状態でも試してみましたが、アプリケーションエラーの
>ダイアログも表示されず、
>パスワード総合管理が固まったまま「応答なし」になってしまいます。

 それはつまり、死んでるんじゃなくて無限ループしてるんでしょうかね?。
困った。

 一応、アプリケーションエラーが出るという前提でなら、エラーログを自前
で取る作戦もあります。僕の作っているメールソフトでは、アプリケーション
エラーについては全部自前でログを取ってます。

 バックアップ用のファイルが残っているなら、それを読み込んで試してみる
とか、あるいはVisualC++をお持ちなら、たしかにアプリケーションエラーの
出るプログラムを作ってそれが死んだ時の様子を確認するなどして、今一度、
パスワード総合管理を死なせる手段を探してみて欲しいです。

 それでたしかに死ぬことが確認できれば、僕の方でエラーログを自前で取る
処理まで作ってみます。

 ただ、そこまでしたとしても、果たしてどの程度データが復旧できるのかは
まったく不明です。素直にあきらめていただく方がいいような気がします。

 そもそも、今一度パスワード総合管理のソースコードを見直しましたが、保
存の処理としては、

 1.普通に保存。
 2.それを読み込んでみて、正しく保存されたことを確認する。
 3.読み込みに成功したら、次にバックアップ先の問い合わせ
   ダイアログボックスを表示する。
 4.バックアップ先にデータを保存。
 5.同様に、バックアップファイルの読み込みテストをする。

 となってまして、例えパスワード総合管理が保存に失敗したり、あるいはそ
もそもパスワード総合管理のバグで読み込み出来ないファイルが出来てしまっ
たり、あるいは保存中にWindowsがハングしたとしても、2つのうちのどちら
かのファイルは確実に読み込める形で残るはずです。

 2つとも壊れることはちょっと考えられないんですけど???

[ ]