私はSetWindowsHookExを使用して、dllを別のプロセスに注入しています。しかし、インジェクタプログラムが終了すると、dllは他のプロセスからアンロードされます。とにかく私が荷降ろしをやめることはありますか?基本的には、インジェクタプログラムがまだ動作しているかどうかにかかわらず、dllを永続的に保持します。 DLL内からdll参照カウントを増やすことができれば、それはうまくいく可能性があります。しかし、私は方法を見つけていない。SetWindowsHookEx DLLのアンロード
答えて
が存在する2方法 1.)最も効果的 - 使用するLdrAddRefDll - これはあなたが必要とするものを正確には最短で行います。リンクにはntdll.lib(またはntdllp.lib)を使用する必要があります。素敵で有効ではない
LdrAddRefDll(0, (HMODULE)&__ImageBase);
2)が、DLLの参照カウント増やすため
WCHAR sz[MAX_PATH];
if (GetModuleFileName((HMODULE)&__ImageBase, sz, RTL_NUMBER_OF(sz)))
{
LoadLibrary(sz);
}
ありがとうございます。私は書いている途中でした2)。今私はちょうどコピーし、貼り付けます:)。 1)については、それは複雑に見えます。私は2)が動作しない場合、私はそれを使用します。 – user118708
もちろん、1と2の両方が有効です。両方とも、アンロードからそれを保持するdllへの参照を追加 - 今すぐ余分なFreeLibraryが必要です。しかし、1 - これを直接行います。 2最初に&__ ImageBaseを名前に変換し、名前を同じ__ImageBaseに変換し、最後に参照を追加します – RbMm
成功。私はリンカの設定を変更する必要がなかったので2を使用しました - 私はそれがどこであるか分かりません。 DLL_PROCESS_ATTACHは私にGetModuleFileNameにフィードするdllハンドルを与えました。モジュールは、DllMainのデッドロックの場合に新しいスレッドからロードされました。 – user118708
- 1. Reliabily DLL内のDLLをアンロード
- 2. EventLog。アンロードEventMessageFile(DLL)
- 3. Javaでdllをアンロード
- 4. mefでdllファイルをアンロード
- 5. SetWindowsHookEx in C#
- 6. 私はappdomainをアンロードしてもDLLがアンロードされません
- 7. DLLのアンロード/クローズ時にアクションを実行
- 8. すべてのqt dllをアンロード
- 9. C++ DLLがAppDomainでアンロードされない
- 10. カーバイド/ノキアエミュレータを使用したQlibraryアンロードDLL
- 11. VBA FreeLibraryはDLLをアンロードしません
- 12. Windows/CでDLLをアンロードする#
- 13. NUnitテストで外部アンマネージドDLLをアンロード
- 14. SetWindowsHookEx - アンチウイルスの問題
- 15. Gma.UserActivityMonitor&SetWindowsHookExエラー126
- 16. SetWindowsHookEx HCBT_CREATEWND GetWindowText
- 17. SetWindowsHookEx、Keyboard Hooking
- 18. COM DLLがアンロードされ、ロックカウンタはまだ0以外です。
- 19. C#を使って.dllをアンロードする方法は?
- 20. Visual StudioにDLLをアンロードする方法はありますか?
- 21. MFCプログラムからdllファイルをアンロードします。
- 22. C++でメモリからDLLをアンロードする方法は?
- 23. Win 10ではDLLをアンロードしているが、Win 7ではDLLをアンロードしている間にクラッシュをデバッグする
- 24. SetWindowsHookExの使用法の相違点
- 25. Delphi7。どのように再起動せずにDLLをアンロードするには?
- 26. アンマネージド/管理されたサードパーティのDLLをアンロードしようとしています
- 27. appdomainを使用して同じバージョンの同じdllをロード/アンロードする
- 28. 宝石をアンロード/アンロードする方法
- 29. jquery:アンロードまたはアンロード前に?
- 30. タブバーコントローラのアンロード
を働く - 'LdrAddRefDll(0、&__ IMAGEBASE);' – RbMm
感謝。私はあなたの提案をVisual Studioに書いていますが、これらの名前はわかりません。インクルードファイルはありますか? – user118708
自分で宣言し、ntdll.libを使用してください – RbMm