回答:
.REGファイルのREG_MULTI_SZデータは、16進数でエンコードする必要があります。コンテンツが変更されない場合は、データを使用してレジストリにダミーアイテムを作成し、エクスポートして、ニーズに合わせて調整できます。
変更された場合、おそらくreg
Windowsに含まれているコマンドを使用して追加する方がはるかに簡単です。これを行うには、次の形式でregを呼び出します。
reg add <KEY> /v <NAME> /t REG_MULTI_SZ /d <DATA> /s <SEPERATOR>
セパレータスイッチはオプションです。使用しない場合、書き込まれる文字列は、ヌル文字(\0
)のエスケープシーケンスで区切る必要があります。たとえば、という項目を追加するFlair
にはHKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama
、文字列ではfoo
、bar
とbaz
あなたが実行します:
reg add HKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo\0bar\0baz
代わりにコンマでデータを分離するには、次を実行します。
reg add HKEY_LOCAL_ MACHINE\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo,bar,baz /s ,
詳細については、Microsoftのreg
コマンドに関するドキュメントを参照してください。
DWORD = dword:展開可能な文字列= hex(2):マルチ文字列= hex(7):
DWORDは32ビットの符号なし整数(範囲:10進数で0〜4294967295)です。レジストリでは、DWORDは常に0xで始まります。レジストリでは、DWORDSには常に0xに続く8桁があります。これは10進数または16進数形式で、1000は0x00001000または0x000003e8として記述できます。
DWORDSは、数字の0〜9のみを使用できます。ACSII 1000では、すべての種類の文字列は常にASCIIを使用し、31,30,30,30としてのみ記述できます。文字列データ型の場合、ASCIIは知らないうちにバックグラウンドで動作します。コンピューターは1と0のみを理解するためです。Expandable StringおよびMulti Stringデータ型の場合、これらは、コンマと16進ゼロで区切られた16進形式の一連のASCIIコードとしてエントリを保存します。したがって、1000の展開可能な文字列は、hex(2):31,00,30,00,30,00,30,00になります。
それでは、%PROGRAMFILES%を拡張可能な文字列に変換しましょう。まず、これをダウンロードします:https : //hotfile.com/dl/244097278/55aa086/ASCII_2_HEX_Conversion_Tool.7z.html
それを最新のブラウザで開きます。ASCIIボックスに%PROGRAMFILES%を入力し、エンコードを選択します。これにより、%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25がテキストエディターに貼り付けられ、最初の%が最後に移動します。置換コマンドを選択し、すべての「%」を見つけて「、00、」に置き換えます。最後のコンマを削除します。取得する必要があります:25,00,50,00,52,00,4F、00,47,00,52,00,41,00,4D、00,46,00,49,00,4C、00,45、 00,53,00,25,00そして最後に、hex(2):25,00,50,00,52,00,4F、00,47,00,52,00,41,00,4D、00,46 、00、49、00、4C、00、45、00、53、00、25、00
できた
好奇心盛な16進レジストリエントリをASCIIに変換しようとして、惨めな失敗をしたことがありますか。このレッスンには、暗号化されていない16進コードのレジストリエントリをリバースエンジニアリングするために必要なすべての知識が含まれています。楽しむ!
.bat
ファイルのreg
代わりにコマンド付きのファイルを使用.reg
)が、質問がREG_EXPAND_SZについての質問である場合、なぜREG_MULTI_SZについて話すのですか?