問題タブ [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.
c# - byte[] 配列を IntPtr に変換するには?
重複の可能性:
C# で byte[] から IntPtr を取得する方法
私はメモリから文字列を読んでいます
そして、この配列を文字列に変換しています。
プログラムのメモリ内のアドレス 003A53D4 の下に、文字列を指すポインターがあるため、問題が発生しました。文字列のアドレスを取得するにはどうすればよいですか? ありがとう :)
それは私が試したことです:
それは言います(約4行目):
値を null にすることはできません。パラメータ名: 宛先
new IntPtr() を new IntPtr(1)に変更 すると、
保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。
c++ - プロセスのベースアドレスを取得する
マインスイーパからタイマー値を読み取るプログラムを作成しようとしています。(OSはwindows7 64bit)
チート エンジンを使用して変数のベース アドレスを見つけましたが、マインスイーパを実行するたびに変化します。
ベースアドレスを自動的に見つけるにはどうすればよいですか?
実行可能なベースアドレスと関係がありますか?
これが私のコードです:
c++ - プロセスの読み取りプロセスメモリがすべてを返すわけではありません
サードパーティアプリケーションのメモリをスキャンしようとしています。私はすでに住所を知っています。現在はにあり0x0643FB78
ます。LPMODULEENTRY32->modBaseAddr
問題は、であり0x00400000
、LPMODULEENTRY32->modBaseSize
単にであるため、そこに到達することはできません0x006FF000
。したがって、このモジュールでスキャンできる最大アドレスはです0x00AFF000
。
それは、私が探しているアドレスが別のプロセス/モジュール/スレッド/何かの中にあることを意味しますか?私が持っているプロセスにはアドレスが含まれていると確信しています。では、どのようにメモリにアクセスする必要がありますか?ありがとうございました。
c# - プロセスメモリを文字列に読み込む
プロセスと読み取りたいアドレスについてはすべて知っていますが、Readprocessmemory 関数の使用方法がわかりません。いくつかの使用法などを追加する必要がありますか? これを C++ で作成しましたが、C# でどのように行うことができますか?
.net - 外部アプリケーションでメモリ アドレスの範囲をリッスンし、ReadProcessMemory で結果をエコーする方法
読んでくれてありがとう、
ReadProcessMemory API について少し独学するために、プレイしているオンライン ゲームをいじっています。
ゲーム内のチャット ルームを取得して、アプリケーションに表示しようとしています。アプリケーションを使用して、必要なデータのメモリ アドレスを検索して見つけることができましたが、いくつかの問題に遭遇しました。
プロセスのメモリから読み取るために使用しているコードは次のとおりです。
ここに示す MemoryReader クラスを使用するもの: http://www.vbforums.com/showthread.php?p=3819578
このコードを使用すると、毎回チャットの 1 行を取得できます。ここに私の質問があります。
- データは (006E3218-006E6B46) からの多くのアドレスに分散しています。この範囲からすべてのデータを取得する最良の方法は何ですか?
これを読んでくれてありがとう!
うまくいけば、
スティーブ
linux - Unix(または少なくともLinux)でメモリを安全に読み取るにはどうすればよいですか?
1バイトのメモリを読み取りたいのですが、メモリが本当に読み取り可能かどうかわかりません。OS Xではvm_read関数を使用して、WindowsではReadProcessMemoryまたは_ try/ _catchを使用して実行できます。Linuxでは、ptraceを使用できると思いますが、まだデバッグされていない場合に限ります。
参考までに、これを実行したい理由は、例外ハンドラプログラムの状態ダンプコードを記述しているためです。ユーザーがさまざまなメモリ値を確認できる場合、またはそれらが無効であるかどうかを知ることができる場合、ユーザーは非常に役立ちます。
c++ - WINAPIReadProcessMemoryは常に同じアドレス
WINAPI関数を使用してプロセス(アドレス:0x58F03C)からいくつかのデータを読み取りましたReadProcessMemory
:
プロセスを再開するたびにアドレスが変わるので、常に同じアドレスを取得する方法があるのだろうかと思いました。それができる「トレーナープログラム」がたくさんあるので、あるに違いありません。読み取り/書き込みに適したアドレス値をどのように取得しますか?
現在、で値をスキャンして取得し、CheatEngine
変更された値を次のスキャンで実行しています。
ありがとう。
.net - Marshal.Copy vs ReadProcessMemory / WriteProcessMemory win32 api - 同じプロセスで
ReadProcessMemory
Windows .NET (C#/VB.net) アプリケーションで/ WriteProcessMemory
overを使用Marshal.Copy
してアプリケーションのプロセスのメモリ (他のプロセスのメモリではなく) から読み書きすることの主な違い、長所と短所を誰かが概説できるかどうか疑問に思っています。プロセス)。特に、プロセスのメモリ内の任意のアドレスを含む操作と、メモリ ブロックをバイト配列として扱う操作 (つまり、生データの読み取り/書き込み) の場合。
/が機能Marshal.Copy
するすべての場合に機能しますか、それともより制限されていますか?ReadProcessMemory
WriteProcessMemory
Marshal.Copy
の実装はReadProcessMemory
/ WriteProcessMemory
API を内部的に使用していますか?
明確にするために:私は、他のプロセスのメモリではなく、呼び出し(所有)プロセスのメモリからの読み取り/書き込みについてのみ話しています!
ありがとう。
vb.net - タイプ「Byteの1次元配列」の値は整数に変換できません。何かアイデアはありますか?
以前は、次のコードを使用してポインターとオフセットからメモリ アドレスを読み取ったことがありますが、再び使用するようになり、前回どのように機能させたのかわかりません。エラー「valueタイプ「Byte の 1 次元配列」は整数に変換できません」というメッセージが表示され、ReadProcessMemory 呼び出しの BytesAtAddress 変数が強調表示されます。
私はこれに約25分間立ち往生していますが、それは簡単だと確信しているので、誰が何が悪いのか指摘してもらえますか.
ありがとう!
c# - 関数パラメーターの互換性のための int および string 型の操作
私はreadprocessmemory
クラスを使用しており、マルチレベル ポインターを読み取り、label2.text の最終アドレスに整数を表示するために動作するようになりました。
これは、ベースアドレスを指定する場所で機能します (以下では「0x40000」として示されています)。
ベースアドレス「40000」を指定する代わりに、関数を使用してプロセスのベースアドレスを「見つけ」、それを変数に格納し、代わりにそれをパラメーターとして渡したいと思いました。これは最初の部分を行います:
残念ながら、"Trainer.ReadPointerInteger"
関数には "0x40000" の形式の baseaddress パラメータが必要です。だから私はこれをしました:
ここで、変数を2番目のパラメーターに渡したいと思い、ReadPointerInteger's
これを試しました:
これは機能するはずですが、問題 (エラー) は、「Trainer」関数の 2 番目のパラメーターが Int であることです。 Int としての文字。とにかく、私はここで立ち往生しており、誰かが Int/String 問題を回避する方法を指摘できるのだろうか?
参考までに、ReadPointerInteger
クラスは次のとおりです。