2017-03-05 5 views
0

私は複数のプログラムでDLL注入を行ってきましたが、これは私に挑戦しています。何度も試してみても、私が必要とする値に静的オフセットのリストを見つけることはできません。さらに、値が量的に変化する可能性があるため、すべての関数に直接アクセスする方が効率的です。関数がC++でどのアドレスにアクセスするかを調べる方法は?

チートエンジンでは、これらのアドレスに直接書き込む関数のアドレスを見つけることができました。私は "この関数がアクセスするアドレスを調べる"オプションを使用し、必要なすべてのアドレスを見つけました。しかし、私はC++でこれをプログラムで実行する必要があり、どこから始めるべきか分かりません。そして私はその話題に関するGoogleの検索結果を見つけることができなかった。

情報は非常に高く評価されます!

更新:関数が便利な場合には、関数が一度に1つずつアクセスします。同じ呼び出しで複数ではありません。

編集:オペコードはmov [esi],ebxebxでコピー先はどこですか、esiはコピー先です。だから私はesiの値がわかる必要があります。うまくいけば、これは私の質問の幅を広げるのに役立ちます。

+0

これがいかに広すぎるかわからない。私は特定の質問をしました。どのように関数がプログラムでアクセスしているかを調べる方法。スマートなアレルではないが、誰かが私を啓発することができますか? –

+0

この場合のように、「あまりにも広い」近い理由は、しばしば使用されます。これを行う簡単な方法はありません。 –

+0

@HarryJohnstonああ、大丈夫です。私は理解してくれて、ありがとう。 –

答えて

1

逆アセンブルを起動して、すべてmov edimov esileaとその他のメモリアクセス指示文を関数内でトレースすることができます。また、coffを使用してdllからこの情報を取得することもできます。実行中にアドレスが変化している場合は、デバッガとCPUビューを使用してください。 コールスタックとレジスタの状態にアクセスする必要があるという戦略です。これは私がウェブで見つけたかもしれない多分これはあなたを助けるでしょう https://www.gironsec.com/blog/2013/12/writing-your-own-debugger-windows-in-c/

関連する問題