dllで特定の関数のRVAを取得し、そのRVAをdllのベースローディングアドレスに追加して、リモートプロセスメモリ内の関数を見つける必要があります。しかし、私はこのメモリアドレスをリモートプロセスで作成されるスレッドにバッファに渡す必要があります。だから私はアドレスのDWORD表現としてこれを渡す必要があるかどうか疑問に思っていた。私は64ビットWindows上にあるので、もしそうなら、それはDWORD_PTR、DWORD64などでしょうか?または、私はまだ実際には私には意味がないポインタとして渡すことはできますか?DWORDにリモート仮想アドレスを格納していますか?
1
A
答えて
1
簡単な調査をしましょう。 specを参照します。オプションのヘッダーのSizeOfImage
フィールドを参照してください。
すべてのヘッダーを含むサイズ(バイト単位)。セクションアラインメントの倍数である必要があります。
これは実際にマップされたイメージのサイズで、PE32 + PE32 +フォーマットの場合は4バイトの整数です。結果として、PE内のすべての相対アドレスは常に32ビット整数に収まります。また、PE構造のRVAフィールドの大部分はDWORD
と宣言されています。そのIMOは良いヒントです。
先頭へ移動:32ビットまたは64ビットシステムの両方でDWORD
にRVAを保存できます。
関連する問題
- 1. 仮想アドレスを物理アドレスに戻してマップします
- 2. は、仮想アドレス
- 3. 仮想メモリ、ページサイズ、最大仮想アドレス
- 4. 仮想アドレスを物理アドレスに変換
- 5. 仮想アドレスと仮想アドレス空間の理解
- 6. PHPがmysqlデータベースにipアドレスを格納しています
- 7. MySQLデータベース(IPv4とIPv6)にIPアドレスを格納しています
- 8. MACアドレスがLinux上の物理アドレスか仮想アドレスかを判断します
- 9. 自動仮想アドレスをメモリアドレスに変換しますか?
- 10. アドレスにdwordを格納
- 11. 仮想アドレスにイメージをロードする0X00000
- 12. 仮想マシンを使用して仮想マシンにIPアドレスを割り当てます。
- 13. Tomcat仮想ホストにIPアドレスでアクセスしますか?
- 14. 仮想アドレスはプロセス固有ですか?
- 15. x86の仮想アドレス長
- 16. リンカスクリプトのロードと仮想アドレス
- 17. カーネル仮想アドレス変換
- 18. 仮想レジストリ/仮想ファイルシステムプロジェクトを探しています
- 19. 仮想アドレスの割り当て方法
- 20. Genymotion "仮想デバイスはIPアドレスを持っていません"
- 21. C++クラスの仮想関数テーブルはどこに格納されていますか?
- 22. Ubuntu 14.04仮想マシンにリモートで接続
- 23. 仮想呼び出しは、純粋仮想メンバーのアドレスを使用します。それは合法ですか?
- 24. MIPSのレジスタにアドレスを格納する
- 25. メンバー関数へのポインタを格納することによる仮想動作
- 26. CPUキャッシュエントリに物理アドレスまたは仮想アドレスが含まれていますか?
- 27. MACアドレスなどの仮想マシンの仮想マシンから物理ホスト情報を取得します。
- 28. データベースにIPアドレスを整数として格納する
- 29. 仮想アドレスのProc/[pid]/memを読む
- 30. 仮想アドレスと物理アドレスの関係についての私の理解は正しいですか?