鷲ノ巣

C# とか PowerShell とか。当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。

Win32

Directory.EnumerateFiles メソッドの予期しない挙動について

C# で、あるディレクトリ内のファイルを検索するために、Directory.EnumerateFiles メソッドを使うことができます。 このメソッド、なかなか罠があります。

セキュリティ記述子の中身を見てみる

前回のおさらい 前回は、ファイルのセキュリティ情報としてどんなものがあるか、ということを概観しました。 ざっとおさらいしますと、 ファイルのセキュリティ情報は「セキュリティ記述子(Security Descriptor)」という領域に記録されている。 セキュリテ…

Windows のアクセス制御シリーズ

目次です。 Windows のアクセス制御の仕組み セキュリティ記述子の中身を見てみる サンプル コードはこのリポジトリにあります。 github.com

Windows のアクセス制御の仕組み

一年ぶりです。アレとかアレとかもやらにゃいかんのはわかってはいるんですが、はい。そのうちやります。気が向いたら。 今はこっちに気が向いちゃってるのでしょうがないね。今回も懲りずにシリーズものになります。 ボリューム的には一人アドベント カレン…

PE ファイルについて (8) - インポート 基本編

第 8 回。 前回は DLL からのエクスポートについてやりました。 今回は対となるインポートについて。

PE ファイルについて (7) - エクスポート編

第 7 回。 今回からデータ本体に踏み込んでいきます。 初回はエクスポート情報。 DLL が公開している関数の情報です。 コード多めで行きますよ。

PE ファイルについて (6.5) - 相対仮想アドレス

年末年始は更新をさぼってて申し訳ありません。 まだまだシリーズは続きます。前回、相対仮想アドレスについてやりました。 が、重大な抜けがあったので、さらに追記。 なんでこれ書かなくていいと思ったんだ、俺よ。

PE ファイルについて (6) - 補足

第 6 回です。 今まで適当に流してきたというか、言う機会を逸していたことを整理しておきます。 ちょっと雑多な内容になってしまいますが、お付き合いください。

PE ファイルについて (5) - IMAGE_DATA_DIRECTORY

第 5 回。 今回は NT ヘッダーの末尾にある IMAGE_DATA_DIRECTORY についての概要編です。

PE ファイルについて (4) - IMAGE_SECTION_HEADER

第4回。 NT ヘッダーの順番通りなら今回は IMAGE_DATA_DIRECTORY なんですが、これは手を付けると長いので、ちょっと飛ばして先に IMAGE_SECTION_HEADER を説明しちゃいます。

PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER

第 3 回。 今回は IMAGE_OPTIONAL_HEADER をやっつけます。

PE ファイルについて (2) - IMAGE_FILE_HEADER

この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 23 日目です。 今度は期日前に書き上げましたよ!前回は肝心なところで終わってしまいました。 今回は続きの NT ヘッダー編から。 と言ってもですね、NT ヘッダーを全部解説し終わったら、…

PE ファイルについて (1) - IMAGE_DOS_HEADER

この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 20 日目です。*1 他の人が書かなそうなネタということで、Windows 実行ファイルで攻めてみることにします。 *1:今まで 21 日目だと思ってましたごめんー!

【保存版】構造体のマーシャリングのまとめ

P/Invoke で Windows API を呼び出す際、引数に構造体を渡すには、割と色々な方法があります。 最近ちょっと混乱したので、改めてまとめてみました。 これまで知らなかった便利な方法も紹介しています。 新機能でも何でもありませんが、よく P/Invoke を使わ…

プロバイダーに関する補足事項

前回の投稿に入れようと思って書いていたら脱線しすぎ&長くなり過ぎたのでカットした補足事項でございます。

メッセージを表示する

思い出した頃に更新することで定評のある ETW ブログのお時間です。前々回までで、プロバイダー、コントローラー、コンシューマーと、ETW のコンポーネントを一通り作ってみました。 が、今までのプロバイダーは、イベントに付随するデータが何もありません…

リアルタイム モード

今回はリアルタイム モードについて説明します。ソースコードは例によって GitHub に。 今回はコントローラーとコンシューマーをまとめて説明します。

コンシューマーを作る

サボっていて申し訳ないです。 今回はコンシューマーを作ります。 コードは例によって GitHub に。

コントローラーを作る

前回の予告通りコントローラーを作ります。 例によってコードは GitHub を参照してください。

Event Tracing for Windows 目次

Event Tracing Windows (ETW) に関する連載のまとめ。 記事を書いたのに更新を忘れてたら突っ込んでください。 ETW

ミニマムなプロバイダー

前回はミニマムなプロバイダーを作りました。 しかし、あくまでイベント ビューアーで見るためのミニマム コードであって、ETW 的に本当に最小限のコードではありません。今回は本当にミニマムなコードを示すとともに、(イベント ビューアーでは見ることが…

プロバイダーを作る

さて、ようやくコードの出番です。 ミニマムなプロバイダーを作ってみましょう。で、ソースコードなんですが、すべてここに貼りつけるわけにもいきませんので、GitHubをご覧ください。また、適宜、以前の記事を参照しながらお読みください。

イベントの構成要素

なかなかコードが書き始まりませんが、もう少しお付き合いください。 マニフェストをもう少し俯瞰する 前回は、プロバイダー マニフェストについて紹介し、スキーマを俯瞰する方法を示しました。 今回は、もう少しマニフェストの中身を見て行きましょう。

プロバイダー マニフェスト

2 つのプロバイダー モデル 今回から、プロバイダーを作っていきたいと思います。これまでにも何回か書いていますが、ETW のプロバイダーには、Windows 2000 以来の古いモデルと、Windows Vista 以降の新しいモデルがあります。 古いモデルの方を「Classic P…

Event Tracing for Windows の概要

今回から本格的に ETW の解説に入っていきたいと思います。が、まずはコードは無しで。 ETW の構成要素 ETW は、4 つの要素から成ります。 セッション コントローラー プロバイダー コンシューマー

Event Tracing for Windows …の前説

最近、Event Tracing for Windows (ETW) について調査しています。 で、今回から何回か続けて、ETW について書いて行きます。 ETW とは ETW とは、アプリケーションやシステム(ドライバーなど)が、その動作上発生した何らかのイベントを、報告し、記録し、…