it-swarm-ja.com

Process Monitorでクエリされたレジストリ値の種類を確認する方法はありますか?

NAME NOT FOUNDresults-Process Monitorだから、自分で価値を創造しようと思っていました。しかし、それがBinaryかどうかはわかりませんStringまたは、たとえば[〜#〜] dword [アクセスしようとした〜#〜]RegQueryValueの場合にそれを見つける方法があるかどうか誰かが知っていますか?

RegQueryValue

2
Starhowl

正確ではありませんが、場合によっては適切に推測できます。

ProcessMonitorのRegQueryValue操作は、基本的に、呼び出される RegQueryValueEx 関数に対応します。その関数にはlpTypeというパラメーターがありますが、それは...

指定された値に格納されているデータのタイプを示すコードを受信する変数へのポインター。

強調鉱山。それは、アプリケーションが得た値のタイプを知ることができるようにするためにあります。 (RegQueryValueExはデータ型を気にせず、バイトを渡すだけです。バイトを解釈するのはプログラムの仕事です。)プログラムが何らかの理由で型を指定した場合でも、ProcessMonitorは値を報告しません。関数の開始時、正常に終了したときのみ。

ただし、「長さ」は報告されます。理由は不明ですが、これは実際には、アプリケーションが結果のバッファーの大きさを指定するために提供するlpcbData値ではありません。64ビットシステムでは、元の値を取得するには12を引く必要があります。 DWord値は4バイトを占め、QWord値は8バイトを占め、他のすべての種類は可変長です。 (プログラムは、値が存在するかどうかを確認するためだけに関数を呼び出す前に、メモリをまったく準備しない場合もあります。)したがって、Process Monitorによって報告される「長さ」が16の場合、プログラムは4バイトのデータチャンクを想定しています。確かにDWord。

1
Ben N