Résolu Rechercher l'offset d'une valeur (tool RTE XRPC)

INickoI

Membre
Inscription
22 Avril 2013
Messages
156
Réactions
58
Points
5 256
Salut,

Je cherche un moyen de rechercher une valeur (par exemple 0x9C762726) et que ça me retourne l'offset/adresse de la première occurrence comme le fait le logiciel Peek Poker :

J'ai trouvé un bout de code que j'ai essayé d'adapter mais le résultat qu'il me sort c'est "4" au lieu de l'offset/adresse :

Code:
       private void Auto_Click(object sender, EventArgs e)
        {
            uint num;
            jtag.xbCon.DebugTarget.GetMemory(0xCCF90000, 0x40000, new byte[] { 0x9C, 0x76, 0x27, 0x26 }, out num); // Je souhaite chercher à partir de l'adresse CCF90000 jusqu'à CCFD0000, la valeur 0x9C762726
            jtag.xbCon.DebugTarget.InvalidateMemoryCache(true, 0xCCF90000, 0x40000); // Aucune idée de l'utilité de cette ligne
            MessageBox.Show("test :" + num); Il me sort comme message "test :4"
            //jtag.SetMemory(0x843687B4, Encoding.ASCII.GetBytes(textBox1.Text + "\0"));
        }

Exemple d'une recherche sur Peek Poker :

upload_2016-5-5_17-59-5.png


Problème au niveau de jtag.xbCon.DebugTarget.GetMemory ?
Quelqu'un peut m’aider ?

Merci.
 
D

deleted585952

Salut,

Je cherche un moyen de rechercher une valeur (par exemple 0x9C762726) et que ça me retourne l'offset/adresse de la première occurrence comme le fait le logiciel Peek Poker :

J'ai trouvé un bout de code que j'ai essayé d'adapter mais le résultat qu'il me sort c'est "4" au lieu de l'offset/adresse :

Code:
       private void Auto_Click(object sender, EventArgs e)
        {
            uint num;
            jtag.xbCon.DebugTarget.GetMemory(0xCCF90000, 0x40000, new byte[] { 0x9C, 0x76, 0x27, 0x26 }, out num); // Je souhaite chercher à partir de l'adresse CCF90000 jusqu'à CCFD0000, la valeur 0x9C762726
            jtag.xbCon.DebugTarget.InvalidateMemoryCache(true, 0xCCF90000, 0x40000); // Aucune idée de l'utilité de cette ligne
            MessageBox.Show("test :" + num); Il me sort comme message "test :4"
            //jtag.SetMemory(0x843687B4, Encoding.ASCII.GetBytes(textBox1.Text + "\0"));
        }

Exemple d'une recherche sur Peek Poker :

Voir la pièce jointe 88519

Problème au niveau de jtag.xbCon.DebugTarget.GetMemory ?
Quelqu'un peut m’aider ?

Merci.
normal qu'il te sorte 4 il te sort la taille de la valeur ^^ tu a du te faild ans le code ;)
 

LuNaTiC93

Membre
Inscription
8 Février 2014
Messages
1 355
Réactions
984
Points
7 626
Le mieux c'est que tu alloues un buffer d'une certaine taille, tu fais un getmemory et tu place les données en question dans le buffer.
Après tu peux utiliser la fonction memcmp par contre je sais pas si elle existe en C# mais elle doit bien avoir un équivalent dans ce cas et tu te déplace de 1 byte par 1 byte dans le buffer avec une boucle
 

INickoI

Membre
Inscription
22 Avril 2013
Messages
156
Réactions
58
Points
5 256
Merci pour vos réponses,

C'est trop casse tête pour moi du coup j'ai plutôt choisi de mettre un simple textbox comme input (je fais la recherche avant avec l'autre logiciel pour copier l’offset et basta). :crazy:
 

XeTechzZ

Premium
Inscription
8 Août 2013
Messages
1 792
Réactions
1 026
Points
16 231
Salut,

Je cherche un moyen de rechercher une valeur (par exemple 0x9C762726) et que ça me retourne l'offset/adresse de la première occurrence comme le fait le logiciel Peek Poker :

J'ai trouvé un bout de code que j'ai essayé d'adapter mais le résultat qu'il me sort c'est "4" au lieu de l'offset/adresse :

Code:
       private void Auto_Click(object sender, EventArgs e)
        {
            uint num;
            jtag.xbCon.DebugTarget.GetMemory(0xCCF90000, 0x40000, new byte[] { 0x9C, 0x76, 0x27, 0x26 }, out num); // Je souhaite chercher à partir de l'adresse CCF90000 jusqu'à CCFD0000, la valeur 0x9C762726
            jtag.xbCon.DebugTarget.InvalidateMemoryCache(true, 0xCCF90000, 0x40000); // Aucune idée de l'utilité de cette ligne
            MessageBox.Show("test :" + num); Il me sort comme message "test :4"
            //jtag.SetMemory(0x843687B4, Encoding.ASCII.GetBytes(textBox1.Text + "\0"));
        }

Exemple d'une recherche sur Peek Poker :

Voir la pièce jointe 88519

Problème au niveau de jtag.xbCon.DebugTarget.GetMemory ?
Quelqu'un peut m’aider ?

Merci.
Vraiment simple à faire...

Code:
byte[] Memory = Jtag.GetMemory(0xCCF90000, 0x40000);
for ( int i = 0; i < 0x40000; i++)
{
    if ( Memory[i] == 0x9C && Memory[i + 1] == 0x76 && Memory[i + 2] == 0x27 && Memory[i + 3] == 0x26)
      {
          int adresse = 0xCCF90000 + i;
          MessageBox.Show("Offset :" + adresse.ToString());
      }
}
 
Haut