Force of Will ?

オリコンが10〜40代の男女を対象に『夢や目標を達成させるために必要なもの』について調査を行ったところ、性別・世代別の全ての部門で【自分自身の強い信念・精神力】が1位となった。
目標達成に必要なもの、男性は「運」女性は「行動力」

カッコ良すぎわろた。その通りだと思うけどね。

ただ、男女別に見ると男性は【運】が2位(11.3%)なのに対し、女性は【行動力】が2位(11.4%)で、女性の【運】は5位に。男女間の感覚の違いが見られた。

「女は行動力!」ってやつですね、わかります。男も行動力だと思いますけどね。運はあるけどさ、運を最小化するように手を回すのがゲームってもんじゃないですかね?


ちなみにForce of Willのコストは(3)(青)(青)、Mind Over Matterのコストは(2)(青)(青)(青)(青)である。どちらも簡単には発揮できない。

Windows 7でのAppInit_DLLsの変更

AppInit_DLLsとはHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\以下にあるレジストリーキー群で、

AppInit_DLLs インフラストラクチャにより、アプリケーションは任意の DLL をすべてのユーザー モード プロセスに読み込むことができます。この機構の最も一般的な用途は API フックです。Windows 7 および Windows Server 2008 R2 のシステム上で動作しているコードの整合性および可視性を向上させるために、AppInit_DLLs インフラストラクチャがこれらのシステム用に変更されました。
AppInit DLLs in Windows 7 and Windows Server 2008 R2

とのこと。要点をまとめると以下の通り。

  • RequireSignedAppInit_DLLsが新設された。この値が1のとき、すべての登録されたDLLは署名がなければ読み込まれない。
    • Windows 7ではデフォルトで0である(署名がなくても読み込まれる)。
    • 2008 R2ではデフォルトで1である(署名がないDLLを登録しても読み込まれない)。
    • 将来のバージョンではRequireSignedAppInit_DLLsは廃止され、すべての登録されたDLLには署名が必須になるかもしれない。
  • 保護されたプロセスには登録されたDLLは読み込まれない。この動作は変更不能である。
  • ブロックリストプロセスには登録されたDLLは読み込まれない。この動作は変更不能である。
  • LoadAppInit_DLLs に1を設定し、AppInit_DLLsを有効にすると、システムイベントログに警告 EventID 11 が記録される。
  • AppInit_DLLsの不注意な利用は、デッドロックを引き起こす可能性がある。なぜなら、登録されたDLLはuser32.dllが初期化されている間に(DllMainでLoadLibraryが実行されることによって)ロードされるためである。
  • 登録されたDLLのDllMainではkernel32.dllがエクスポートする関数以外を利用してはならない。なぜなら、登録されたDLLのDllMainが呼ばれたときはまだ、kernel32.dll以外のDLLの初期化が完了していないためである。
  • 登録されたDLLで特定のプロセスにAPIフックを行うのであれば、DllMainではGetModuleFileNameを使ってプロセス名を特定し、目的のプロセスでなければDllMainは単にリターンすべきである。


もともとAppInit_DLLsはuser32.dllを読まないプロセスには無効だったり、Vistaではデフォルトで無効だったりとあまり使いやすいものではなかったので、コード署名を必須にする方針にしても困る人はいないだろう。 


ちなみにこの文書の2/3はコード署名に関するものなので、署名に関心があれば一読すると参考になるかもしれない。