2006-03-31

APISPY32 その2

APISPY32ThreadID が表示されるように改造してみた。

ビルドするのに、 cl.exe nmake.exe ml.exe が必要だった。

cl.exenmake.exe は、 VC++ 6.0 内のものを使用したが、
ml.exe はインストールされていなかったので、MASM32ml.exe を 使用した。
#exeファイルの場所はそれぞれ違うので PATH 環境変数cl.exenmake.exe の場所を指定した。 ml.exe は、面倒だったので APISPY32 を展開したディレクトリに投げ込んだ :-)

また、 メイクファイルの CFLAGSLFLAGS
それぞれ、ヘッダファイルのディレクトリとライブラリのディレクトリ指定を追加した。
#正確には、 CFLAGS_D_DDLL32 CFLAGS_R_DDLL32 LFLAGS_D_DDLL32 LFLAGS_R_DDLL32 の4つを変更した。

とりあえず、ビルド後に試験したけど IE6.0 のトレース結果が芳しくなかったのでお蔵入りの予定。

APISPY32 その1

システムコールトレーサ探しはまだ継続中でAPISPY32というのもあった。
ソースが付いているのが嬉しい。

実用するには、threadID を記録できる様に改造する必要がありそうだ。

2006-03-29

Advanced Api Monitor

apimon や API Monitor や StraceNT を試しつつ、さらに探したところ Advanced Api Monitor というのを見つけた。

今のところ、手元の環境では上手く動作していない。
ほとんどの機能が未実装の予感。

StraceNT Tips

StraceNT を 使ってみて気が付いた点をまとめておく。

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 にすると、なぜか途中でコンソールが表示されて中断してしまう。
まだまだ、研究の余地がありそうだ。

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" 等というダイアログが出て失敗した。

2006-03-27

apimon その2

昨日の続き。

リソースキット内にあるとのことなので、管理業務のための Windows 2000 リソース キット無償ツールからApimon.exe: API モニタのダウンロードページへ行こうとしたらリンクが切れていた。

KBの最終更新は、2006/02/28 になっているが、その時点ではリンクは切れていなかったのだろうか?

というわけで、googleのキャッシュでダウンロードページにアクセスしてみたら、ファイル自体はまだ存在していたようでダウンロードが可能だった。

茨の道な予感…

2006-03-26

apimon その1

Windowsのアプリケーションの動作をチェックするツールに付いては、2006-03-20のエントリWindows 用 straceで取り上げた。

その後も継続して情報を収集してたけど、Windows 2000 の リソースキットに apimon というツールが存在していた。

まさに、灯台下暗し…

2006-03-23

Google 多数決その2の続き

Google 多数決その2 からさらに興味深い事実が判明した。

範囲を 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に修正されていた。

2006-03-20

Windows 用 strace

アプリケーションの動作をチェックするのに unix系 の OS では truss で呼び出しているシステムコールを表示できる。

標準的な 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 では、さらに考慮すべき点が増えたので注意が必要らしい。

2006-03-02

OS のすごい人の日記

OS の設計と実装に関する話題が高密度で読める素晴らしい日記
Prex - 組み込みリアルタイムOS開発日記

最初からGUIが実装されるOSが多い中、OSとしての基本機能を重視するためGUIを
後回しにする方針には感動した。

#Windows も GUIを削除したバージョンを出荷してくれないものかと思う。

This page is powered by Blogger. Isn't yours? Valid XHTML 1.0 Transitional