問題タブ [readprocessmemory]

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.

0 投票する
1 に答える
711 参照

c++ - コールスタックと ReadProcessMemory

メソッドの戻りアドレスを読み取ろうとしていますが、別のメモリです。そのため、フレーム ポインタを取得し、戻り値の値を読み取ります。私が理解している限り、m_stackframe.AddrReturn.Offset に等しい値を取得することになっていますが、

  1. Esp をフレーム ポインター アドレスに追加すると、ReadProcessMemory は false を返します。
  2. 単純にアドレス フレーム オフセットを使用すると、間違った値が得られます。

Windowsでc ++を使用しています。何が問題なのか誰か教えてもらえますか? ありがとう :)

0 投票する
1 に答える
336 参照

memory - 複数の値を同じメモリ アドレスに格納します。デリミタ?

私は Read- と WriteProcessMemory と、私が見つけた古いプラットフォーマー ゲームをいじっています。プレイヤーが新しいレベルに入るたびに、敵が作成され、それぞれのヘルス ポイント、座標などが設定されます。

(EAX は構造体のアドレスで、138 はヘルスへのオフセットです)

書き込む空きメモリがあるとすれば、それぞれの EAX の値を 1 つの同じ場所に格納する方法はありますか? ある種の区切り記号を使用するのが好きですか?

乾杯

0 投票する
2 に答える
3252 参照

c++ - メモリアドレスをintに変換します

メモリ内で実行されている実行可能ファイルからメモリアドレスを読み取り、それらのメモリアドレスを使用してPE構造をウォークしようとしています。

4バイトのchar配列をintと同等に変換する方法がわからないため、問題が発生しています。

これまでの私のコードは次のとおりです。

私が読み込んでいるアドレス(この場合は0xE0000000)は、PEヘッダーのオフセットです。読み取ったばかりのメモリアドレスを取得して、プロセスメモリから再度読み取るためのオフセットとして使用したいのですが、正しくintに変換する方法がわかりません。

どんな助けでも大歓迎です。

0 投票する
1 に答える
264 参照

windows - プロセスメモリの始まりは何を意味しますか

プロセスメモリの読み方についてもっと学ぼうとしています。そこで、Firefox プロセスの「メモリ全体」を WinHex で開いたところ、オフセット 10000 から始まる次の 16 進値が表示されました。

私の質問は、人間がこれ以上の知識なしにこれを解釈することは可能ですか? これらはポインターですか、それとも値ですか? エンディアンなどとは別に、プロセスメモリに関して、異なるコンパイラで作成された異なるプログラムに共通するものはありますか? なぜ多くのゼロで始まるのですか? スペースの使用を開始するのは非常に奇妙な方法ではありませんか?

0 投票する
1 に答える
832 参照

c# - プロセス メモリのイメージを取得する

私の目標は、プロセス ハンドルを受け取り、そのプロセスのメモリを表すバイト配列を返すメソッドを作成することです。ここに私が持っているものがあります:

ラッパー メソッドに引数として何を渡せばよいかわかりません。ahandleと thebytesは出力変数ですが、addressandはsizeどうでしょうか。このデータはどこから入手できますか?

0 投票する
1 に答える
2730 参照

.net - ReadProcessMemory への最速の方法は何ですか?

プロセスのメモリで null で終わる文字列のすべてのインスタンスを検索しようとしています。割り当てられたすべてのメモリ領域を VirtualQueryEx で列挙し、次に ReadProcessMemory でそれらをバイト配列に読み取り、このアルゴリズムを使用して検索します (ここで見つけたもので、著者は最速であると主張しています)。

動作しますが、遅すぎます。プロセスをメモリマップする方法や、メモリ内をより高速に検索する方法はありますか?

0 投票する
1 に答える
5002 参照

c++ - ReadProcessMemory は常に GLE で失敗します: 299

ReadProcessMemory関数が失敗し、GetLastError = 299である理由がわかりません。これが私のコードです。何か間違ったことをしていることはわかりません。

IDH_Buffer が割り当てられました。hProcess は非 NULL です

私のアプリは管理者として実行されており、読み込もうとしているアプリは標準のユーザーモードアプリケーションです。

教えてください。ありがとう

0 投票する
1 に答える
192 参照

c++ - 他のプロセスで読み取り可能なメモリ量を確認する

ReadProcessMemory を使用して別のプロセスから読み取ることができるメモリの量を知る方法はありますか?
特定のアドレスから大量のメモリを読み取ろうとすると、エラー コード 299 が返され、0 バイトが読み取られます。
プロセスの割り当てられたバッファを超えて読み込もうとしているからだと思います。

0 投票する
1 に答える
4015 参照

c++ - C++ReadProcessMemoryをバイト配列に

ReadProcessMemoryを使用して動的な量のバイトを配列に読み込み、それを返そうとしています。私はそれを正しく動作させることができません。私の現在のコードは...

どんな助けでもいただければ幸いです。

0 投票する
7 に答える
32980 参照

c++ - 物理メモリから直接読み取るにはどうすればよいですか?

C または C++ (windows) では、物理 (仮想ではない) アドレスを指定して RAM を読み取るにはどうすればよいですか? つまり、仮想メモリ システム (mmu テーブル) を経由せず、1 つのプロセスに固有であることを意味します。

ReadProcessMemoryRAM から読み取るAPI (ほとんどのトレーナーが使用) は既に知っていますが、これは特定のプロセス専用です。

MSDN で検索したところ、Device\PhysicalMemoryがそのような可能性を示しているようですが、実際の例は見つかりませんでした。また、この機能は Windows サービス パックによって (脆弱性を修正するために) オフにされているようです。

WinHexがそれを行うので、それが可能であることはわかっています(「ツール」>「RAMを開く」>「物理メモリ」を選択した場合)。従来のファイルを開くときと同様に、0x00000000 から your_ram_size までの RAM コンテンツが表示されます。管理者権限が必要ですが、インストールするドライバーはありません (つまり、WinHex はユーザー モードから実行します)。

編集: os に関する追加情報。