Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - una domanda
Forum - C/C++ - una domanda

Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:48
Domenica, 22/03/2015
Ragazzi scusate la mia poca esperienza nel linguaggio c++

Volevo chiedere cosa fa esattamente questa righa?

  static RPG::SceneMenu *&menu = (**reinterpret_cast<RPG::SceneMenu ***>(0x4CDC60));

Vedo anche un doppio e triplo.puntatore

Ultima modifica effettuata da Thejuster il 22/03/2015 alle 20:50


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:07
Domenica, 22/03/2015
Assegna a menu un riferimento all'indirizzo 0x4CDC60 (specificando che ci si aspetta di trovare un tipo RPG::SceneMenu).

Mi sfugge il motivo di tale decisione... forse qualcuno più esperto può chiarire.


Il mio blog: https://piero.dev
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:03
Lunedì, 23/03/2015
L'hai preso da qui

http://rewtone.com/dynrpg/_scene_menu_8h_source.html

Presumo che sia un tool/plugin che permette di accedere ad un menu di un gioco sapendo dove sta in memoria quando questo viene eseguito.

Ovviamente può non valere più in seguito ad un semplice aggiornamento del gioco stesso.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:36
Lunedì, 23/03/2015
Si in pratica è plugin da allegare a dei giochi rilasciati tramite un Engine.
Che permette di manipolare le scene di gioco.

Chiedevo come fà a sapere l'indirizzo di memoria di ogni scena?

ho provato a vedere tramite disassembler ma ci ho capito ben poco.

esempio vedo in una parte del codice:

Codice sorgente - presumibilmente C/C++

  1. asm volatile("call *%%esi" : : "S" (0x4C712C), "a" (0x4C605C), "d" (n) : "cc", "memory"); // welp



Volevo capire come ha fatto il tizio a risalire a quell'indirizzo di memoria.
o magari come fà a sapere come modificarlo.

Magari sono argomenti un pò troppo difficili per il mio livello attuale di conoscenza.
Visto che sono orientato nel sviluppare giochi e non a manomettere la memoria.

Ma è pura curiosità.
Mi sono chiesto come ha fatto?


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 18:35
Martedì, 24/03/2015
Sulla documentazione c'e' scritto che funziona solo usando GCC... suppongo anche una certa versione di GCC, altrimenti non saprei come abbia fatto a tirar fuori quei magic numbers

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:39
Martedì, 24/03/2015
Basta eseguire il gioco con un debugger ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote