プラグイン作成の注意点。

プラグインを作ってみて気になった点がいくつかあったので適当に書いておきます。



[SourceDisksFiles]で使用できるフォルダーの数値一覧



・レジストリをエクスポートしたregファイルをプラグイン形式に変換するときはreg2pe.pyを使用します。  Pythonはここからダウンロード。
regファイルに2バイト文字が一つもないことが分かっていればそのままreg2pe.pyで変換していいんですが、2バイト文字が含まれている場合
うまくinfファイルを生成できないので、regファイルの文字コードをいったんUnicodeからShift-JISに変換してからreg2pe.pyで変換してください。

・上記以外にもプラグインのレジストリ部分を作成するツールがありましたので紹介を。
reg2pe.exe というもので、レジストリから直接プラグイン形式で出力できます。
reg2pe.pyとちがって2バイト文字もちゃんと表示されるし、下に書いてある「レジストリの値の中に"が含まれてる場合」にも対応されてます。
それとREG_NONEなどPE Builderが対応していないレジストリはコメント行で出力する仕様になってるようです。


レジストリにREG_NONEという種類の値が存在しているとPEBuilderでPE作成中にエラーが出てうまくレジストリに書き込みがされません。

こんなやつです。

regファイル中だと
----------------------------------------------
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"IconUnderline"=hex(0):03,00,00,00
----------------------------------------------
のように記述されてます。元のregファイルに=hex(0):がないか確かめてください。

もし=hex(0):があった場合はreg2pe.pyで変換すると
----------------------------------------------
0x0,"Microsoft\Windows\CurrentVersion\Explorer","IconUnderline",03,00,00,00
----------------------------------------------
のようになってるので0x0の部分を0x10x3などに書き換えるか、この行を削除してください。
0x0の部分を書き換える場合はこの値の中の数値や文字列を見て判断してください。
この例の場合はバイナリ値が書き込まれてるので0x3に置き換えるのがよろしいかと思われます。



レジストリの値の中に"が含まれてる場合。


このキーをregファイルにエクスポートし、reg2pe.pyで変換するとこのようになります。
----------------------------------------------
0x2,"AAA\BBB","CCC","\"%systemroot%\b b\test.exe\" \"%1\""
----------------------------------------------
"\"に置き換えられてますね。

このままPEBuilderで作成すると\"が\として書き込まれてしまいます。


回避方法としてreg2pe.pyで作成したinfファイルの0x2,"AAA\BBB","CCC","\"%systemroot%\b b\test.exe\" \"%1\""
0x2,"AAA\BBB","CCC","""%systemroot%\b b\test.exe"" ""%1""" (\""")に置き換えてください。
これでちゃんと"が書き込まれます。



他にもhex(8):やhex(a):といったレジストリの種類がありますが、これらはまだPE Builderが対応してないので プラグイン化は今のとこ無理です。




戻る