問題タブ [windows-nt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
function - NTDLL や他の DLL にリンクせずに、NTDLL から関数をロードするにはどうすればよいですか?
NTDLL によってエクスポートされたローダー関数のみを使用して、Windows システム DLL から関数をロードする実験を行ってきました。これは期待どおりに機能します。好奇心と NT ベースのシステムのプロセス構造をよりよく理解するために、次の手順を実行して NTDLL から関数をロードする試みを開始しました。
- gs:[60h] からプロセスの PEB をロードします。
- ローダーに従ってプロセスにロードされたモジュールを繰り返し処理し、NTDLL のベース アドレスを見つけます。
- NTDLL の PE ヘッダーを解析する
- エクスポート テーブルを解析して
LdrLoadDll
、、、LdrGetDllHandle
およびLdrGetProcedureAddress
これはステップ 4 で失敗します。デバッガー (VS2019 と WinDbg Preview の両方) でステップ実行した後、コードが現在の関数名を私が探しているものの一つ。私のコードは、Windows 10 Pro ビルド 21364 の 64 ビット コピーでコンパイルおよび実行されてwinnt.h
います。私のコードの残りの部分でうまくいかないでください。これを行おうとしている関数はこちらです. 記録として、これは私自身の libc を実装する試みの一部です (これも好奇心のためです)。関数を呼び出すコードはこちらです。これに関するヘルプは非常に高く評価されています。