2006-03-31
APISPY32 その2
APISPY32 を ThreadID が表示されるように改造してみた。
ビルドするのに、 cl.exe nmake.exe ml.exe が必要だった。
cl.exe と nmake.exe は、 VC++ 6.0 内のものを使用したが、
ml.exe はインストールされていなかったので、MASM32 の ml.exe を 使用した。
#exeファイルの場所はそれぞれ違うので PATH 環境変数にcl.exe と nmake.exe の場所を指定した。 ml.exe は、面倒だったので APISPY32 を展開したディレクトリに投げ込んだ :-)
また、 メイクファイルの CFLAGS と LFLAGS に
それぞれ、ヘッダファイルのディレクトリとライブラリのディレクトリ指定を追加した。
#正確には、 CFLAGS_D_DDLL32 CFLAGS_R_DDLL32 LFLAGS_D_DDLL32 LFLAGS_R_DDLL32 の4つを変更した。
とりあえず、ビルド後に試験したけど IE6.0 のトレース結果が芳しくなかったのでお蔵入りの予定。
ビルドするのに、 cl.exe nmake.exe ml.exe が必要だった。
cl.exe と nmake.exe は、 VC++ 6.0 内のものを使用したが、
ml.exe はインストールされていなかったので、MASM32 の ml.exe を 使用した。
#exeファイルの場所はそれぞれ違うので PATH 環境変数にcl.exe と nmake.exe の場所を指定した。 ml.exe は、面倒だったので APISPY32 を展開したディレクトリに投げ込んだ :-)
また、 メイクファイルの CFLAGS と LFLAGS に
それぞれ、ヘッダファイルのディレクトリとライブラリのディレクトリ指定を追加した。
#正確には、 CFLAGS_D_DDLL32 CFLAGS_R_DDLL32 LFLAGS_D_DDLL32 LFLAGS_R_DDLL32 の4つを変更した。
とりあえず、ビルド後に試験したけど IE6.0 のトレース結果が芳しくなかったのでお蔵入りの予定。
APISPY32 その1
2006-03-29
Advanced Api Monitor
apimon や API Monitor や StraceNT を試しつつ、さらに探したところ Advanced Api Monitor というのを見つけた。
今のところ、手元の環境では上手く動作していない。
ほとんどの機能が未実装の予感。
今のところ、手元の環境では上手く動作していない。
ほとんどの機能が未実装の予感。
StraceNT Tips
StraceNT を 使ってみて気が付いた点をまとめておく。
- apimon とは違い既に実行中のプロセスをトレースできる。
- トレース中に対象のプロセスが不意に終了してしまうことが少ない。
- フィルタを使いこなせないと実用できない。
- GUI 版の StraceNtX.exe を使用してフィルタを記述できるが、エディタで直接記述した方が効率が良い。
- StraceNtX.exe でのフィルタファイル指定時にスペースの含まれたパス名を入力すると、"Could not open the filter file (c:\Documents)." 等の様なエラーが発生する。スペースの含まれるファイル名を入力したい場合は、以下の様にダブルクォート等で囲む必要がある。
"C:\Documents and Settings\root\デスクトップ\StraceNT\filter.txt" - INCLUDES=*:*:IsDebuggerPresent=0 の 様なフィルタを記述をするとIsDebuggerPresentの返りを常に0にすることも可能
2006-03-28
apimon その4
さらにさらに続き
Windows XP SP2 用の サポートツールをWindows 2000 SP4 へインストールする試みに失敗したが、若干あがいてみる。
ダウンロードした[Windows XP SP2 用の サポートツール]のインストーラ実行後、
"This product can be installed only Windows XP" のダイアログ表示中は、
C:\Documents and Settings\username\Local Settings\Temp\IXP000.TMP に、support.cab が残っており、apimon.exe apimon.hlp apidll.dll apimon.cnt の4つのファイルを取り出すことができる。
取り出した4つのファイルを1つのディレクトリに収めるとWindows 2000 SP4でもとりあえず動作するようだ。
解析対象を IE6 にすると、なぜか途中でコンソールが表示されて中断してしまう。
まだまだ、研究の余地がありそうだ。
Windows XP SP2 用の サポートツールをWindows 2000 SP4 へインストールする試みに失敗したが、若干あがいてみる。
ダウンロードした[Windows XP SP2 用の サポートツール]のインストーラ実行後、
"This product can be installed only Windows XP" のダイアログ表示中は、
C:\Documents and Settings\username\Local Settings\Temp\IXP000.TMP に、support.cab が残っており、apimon.exe apimon.hlp apidll.dll apimon.cnt の4つのファイルを取り出すことができる。
取り出した4つのファイルを1つのディレクトリに収めるとWindows 2000 SP4でもとりあえず動作するようだ。
解析対象を IE6 にすると、なぜか途中でコンソールが表示されて中断してしまう。
まだまだ、研究の余地がありそうだ。
apimon その3
さらに続き
ダウンロードした apimon を 手元の Windows 2000 Pro SP4 上で
早速動作させたが、"Could not load dll into program" というエラーが発生し動作しない。
日本語の情報が極端に少ないが、以下のページを読む限り、DLLの検索順がかわっておりその影響を受けているようだ。
GotDotNet Japan 掲示板
NyaRuRuの日記
Windows XP SP2 用の サポートツールに新しいバージョンが入っているらしいので、Windows 2000 への インストールを試行したが、バージョンチェックが行われており
"This product can be installed only Windows XP" 等というダイアログが出て失敗した。
ダウンロードした apimon を 手元の Windows 2000 Pro SP4 上で
早速動作させたが、"Could not load dll into program" というエラーが発生し動作しない。
日本語の情報が極端に少ないが、以下のページを読む限り、DLLの検索順がかわっておりその影響を受けているようだ。
GotDotNet Japan 掲示板
NyaRuRuの日記
Windows XP SP2 用の サポートツールに新しいバージョンが入っているらしいので、Windows 2000 への インストールを試行したが、バージョンチェックが行われており
"This product can be installed only Windows XP" 等というダイアログが出て失敗した。
2006-03-27
apimon その2
昨日の続き。
リソースキット内にあるとのことなので、管理業務のための Windows 2000 リソース キット無償ツールからApimon.exe: API モニタのダウンロードページへ行こうとしたらリンクが切れていた。
KBの最終更新は、2006/02/28 になっているが、その時点ではリンクは切れていなかったのだろうか?
というわけで、googleのキャッシュでダウンロードページにアクセスしてみたら、ファイル自体はまだ存在していたようでダウンロードが可能だった。
茨の道な予感…
リソースキット内にあるとのことなので、管理業務のための Windows 2000 リソース キット無償ツールからApimon.exe: API モニタのダウンロードページへ行こうとしたらリンクが切れていた。
KBの最終更新は、2006/02/28 になっているが、その時点ではリンクは切れていなかったのだろうか?
というわけで、googleのキャッシュでダウンロードページにアクセスしてみたら、ファイル自体はまだ存在していたようでダウンロードが可能だった。
茨の道な予感…
2006-03-26
apimon その1
Windowsのアプリケーションの動作をチェックするツールに付いては、2006-03-20のエントリWindows 用 straceで取り上げた。
その後も継続して情報を収集してたけど、Windows 2000 の リソースキットに apimon というツールが存在していた。
まさに、灯台下暗し…
その後も継続して情報を収集してたけど、Windows 2000 の リソースキットに apimon というツールが存在していた。
まさに、灯台下暗し…
2006-03-23
Google 多数決その2の続き
Google 多数決その2 からさらに興味深い事実が判明した。
範囲を Microsoft に絞ってGoogle様の御神託を聞いてみたところ以下の結果が得られた。
site:microsoft.com regsvr32 の検索結果 約 114,000 件
site:microsoft.com regsrv32 の検索結果 約 252 件
やはり、世の中はもっともらしい嘘でいっぱいだ。
範囲を Microsoft に絞ってGoogle様の御神託を聞いてみたところ以下の結果が得られた。
site:microsoft.com regsvr32 の検索結果 約 114,000 件
site:microsoft.com regsrv32 の検索結果 約 252 件
やはり、世の中はもっともらしい嘘でいっぱいだ。
2006-03-22
Google 多数決その2
regsvr32 とそのスペルミスと思われる regsrv32 についてのGoogle様の御神託を聞いてみた
regsvr32 の検索結果 約 1,420,000 件
regsrv32 の検索結果 約 29,000 件
今回は多数決が有効に機能した。
regsrv32の検索結果から DDoS-Apbot@MM というウイルスが、regsrv32.exe というファイル名を持つこともわかっていい感じ
で、問題なのは2位の以下のページ
@IT:Security Tips > Explorerの実行ユーザーを表示しておく
@IT はウイルスの実行を推奨しているのだろうか?
ちなみに検索時に[日本語のページを検索]にチェックしておくと、4位に以下のページが現れた。
SMS 2003 SP1 に Windows 2000 ベースのコンピュータで SMS 2003 SP1 ...
Microsoft もですか…
2006/11/08 追記
@ITの記事に関しては修正が行われた模様である。
今日見たら、文中にあったregsrv32が2箇所ともregsvr32に修正されていた。
regsvr32 の検索結果 約 1,420,000 件
regsrv32 の検索結果 約 29,000 件
今回は多数決が有効に機能した。
regsrv32の検索結果から DDoS-Apbot@MM というウイルスが、regsrv32.exe というファイル名を持つこともわかっていい感じ
で、問題なのは2位の以下のページ
@IT:Security Tips > Explorerの実行ユーザーを表示しておく
@IT はウイルスの実行を推奨しているのだろうか?
ちなみに検索時に[日本語のページを検索]にチェックしておくと、4位に以下のページが現れた。
SMS 2003 SP1 に Windows 2000 ベースのコンピュータで SMS 2003 SP1 ...
Microsoft もですか…
2006/11/08 追記
@ITの記事に関しては修正が行われた模様である。
今日見たら、文中にあったregsrv32が2箇所ともregsvr32に修正されていた。
2006-03-20
Windows 用 strace
アプリケーションの動作をチェックするのに unix系 の OS では truss で呼び出しているシステムコールを表示できる。
標準的な unix系OS は truss
HP-UX は tusc
Linux は strace
同様のことを Windows で実施したい場合に、今までは、 API Monitorを使用していたけど、StraceNTというのがあるらしい。
StraceNT は、ThreadIDが表示されるのでかなりいい感じ。
標準的な unix系OS は truss
HP-UX は tusc
Linux は strace
同様のことを Windows で実施したい場合に、今までは、 API Monitorを使用していたけど、StraceNTというのがあるらしい。
StraceNT は、ThreadIDが表示されるのでかなりいい感じ。
2006-03-14
Google 多数決その1
Windowsアプリケーションの2重起動防止についてのGoogle様の御神託を聞いてみた。
FindWindow 2重起動 の検索結果 約 233 件
FindWindow 二重起動 の検索結果 約 175 件
CreateMutex 2重起動 の検索結果 約 195 件
CreateMutex 二重起動 の検索結果 約 178 件
OpenMutex 2重起動 の検索結果 約 92 件
OpenMutex 二重起動 の検索結果 約 62 件
ちなみに、FindWindow を使用する方法では、運が良い時だけ2重起動を防止できる。
※FindWindow の結果が得られた後、Windowの生成が完了するまでの間に他の処理が割り込めるため。
CreateMutex を使用する方法は確実に2重起動を防止できる。
※CreateMutex は、Mutex の有無のチェックと作成をアトミックに行うので他の処理が割り込めない。
OpenMutex 後に CreateMutex を実行する方法は、やはり運が良い時だけ2重起動を防止できる。
※Mutex の有無のチェックと作成を分けて行っているので他の処理が割り込む余地があるため。
世の中はもっともらしい嘘でいっぱいだ。
2006/06/16 追記
Windows XP では、さらに考慮すべき点が増えたので注意が必要らしい。
FindWindow 2重起動 の検索結果 約 233 件
FindWindow 二重起動 の検索結果 約 175 件
CreateMutex 2重起動 の検索結果 約 195 件
CreateMutex 二重起動 の検索結果 約 178 件
OpenMutex 2重起動 の検索結果 約 92 件
OpenMutex 二重起動 の検索結果 約 62 件
ちなみに、FindWindow を使用する方法では、運が良い時だけ2重起動を防止できる。
※FindWindow の結果が得られた後、Windowの生成が完了するまでの間に他の処理が割り込めるため。
CreateMutex を使用する方法は確実に2重起動を防止できる。
※CreateMutex は、Mutex の有無のチェックと作成をアトミックに行うので他の処理が割り込めない。
OpenMutex 後に CreateMutex を実行する方法は、やはり運が良い時だけ2重起動を防止できる。
※Mutex の有無のチェックと作成を分けて行っているので他の処理が割り込む余地があるため。
世の中はもっともらしい嘘でいっぱいだ。
2006/06/16 追記
Windows XP では、さらに考慮すべき点が増えたので注意が必要らしい。
2006-03-02
OS のすごい人の日記
OS の設計と実装に関する話題が高密度で読める素晴らしい日記
Prex - 組み込みリアルタイムOS開発日記
最初からGUIが実装されるOSが多い中、OSとしての基本機能を重視するためGUIを
後回しにする方針には感動した。
#Windows も GUIを削除したバージョンを出荷してくれないものかと思う。
Prex - 組み込みリアルタイムOS開発日記
最初からGUIが実装されるOSが多い中、OSとしての基本機能を重視するためGUIを
後回しにする方針には感動した。
#Windows も GUIを削除したバージョンを出荷してくれないものかと思う。