2008-12-01から1ヶ月間の記事一覧

年越し日記帳

しばらくアセンブルコードを眺めたりさまざまなcrackmeに手をつけたりしていたが、しばらくすると何か書きたくなる衝動に駆られるので、勢い任せに仮想メモリの隠蔽技法を実装してみた。その日記帳。 12/29 どうしても、なにかがうまくいかないと思ったら実…

Windowsダンプの極意

金額に比して内容がないような。と批判的に書く前に、自力でデッドロックのひとつも調査してから言ってやろうと、NtQueryObjectがデッドロックする問題をWinDbgで調査した。が、よくわからんかった^^; 著者にはぜひ、WinDbgのコマンドや出力の詳細について掘…

%wZ書式指定子はCRTで

UNICODE_STRING型のポインタを渡すことで構造体内部に持つ文字列を出力することができる。UNICODE_STRINGのバッファはNULL終端ではないため、正しく処理するにはこの%wZ書式指定子を使用すべきである。%wZ書式指定子はWin32のprintf系APIに渡すと、Windowsの…

NtOpen系のハンドルもCloseしなければならない

ドキュメントを参照する(たとえばNtOpenSymbolicLinkObject) ドキュメントに従って使用する ドキュメントに指示がないのでハンドルはCloseしない ここまでは正しい姿勢だ。 ただし追加で注意も必要。上記例は、明らかにハンドルリークする。Closeする方法…

アンチリバースエンジニアリング

URL

An Anti-Reverse Engineering Guide知らない方法も多くて面白い。仕掛けるほうも、避けるほうも良くやるわ┐(´ー`)┌ といった感じ。

名前付きカーネルオブジェクトの一覧を取得

任意のプロセスが使用している名前付きカーネルオブジェクトの一覧を取得したいのですが。 それ、Win32でできるよ! ということで書いてみた*1。よければどうぞー(named_kernel_object.cab)。 動作確認は 2008x64 のみだけど、適当に修正すれば大抵の環境…

for each 文

VC8からの拡張機能で生のC++においてもfor each文が使える。VC8まではコンテナに対してのみだったが、9からは配列に対しても可。知らなかった。 // in vc9 #include <iostream> template<typename T, unsigned long N> inline void for_each_print(T (&array)[N]) { for each (const T& n in array) </typename></iostream>…

情報セキュリティアドミニストレータ試験

受験番号 SUx の方は,合格です。 午前試験のスコアは,660 点です。 午後I試験のスコアは,645 点です。 午後II試験のスコアは,655 点です。 おめでとうございました。周りの合格した人もおめでとう。基本情報とか受けて、午前のほうが楽に感じたタイプの…

CreateRemoteThread

CreateRemoteThread 対象プロセスのアドレス空間にスレッドを作成し、その実行を開始する。 相手は死ぬ ごめん、言いたかっただけ。我慢できなかった。

最近

故あってLinux(CentOS 5.2)を使っているのだけど、これが非常に楽しい。vimのカスタマイズ具合とか感動。一応目的があってLinuxに乗り換えた*1はずなのに、Linux初心者なのでわからないことを調べ回っているだけですぐに時間が経ってしまう。今日も5ボタン…

MSDN サブスクリプションの比較

12/07 追記 ええと、すばらしいコメントが寄せられているので、OSライセンス等をアグレッシブに使用したい場合はコメント欄のURLを参照のこと。 以下、本文 MSDNを購読(年間登録)すると、契約期間中は複数バージョンのOSライセンス等を使用することができ…