Microsoft

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

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

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

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

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

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

Visual Studioでasmファイルを使う

x64ではインラインアセンブラが使えないので生のMASMを書く必要がある。 asmファイルをプロジェクト内に追加する 追加したasmファイルのプロパティを開き、「カスタム ビルド ステップ」>「全般」の 「コマンドライン」に ml64 /c /Cx /W0 /Fo$(IntDir)\$(I…

実行可能属性のページとDEP

何をもってしてコードセクションとするか、を会社の昼休み中に調べていたら、なんだかいつの間にかDEPという深淵を覗き込んでいたので、そのままDEPについて調べてみた。まずコードセクション(実行可能セクション)はIMAGE_SCN_MEM_EXECUTEが設定してあるセ…

プロセスの終了コード取得(on Shell)

Windowsの場合、errorlevel環境変数で取得する。 >type con > exit_code.c int main(void) { return 11519; } [Ctrl+C] >cl exit_code.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corpora…

コンソール内のエディタ

コマンドプロンプトの場合 >type con > filename ... [Ctrl+C] PowerShellの場合 PS>Write-Output > filename InputObject[N]:... InputObject[N]:[Enter]空行を入力する方法がわからないね。とりあえず半角空白など入れているけど。 UNIX色に染まりたい(染…

PowerShellで青画面

突然すぐる… PowerShell使っていて [Alt]+[Enter] 押したらこうなったんだよ! 嘘じゃないよ! 一瞬ブラックアウト 青背景に白文字 微妙に文字がつぶれてる この辺がポイント。いかに青画面見慣れてても、突然だと焦る。

そろそろWindows Internalsについて一言いっとくか

ゲットしました。

USBによるカーネルデバッグのまとめサイトのまとめ

1万円近い謎のケーブルが届いたのでまとめる。

Windows 7の見所

Future Technology Daysに行ってきたので忘れないうちに書く。基本的には企業向けの"ソリューション"が紹介されていたけれども、個人が楽しめる技術もちょっとあったので紹介。

Windows 7でのリファクタリング

Microsoft Partoner Program - Windows 7にある「Windows 7 アプリケーション品質(互換性 信頼性 パフォーマンス)を高めるための開発者ガイド」には、Windows 7へ移行するにあたっての開発者向け変更点が記述されている。Windowsプラットフォームの開発者は…

Windows小ネタ(随時更新)

大切な気づきがつまっています。上のものほど新しいです。 [F1]キーを無効にする 間違ってF1キーを押すたびに出てくるヘルプ黙らせる、いわゆる「お前を消す方法」的なあれ。XPではHelp and Supportサービスを無効にすればよかったが、Vistaでは該当するサー…

実機2台でのカーネルデバッグ

2台の実機をシリアルケーブルでつないでデバッグする。こんな場所も金も時間もかかる方法は選択肢にすら入らない。そんなふうに考えていた時期が俺にもありました。 というわけで、ささっとケーブル類買ってきて試してみたらうまくいったのでメモ。

Windows® Internals, Fifth Edition

*おおっと* Windows® Internals, Fifth Edition Published : May 20, 2009 http://www.microsoft.com/learning/en/us/books/12069.aspx *えんきされている*

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

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

Vistaの起動を最適化してみた

せっかくVista搭載の実機を買ったのだし、Windows Performance Analyzerを使って起動を最適化してみた。細かい手順は以前の記事のとおり。速くなったんじゃないかな、たぶん。以下の画像は最適化前後のディスク使用率。記録時間全体から見て特徴的なのは、14…

WDK SP1 for Windows Server 2008/SP1

Here are few highlights in this release: New Setup Environment Updates/fixes to Headers Added Bluetooth 2.1 headers and samples Added support for Server 2008 to DifX Updated WDF 1.7 co-installers Updated Device Simulation Framework (DSF) U…

#pragma

プログラムに関するすべての情報はソースコード上にあるのが好きだ。プロジェクトのプロパティ(あるいはmakefile)に情報が分散されているのは好きじゃないので、コンパイラやリンカへのオプションはできるだけpragmaを使おうと努めている。 でまあ、またち…

ハイパーバイザ機能仕様書

Windows Server 2008 ホワイトペーパーの一文書。仮想マシンの仕様書であるとともに、ハイパーコール(Hvp API)の日本語リファレンス。

Vista版 bootvis

bootvisはXPの起動プロセスの詳細を分析し、また起動を高速化する(かもしれない)機能を持っていることで有名なツール。わたしも高速化機能に加え、ブートプロセスの詳細を意味もわからず眺めるのが好きで、日本語化パッチなどを作ったりしていた。ところで…

マルチコア環境でのコンパイル速度改善

Faith and Brave - C++で遊ぼう - 並列コンパイルを見て。clに/MPオプションを渡すと、CPU数を活かした並列ビルドを行う。すばらしい。このエントリー見つけた瞬間、VS2008の有償版を買おうかと思い悩んだが、VS2005 SP1で試したところ問題なく機能すること…

タスクバーや詳細表示に曜日を表示

タスクトレイの時計に曜日を表示する 詳細表示に曜日を表示させたり、タスクバーに日付を表示させる方法。TClockとか弄っておいて言うのもなんだが、これは素晴らしいね。

Win2008のMUI

ひょんなことで2008もVistaと同様にMUI(多言語化)が可能であることがわかった。 Windows Server 2008 Multilingual User Interface Language Packsから必要な言語パック(isoファイル)をダウンロード ダウンロードしたisoをマウント コントロールパネルの…

Windows Driver Kit で最も名前が長い定数・関数トップ5

Windows SDK で最も名前が長い定数・関数ベスト6 が「長い関数名ってなんだろう?」という私のくだらない疑問を解決していることに感動した。そこで識別子の長さではWDKだって負けてないよ、ないよ! ということでやってみた。もうすでにどこかの誰かがやっ…

Hyper-Vを使用したカーネルデバッグ環境の構築

Hyper-Vで仮想マシンを作成し、これをWinDbgによりカーネルデバッグするまでの手順。今回の例では以下の構成で話を進める。ホスト側における手順はすべて管理者権限で行う必要がある。 仮想マシン Win2003 R2 std 評価版(x64) デバッガ WinDbg(ネイティブ x6…

Win2008のサウンドカード

前回も書いたが購入したハードウェアにはサウンドカードが無い。したがって音が出ない。サーバならともかくパソコンとして使用する以上、やっぱりサウンドカードが欲しい。そこでパーツを買ったが、結論としては満足のいく音を得られていない。ノイズがひど…

Win2008の入れ物

端的にいうとDELLのサーバマシンSC1430を買った。購入前の絶対的な要件としてあげていたのは以下のとおり。 Quad Core x2(仮想マシン2つ以上並走してデバッグしたい) メモリが8GB以上(仮想マシン2つ以上並走してデバッグしたい) 仮想化支援機能を持つ(H…

sc wrapper(?)

ドライバをロードできるCoolな標準コマンドsc のラッパをjs(WSH)で書こうとしたが、WScript.run で起動したscの出力を、親コンソールの標準出力にリダイレクトさせる方法がわからない。 やむを得ずバッチで書き始めたら、バッチ引数として渡した binpath= な…

ドライバをロード/アンロードできるCUIのツール

XP以降のWindowsには標準でscというコマンドがあって、これを使うとドライバをロードしたりアンロードしたりすることができる。以下に __empty.sys を登録・開始する例と、停止・登録解除する例を示す。まず起動まで。 >sc create __empty binpath= C:\Users…