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

ドライバにオレオレ署名を埋め込む

x64 Windowsではデジタル署名されていないドライバはロードすることができないので、自分でビルドしたりその辺から拾ってきたドライバを読ませるときは適当な(オレオレの)署名をする必要がある。 んだけど、よくコマンドを忘れるのでドライバに署名を埋め…

堕落したWindowsプログラマのレベル -10

XPのタスクマネージャーで表示される「メモリ使用量」の意味を理解している。そのうえで、これを減らすためだけの技巧を凝らす。メモリ使用量が少なく見えれば、ユーザーの満足度は上がるさ! DLLインジェクション+APIフックが便利だ。フックする際は、IAT…

main が呼ばれる前に実行されるコードのコールスタック

プログラムのエントリーポイントは、main関数ではなく、PE内に定義されたアドレスであることはよく知られているが、それより以前にコード実行できるTLS Callbacksという仕組みはあまり知られていない。TLS CallbacksはPE内に適切にセクションとディレクトリ…

細かいWinデバッグテクニックのメモ

(12/05)追記したら記事の方向性がわかりやすくなったのでタイトルも変えた(笑 UserDebuggerHotKey GUIアプリケーションに対してデバッガがアタッチしているとき、このレジストリキーで設定されたキーを押すと、ブレークが発生しデバッグすることができよ…

WinDbgでコードパッチを簡単に検出する

!chkimgコマンドを使うと、コードパッチを簡単に検出することができる。以下の実行例では、ntカーネル(ntoskrnl.exe)に10byteの改ざんがあること、それらが5byteの改ざん2つ(そして関数フック)であることを確認している。 C:\>livekd ... 0: kd> .exepath …