0

私は自分のハックのためにコード洞窟を行うのに問題があります。

WindowsXP32ビットd3d9.dllランタイムリターンアドレス

4fe50000 (base address)
4fe58840 (drawindexedprimitive virtual table address)
4fe571b0 (endscene virtual table address)

Windows764ビットd3d9.dllランタイムリターンアドレス

72c30000 (base address)
72c5b6b1 (drawindexedprimitive virtual table address)
72c5279f (endscene virtual table address)

注意深く見るとサイズが違うようです。

まあ、私はこれをデバッグしようとしました=> "windows 7 x64のc:\ windows \ syswow64 \ d3d9.dll"、それは異なるアドレス5e1cxxxxを返します

何を逃したのかわかりません。しかし、「72c30000」として返されます。32ビットのd3d9.dllであることを保証できます。

説明はありますか?

4

1 に答える 1

2

DirectXは、最近のWindowsの不可欠な部分です。特にAeroはそれに依存しており、d3d9.dllがプリインストールされています。したがって、簡単な説明は、DLLが異なるため、アドレスが異なるということです。Windowsエクスプローラーの[プロパティ]+[詳細]タブを見ると簡単にわかります。異なるファイルバージョンに注意してください。

異なるWindowsバージョン間で機能の一貫したアドレスを信頼できるシナリオはありません。または、あるバージョンでは、セキュリティパッチまたはサービスパックによってアドレスが変更されます。または、特定のファイルバージョンについては、アドレス空間配置のランダム化機能は、実行しようとしていることを阻止するように特別に設計されています。

于 2012-07-17T12:11:43.867 に答える