![]()

|
... 2. Key Check-sum Check Good : 340 Bad : 2 .DEFAULT\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\SigmaTel Audio\ボリューム コン\ .DEFAULT\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\SigmaTel Audio\モノラル出力\ GhostKey: 2 .DEFAULT\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\SigmaTel Audio\録音コントローソ .DEFAULT\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\SigmaTel Audio\録音コントローソ ... |




|
(これ以前、略) ...... ____addr(Blk#:Rec#) _NextOfs _RecSize KeyL DatN ___iUnk1 0001240E 0001 006A 00000044 00000044 000E 0002 00000000 [SigmaTel Audio] ChkSum: 03E8 Hex: 53 69 67 6D 61 54 65 6C 20 41 75 64 69 6F Atr:0004 Un1:0000 Un2:2000317E NL:0001 VL:0004 X = DWORD:00000000 Atr:0004 Un1:0000 Un2:FFFFFFFF NL:0001 VL:0004 Y = DWORD:00000000 ____addr(Blk#:Rec#) _NextOfs _RecSize KeyL DatN ___iUnk1 00011CBA 0001 006B 0000029D 0000029D 000F 0001 00000000 [ボリューム コン] ChkSum: 02FD Hex: 83 7B 83 8A 83 85 81 5B 83 80 20 83 52 83 93 Atr:0003 Un1:0000 Un2:FFFFFFFF NL:000A VL:0264 LineStates = 00 00 00 00 83 7B 83 8A 83 85 81 5B 83 80 20 83 52 83 93 ... ____addr(Blk#:Rec#) _NextOfs _RecSize KeyL DatN ___iUnk1 00011F57 0001 006C 0000025D 0000025D 0013 0001 00000000 [録音コントローゾ ChkSum: 03FC Hex: 98 5E 89 B9 83 52 83 93 83 67 83 8D 81 5B 83 00 FC 97 CD Atr:0003 Un1:0000 Un2:FFFFFFFF NL:000A VL:0220 LineStates = 04 00 00 00 98 5E 89 B9 83 52 83 93 83 67 83 8D 81 5B 83 ... ____addr(Blk#:Rec#) _NextOfs _RecSize KeyL DatN ___iUnk1 000121B4 0001 006D 0000025A 0000025A 0010 0001 00000000 [録音コントローゾ ChkSum: 03FC Hex: 98 5E 89 B9 83 52 83 93 83 67 83 8D 81 5B 83 00 Atr:0003 Un1:0000 Un2:FFFFFFFF NL:000A VL:0220 LineStates = 04 00 00 00 98 5E 89 B9 83 52 83 93 83 67 83 8D 81 5B 83 ... ____addr(Blk#:Rec#) _NextOfs _RecSize KeyL DatN ___iUnk1 000124B8 0001 006E 00000102 00000102 000C 0001 00000000 [モノラル出力] ChkSum: 0271 Hex: 83 82 83 6D 83 89 83 8B 8F 6F 97 CD Atr:0003 Un1:0000 Un2:FFFFFFFF NL:000A VL:00CC LineStates = 04 00 00 00 83 82 83 6D 83 89 83 8B 8F 6F 97 CD 00 00 00 ... ...... (以後、略) |
青字がレジストリキーの長さ(16進数)、赤字がキー名のバイナリダンプである。データの性格からして毎回同じ名前のレジストリキーにアクセスする必要があるわけで、だとすれば、毎回同じレジストリキー名を使って設定しているに違いないにも関わらず、幽霊化した2つのレジストリキーのダンプ長が違うとはどういうことだろうか。文字列の途中に null が混じるのもおかしい。null は文字列の終わりを表すが、他のキーを見てもらえば分かるように、文字列終わり文字の null は含まずにレジストリに格納されるのが通常である。幽霊化したキー名の本当の名前は「録音コントロール云々...」と思われるが、化けた「ル」の文字コードをレジストリアクセスAPIが解釈したときに幽霊化したとは考えにくい。なぜなら、「モノラル出力」キーは正常に格納できているのだから。
レジストリキーを作るときに問題が起きていると思うのだが、Win32 API リファレンスよりレジストリキー作成関数の仕様を抜粋してみると、
|
LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpszSubKey, DWORD dwReserved, LPTSTR lpszClass, DWORD fdwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ); |
// handle of an open key // address of subkey name // reserved // address of class string // special options flag // desired security access // address of key security structure // address of buffer for opened handle // address of disposition value buffer |
