私は別のプロセスに接続し、この他のプロセスからメモリなどを読み込んでいるC#でプログラムを書いています。私はこの他のプロセスでマウスの動きをシミュレートする方法を探していますが、他のプロセスはPostMessage、SendMessageなどのメソッドをブロックします。私は注射やメモリの書き込みから離れようとしているので、このため。私は仮想マウスドライバを作成し、それを他のプロセスにフックするのが最善の方法だと言われてきました。私はこれを行うことができる他の方法は誰か、または私はどのように仮想マウスドライバをフックに行くだろうか?背景マウスのシミュレーション
答えて
自動ホットキーのような別のプログラムを使用して、マウスを動かすことができますか?それは私のやることなんだから。
私はC#でマウスを動かすことができました。私は他のマウスで何か他のことをすることができる間に、私は背景のウィンドウにそれを行うことができる必要があります。 –
どのプログラムをターゲットにしているのかよく分かりませんが、PostMessageをブロックするゲーム(クールな回避策、pは無名になるゲーム)のクールな回避策を見てきました。
仮想マウスドライバのフックが機能するかどうかわかりません。私は前にアプローチを聞いたことがあるが、PostMessageがブロックされていれば、それは無駄だろうという気持ちがある。とにかく、マウスドライバは標準的なウィンドウメッセージを使ってゲームウィンドウにメッセージを送信しませんか?
私は開発者がPostMessage/SendMessageをブロックするのによく見られる方法は、システムDLLからWindows DLLをコピーしてゲームに配布することです(これは正当なのだろうか?)。 DLLはゲームのアドレス空間にローカルな関数をロードするので、ゲームは呼び出し元がゲームのアドレス空間に対してもローカルであることを保証することによって、他のプロセスがそれらの関数にアクセスするのをブロックすることができます。
これを回避する簡単な方法は、DLLをゲームのプロセスに挿入して、その機能にフックすることです。しかし、開発者はこのアプローチには敏感であり、関数のエントリポイントで特定のチェックを実行することで呼び出しをブロックすることができます(これらのチェックが何であるか分かりません)。私が理解していることから、簡単な方法は、PostMessage関数の最初の数バイトを自分で定義し、PostMessage内のチェックの後にポイントにジャンプすることです。
私が議論していることは非常に具体的でトピックは非常に深く、常に変化しており、スタックオーバーフローでは本当に人々をターゲットにしていないため、私はこれ以上説明したくありません。
私が言いましたこれらのことのすべては、さまざまなゲームのハッキングフォーラムをサーフィンして得た基本的なアイデアです。これらは、この種の質問を探す場所です。ゲームのハッキングコミュニティは情報がきついですが、十分な時間が経過してから誰もが自分のアプローチを共有しようとしています:)
非常に便利な投稿です。私はこれがここの人々に向けられたものではないと考えていますが、誰かがほとんどの人よりもはるかに多くを知っているので、私がここに投稿するよう提案しています。私はこれが別の解決策が必要な非常に複雑な作業だと感じています。 –
私はWindows APIイベントをフックするのではなく、マウスとキーボードの入力を直接ドライバから直接読み取る「保護」をすでに使いこなしていると確信しています。仮想マウス/キーボードドライバを実装すると効果があります。まあ、私はしようとしたが、非常に低いレベルに行くと混乱とサポートの欠如にうんざりしていた。 –
SCAR(RuneScapeマクロプログラム)を開発するには、最終的に開発者はJavaファイル(SMARTと呼ばれています)、このラッパー内部に「擬似マウス」を持っています。基本的な関数呼び出しを使用して制御できます。私はC#でこれを行う方法はわかりませんが、Javaでは可能です。 SMARTの前に、マウスを使用する(マウスを直接動かす)か、 "サイレントマウス"と呼ばれるものを使用する必要がありました。サイレントマウスは、Kaiが説明したように、java.exeとそのJVMと制御されたマウス入力の機能に夢中になりました。しかし、カイも述べたように、これは非常に簡単に検出できたので、誰もそれを使用していませんでした。
ちょうどWoWの次のレベルを作ることができませんね? –