私は、アドレスの意味とポインタを理解することに問題があります。 私はassault cubeで作業しているので、client.dllのアドレスを取得しています。この場合は "ac_client.exe"です。 このアドレスをベースアドレスに追加して、509b74として出てくるローカルプレーヤーポインタを取得します。 Example Image このポインタでは、localplayerを使用してF8のオフセットを追加します。このオフセットは私に健康状態を示します。 ご覧のとおり、0x509b74→000E1B188 ..... 「000E1B188」はどこから来たのですか?理解できません? それから000E1B188 + f8 = 00E1B280 どうなりますか?わかりません?!ポインタとアドレスとの混同[チートエンジン]
答えて
明確にするために、0x509b74は、アドレススペースレイヤーのランダム化が有効になっておらず、.exeが常に0x400000にロードされるため、Assault Cubeでうまく動作するハードコーディングされたアドレスです。また、ac_client.exeモジュールのアドレスを動的に取得し、ToolHelp32Snapshotを使用して相対オフセット0x109B74を追加することもできます。
この練習では、ポインタは単にアドレスを表す数値を含む変数です。ポインタをプログラミングして定義するときは、ポインタが指す変数のタイプを定義する必要があります。これは、コンパイラのためだけです。そのため、データ型の正しい命令と強力な型付きコンパイラエラーチェックを使用して、ポインタの末尾にある変数に適切にアクセスするコードを作成できます。
0x509b74は、動的ローカルプレーヤーオブジェクトを指すポインターであることがあります。別の言い方をすれば、動的プレーヤーオブジェクトポインタは0x509b74にあります。これは、動的に割り当てられるローカルプレーヤーオブジェクトのアドレスである0x00E1B188を指し示します。 0x509b74から0x00E1B188に到達することは、逆参照と呼ばれ、単にポインタに含まれるアドレスを読み取るだけです。
ポインタが参照解除されると、ローカルプレーヤーオブジェクトの "ベースアドレス"と呼ばれるアドレス0x00E1B188が表示されます。また、これがプレーヤーオブジェクトのオフセット0x0にあると考えてください。 0xF8を追加すると、プレーヤークラス内に存在するヘルス変数のアドレスである0x0E1B280が表示されます。この時点では単純な追加に過ぎません。
あなたがそれを学ぶと、実際には簡単です。それは基本的に、コード内でこのようになります。この例では、弾薬
struct player
{
int ammo;
int health;
}
player* localPlayerPtr = new player();
が0x0にオフセットされ、健康がオフセットされている0x4の仮定int値は4バイトです。 localPlayerPtrが0x509b74にあり、0x00E1B188にある新しいプレーヤーオブジェクトを指しているとします。オフセット0x0は弾薬です。オフセット0x4を追加すると、ヘルスアドレス0x00E1B18Cが得られます。
C++の観点からポインタとオブジェクト指向プログラミングを理解することで、リバースエンジニアリングポインタがはるかに簡単になり、そのことを磨き上げていくつかの練習アプリケーションを作成することができます。
- 1. 算術混同の配列とポインタ
- 2. ポインタと配列の混乱
- 3. ポインタとcoutのアドレス変数
- 4. ポインタのアドレスと逆参照
- 5. c/C++の構造体へのポインタとの混同
- 6. C#の構造体ポインタと同じアドレスが返される
- 7. は、リンクリストに「ポインタ」と「ポインタへのポインタ」の使用に混乱
- 8. プライマリキーとの混同
- 9. UIScrollViewとsetContentSizeとの混同
- 10. .serialize()と.serializeElements()との混同
- 11. シェルグローブワイルドカードとRegexとの混同
- 12. ポインタの配列との混乱
- 13. サブクラスのキャストとポインタのアドレスの変更
- 14. ポインタとchar配列の混乱
- 15. チートエンジン対Ollydbg
- 16. このポインタとメンバ関数のアドレス
- 17. ポインタの混乱へのポインタ
- 18. フォーマットと混同 - sqlite
- 19. ポインタの混乱
- 20. PKとFKテーブルデザインの混同
- 21. PHPとXMLの混同
- 22. パッケージとの混同.NoClassDefFoundError
- 23. mscordacwks.dllとmscorwks.dllの混同
- 24. SmartSVNとSVNバージョンの混同
- 25. WPF MVVMとの混同
- 26. isNaN()とparseInt()の混同
- 27. onStop()onStop()onResume()との混同
- 28. Binary_crossentropyとCategorical_crossentropyの混同
- 29. 作業アカウントとMicrosoftアカウントとの混同
- 30. コレクションとモデルの混同とbackbone.js