troushoo

WinAPIOverride:API コールの引数・戻り値の確認や、API の上書きが可能なオープンソースのツール (1)


概要

API コールの引数・戻り値の確認や、API の上書きが可能なオープンソースのツールWinAPIOverride を紹介します。
今回は、API コールの引数・戻り値の確認方法を紹介します。
次回、API の上書き方法を紹介します。

内容

WinAPIOverride のダウンロード
WinAPIOverride の作者のホームページに行き、「Download」からWinAPIOverride がダウンロードできます。
ソースコードも公開されており、ソースコードは「Sources」からダウンロードできます。
WinAPIOverride は、非商用利用に限りフリーで使用することが可能です。


WinAPIOverride を用いたAPI コールの引数・戻りの確認方法
WinAPIOverride を用いたAPI コールの引数・戻り値の確認方法を紹介します。Windows 7 x64 で動作確認しています。

1. ダウンロードしたZip ファイルを解凍し、x86 のOS では「WinAPIOverride32.exe」を、x64 のOS では「WinAPIOverride64.exe」を起動します。


2. ここでは、新たにメモ帳を起動して、メモ帳で使用されるAPI コールの引数・戻り値を確認してみます。
(既に起動しているアプリで使用されるAPI コールの引数・戻り値を確認することも可能です。)
「Attach at application startup」にチェックを入れ、「Application Path」にメモ帳のパスである「C:\Windows\System32\notepad.exe」を入力し、「Start」をクリックします。


3. “どのAPI コールを確認するかを設定後、OK を押してください” といった旨のダイアログが表示されます。
ダイアログの言う通り、まだOK は押さないでください。


4. どのAPI コールを確認するかを設定するため、「Monitoring Files Library」をクリックします。


5. ここでは、メモ帳が使用するCreateFileW() の引数・戻り値を確認してみます。
CreateFile() のMSDN を見ていると、CreateFile() はKernel32.dll に実装されています。


よって、「kernel32 7 x64」にチェックを入れ、そして「CreateFileW」にチェックを入れ、「OK」をクリックします。


6. 「API Monitoring configuration」に、(設定した)「kernel32 7 x64.txt」が追加されたことを確認し、上記3 で表示されたダイアログの「OK」をクリックします。


7. メモ帳の「開く」で、アクセス権のないファイル(= ここでは、C:\test\test.txt)を開くことを試みます。
すると、メモ帳で「この場所に保存するアクセス許可がありません。」と表示されます。


8. WinAPIOverride で、API のモニターを中止するため「Stop」をクリックします。


9. エラーのある行が赤く表示されており、アクセス権のないフォルダー(= C:\test\test.txt) へのアクセスが、戻り値0xFFFFFFFFFFFFFFFF で失敗していることがわかります。


10. 行をダブルクリックすると、その行の詳細が表示されます。
エラー発生時のLast Error Value は0x00000005 で「アクセスが拒否されました」で失敗していることがわかります。
また、「Parameter」すなわち引数も確認できます。


情報元
WinAPIOverride 公式サイト (英語)

関連記事
API Monitor : アプリから呼ばれるAPI コールの引数・戻り値をモニター可能なフリーのツール (1)
API Monitor : アプリから呼ばれるAPI コールの引数・戻り値をモニター可能なフリーのツール (2)
WinAPIOverride:API コールの引数・戻り値の確認や、API の上書きが可能なオープンソースのツール (2)


  1. 2015/01/31(土) 22:04:22|
  2. ツール
  3. | トラックバック:0
  4. | コメント:0
<<WinAPIOverride:API コールの引数・戻り値の確認や、API の上書きが可能なオープンソースのツール (2) | ホーム | Wireshark を用いたDNS のトラブルシューティング方法>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/221-d51eb493
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (24)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する