2012-04-15 8 views
0

私はWindows用のネイティブプログラムを行っています。Windowsレジストリ、あなたのネイティブプログラムをブートエクステンションに追加するには?

(これは、#pragma comment(linker, "/SUBSYSTEM:NATIVE"でコンパイルしました))。

プログラムを自動実行リストに追加したいのですが、どうすればいいですか?

私の正確な質問は次のとおりです。

1)。私はWindowsレジストリでこれを行うことができます(私は、BootExecute/SetupExecuteテーブルを検索しましたが、セットアップは空で、BootExecuteは:autocheck autochk *)のみです。だから、私は空のテーブルを混同していました(なぜなら、空であれば、ntdll.dllがロードするWindowsの別の自動実行プログラムがあります)。

2)。実行可能プログラムのバージョンは何ですか?32/64ビットシステムの場合

私は% windir%\ system32をに入れているが、%のWINDIR%\ WOW64フォルダもあります。

レジストリまたはWindowsでこの詳細を強調する必要がありますか?両方のフォルダから各ドライバをロードし、単に* 32またはtaskmgrの64ビットプログラムとしてハイライトしますか?

3)。それを行う他の方法はありますか?

ありがとう、

よろしく!

+0

私は以前にプログラムをBootExecuteしたいと思ったことは一度も聞いたことがありません。あなたの目的は何ですか? – Gabe

+1

@Gabeネイティブウィンドウの開発はntdll.dllレベルで、Win32はntdllがロードするモジュールの一つです。 http://technet.microsoft.com/en-us/sysinternals/bb897447 または http://hex.pp.ua/nt-native-applications-shell-eng.php –

+1

HKEY_LOCAL_MACHINE \システム\ CurrentControlSet \ Control \ Session Manager –

答えて

2

1)BootExecuteレジストリ値に配置する必要があります。これは複数の文字列の値で、文字列があればそのまま(通常は "autocheck autochk *"のみ)、拡張子のないプログラム名を追加する必要があります。

2)32ビットOSの場合は32ビットバイナリ、64ビットOSの場合は64ビットバイナリをコンパイルする必要があります。例えば、任意のファイルシステムまたはブートデフラグ機能を持つレジストリデフラグをインストールし、それを有効にする - バイナリは、それは私の知る限り

PSを知っている唯一の方法だ)%windir%\ system32をへ

3を配置する必要がありますそれがBootExecuteをどのように変更するかを見てください。

+0

私は追加しようとしましたが、成功しませんでした:(私は "autocheck autochk *"から2行目のプログラムの名前を追加しました - うまくいきませんでした。 ( –

+0

)プログラムが正しくコンパイルされていない可能性があります。ntdll.dll以外のライブラリにリンクしていないことを確認してください。チェックしてください)、またOSアーキテクチャ(32/64ビット)に一致していることも確認してください。 – Isso

+0

#pragma comment(リンカ、 "/ BASE:0x00010000")、#pragma comment(リンカ、 "/ ENTRY :your_entry_function_name ")、バッファセキュリティチェック(/ GS-)を無効にする – Isso

関連する問題