問題タブ [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 投票する
2 に答える
6154 参照

winapi - 一部のページでReadProcessMemoryが失敗する(GetLastError()= 299)

プロセス(Win7-64)のコミットされたすべてのページを読み込もうとしています。ほとんどのページで機能しますが、数ページでは失敗します。理由は説明できません。これが私のテストプログラムです(コンパイルされたx32、Win7-64でテストされました):

失敗したページのMEMORY_BASIC_INFORMATIONを調べるのに疲れましたが、そこに奇妙なものは何も見つかりませんでした。また、失敗するページの数は実行ごとに異なります(平均で約5)。なぜ私はこれらのページを読むことができませんか?プロセストークンのいくつかの特権を調整する必要がありますか?

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

c++ - ReadProcessMemory() は静的アドレスに対して 0 を返します

私がやろうとしているのは、何らかの値を保持する動的アドレスを指している静的アドレスを読み取ることです。しかし、静的アドレスを読み取ろうとすると、常に 0 が返されます。それを読み取る唯一の方法は、チート エンジンの動的アドレスにデバッガをアタッチすることです。ただし、動的アドレスから読み取るだけで問題なく読み取ることができます。

デバッグ権限を取得しようとしましたが、何もしませんでした。私はC++を初めて使用するため、問題が何であるかについての手がかりがありません。どんな助けでも大歓迎です。

ありがとうございました。

編集

GetLastError() は最初は 0 を返し、次に 299 を返します

編集 2

戻り値

等々

Edit 3 読み取りバイトは 4 です。

編集 4

明確にするために。

ReadProcessMemory() を使用して 0x74EA46D8 から直接読み取ると、0 が返されます。

チート エンジンを開いてアドレス 0x74EA46D8 ポイントをアドレス リストに追加するとします。次に、それを右クリックして「このアドレスにアクセスしたものを見つける」を押すと、突然読み取ることができます。SeDebugPrivelege を有効にしても何も起こりません。

動的アドレスは、デバッグ特権がなくても通常どおり読み取ることができます (アドレスを手動で入力するか、チート エンジンがアドレスをデバッグして静的アドレスを読み取ることができる限り)

次のように構成されています。

読み取ろうとするアドレスを指す静的アドレス。上記を参照しない限り、これは「新しいアドレス」として 0 を返します。

読み取ろうとしている値を含む動的アドレス。動的アドレスを手動で定義すると、これは問題なく読み取れます。しかし、上記を参照しない限り、new_address が 0 であるため、そうしないと失敗します。

編集 5

ようやく問題が判明しました。以前のアドレスが間違っていました。そのアドレスはチート エンジンの一部であり、実際のアドレスは 0x013CD878 で、オフセットは 0x4B0 でした。それが、デバッグしないと機能しなかった理由です。

しかし、他の人が私の過ちから学ぶことを願っています :P

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

python - ctypesを使用したReadProcessMemory

私は小さなソリティアトレーナーに取り組んでいます。ReadProcessMemory関数が機能しない理由がわかりません。通常はFalseまたはTrueを返しますが、その場合は何も返しません。GetlastError()は私にエラーコード6を与えます。

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

c# - ReadProcessMemory を使用してトレイ ボタンのテキストを取得する方法

C#でwindows7(64bit)のトレイアイコンを全て取得したいのですが、windows API「ReadProcessMemory」を使用したところ、トレイボタンのテキストが認識できません。以下のコード

そしてAPI宣言

問題はここにあります

変換すると、文字列「タイトル」が認識できません。

理由がわかりません、助けてください。

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

winapi - ReadProcessMemory Win32

それを入力すると、Dev-C++Win32でこのエラーが発生します。

C:\ Dev-Cpp\main.cpp整数定数の無効なサフィックス「CDDC」

なぜですか?

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

c++ - パターンを見つけるための ReadProcessMemory - 粒度?

別のプロセスのメモリにパターンを見つける必要があり、ReadProcessMemory を使用しています。Rabin karp などのアルゴリズム (パターン マッチング) を使用しており、ReadProcessMemory がメモリ (ram -> ram) をバッファにコピーするため、わずかなオーバーヘッドが発生します。私の義務を果たす時間

つまり、ReadProcessMemory(each_byte) はかなり時間がかかり、ReadProcessMemory(all_the_process_memory) はかなりスペースがかかるように聞こえます。読み取りの粒度を設定するための最適なトレードオフまたはより良い方法はありますか?

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

ios - ReadProcessMemory WriteProcessMemory iOS

iOSでそれ自体に異質なプロセスのメモリを管理することは可能ですか?

これは、WindowsのReadProcessMemory関数やWriteProcessMemory関数などのiOSアプリケーションでバイトを読み書きできることを意味します。

Objective-Cでプログラミングする必要があることは知っていますが、これらの関数がそこに存在するかどうか、またはiOSのライブラリにそれらが存在するかどうかはわかりません。またはそれらに似たもの。

ヒントはありますか?

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

c++ - WinAPIを使用してクラスポインタを取得しますか?

誰かが尋ねる前に、ここに悪意はありません。このプロジェクトは単に教育的および個人的な使用を目的としており、せいぜい「チートエンジン」または将来のチート防止メカニズムとして設計されています。これを悪意のある方法で使用する意図はありません。

私は次の3つのプロジェクトで解決策を持っています:

  • ユーザーが注入するプロセスを選択できる32ビットMFCアプリケーション
  • VirtualAlloc + WriteProcessMemory + CreateRemoteThread+LoadLibrary技術を介してターゲットプロセスに挿入する32ビットWin32DLL
  • ローカルインジェクションが発生したときにテストする32ビットWin32コンソールアプリケーション

DLLで、次の一連の関数を作成しました。


MFCアプリケーションがDLLをコンソールテストプロジェクトに挿入した後...

RemoteInitialize()を呼び出してリモートクラスを初期化し、仮想メモリ空​​間のアドレスを呼び出し元に返します。呼び出し元では、CDeceivedクラスの共有インスタンスにローカライズする必要があります。これが私がこれをどのように扱っているかです:


...しかし、ローカライズされたクラスポインタはリモートポインタを指していないようで、代わりに仮想テーブルにいくつかのNULLポインタを保持しているため、それらのいずれかを実行しようとするとアクセス違反が発生します。

OpenThreadToken、ImpersonateSelf、およびSetPrivilegeを介して、MFCアプリケーションに適切なデバッグ権限を正常に付与したことに注意してください。おそらく、クラスのアドレスをメモリにロックする必要がありますか?volatileキーワードは十分ではありませんか、またはここで誤って使用されていますか?DLLによって割り当てられたまったく同じポインタを取得するにはどうすればよいですか?

前もって感謝します!有効なアドバイスには賛成票が投じられます。

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

linux - Mono / UbuntuのReadProcessMemory Win32API?

私はしばらくの間 Windows でプログラミングをしており、今日友人と Ubuntu について話していましたが、この機能が存在するかどうかに興味があります。以前に使用していたので win32api にあることは知っていますが、Linux ではどこにあるのでしょうか?

ヘルパーはいますか?

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

function - 関数を介して値を渡す

VisualC ++でReadProcessMemoryとWriteProcessMemoryの独自の関数を作成しようとしているので、新しい関数呼び出しを作成するたびにすべての情報を入力し続ける必要はありません。このプロジェクトはWindowsフォームです。ここに問題があります

ゲームの値は500ですが、Read()から返される値は0です。何が間違っているのかわかりません。ボタンをクリックしてチェックボックスをオンにするたびに、Read()関数ですべてを定義する必要はありません。

ありがとう