IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Parcourir les adresses mémoire d'un processus


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Parcourir les adresses mémoire d'un processus
    Bonjour à tous,

    Tout d'abord je tiens à préciser que, dans ce que je vais vous demander, je nage complètement. Je vous demanderai d'être indulgents si je n'utilise pas les termes adéquats ou que je parle de choses qui n'ont absolument aucun sens. Merci

    Donc voilà, je suis actuellement en stage de deuxième année en BTS SIO Développement, je suis chargé de créer un logiciel (WF ou Appli Console) en C# qui récupère des données dans un logiciel (implicitement ouvert) CadnaA de traitement acoustique. Les valeurs à récupérer sont traitées lors de l'ouverture des fichiers type (*.cna), ces fichiers ne sont donc pas utilisables sans être ouverts dans le logiciel (j'ai essayé de rechercher des données directement dans un fichier avec un éditeur hexa, et rien n'était exploitable).

    Nom : eg.Png
Affichages : 136
Taille : 1,8 Ko



    Je me suis donc penché sur la récupération de ces valeurs via le processus en cours. Via la classe Process, j'arrive à récupérer le PID du logiciel que j'ouvre avec Process.Start(). Mon problème, après plusieurs heures de recherches, (Import de la dll kernel, des méthodes OpenProcess/ReadProcessMemory...) c'est que je ne parviens pas à faire sortir quoi que ce soit (je vous l'ai dit, je nage complètement). A l'aide de Cheat Engine, je parviens à récupérer pas mal d'adresses mémoire et leur contenu, mais je ne sais pas comment exploiter cela depuis mon application... Beaucoup de topics sur le net ont l'air de se rapprocher de ce que je cherche, mais ils sont en anglais et les termes utilisés ne me sont pas très communs.

    Je suis même en train de me demander si, avant tout, ce que je cherche à faire est possible en C#.

    Si vous pouviez éclairer ma lanterne là-dessus, cela me serait d'une grande aide.

    Je n'ai pas vraiment de code à vous fournir, si ce n'est celui qui me permet d'ouvrir mon logiciel et de récupérer son PID.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    private void ouvrirFichier()
            {
                OpenFileDialog OFG = new OpenFileDialog();
                OFG.Filter = "Fichiers CadnaA (*.cna)|*.cna";
                OFG.FilterIndex = 2;
                OFG.RestoreDirectory = true;
     
                if (OFG.ShowDialog() == DialogResult.OK)
                {
                    fichier = OFG.FileName;
     
                    try
                    {
                        Process.Start(fichier);
                        foreach (Process P in Process.GetProcessesByName("cna32d"))
                        {
     
                            lesProcessus.Add(P.Id.ToString());
                            foreach (String S in lesProcessus)
                            {
                                MessageBox.Show(S);
                            }
     
     
                        }
                        {
     
                        }
     
                    }
                    catch
                    {
                        MessageBox.Show("Le processus n'a pas réussi à démarrer.");
                    }
                }
            }
    En vous remerciant d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Process.StartInfo.UseShellExecute = True;
    Process.Start(fichier);
    // Qu'est-ce qu'il y a dans Process.StandardOutput ?
    "Hope for the best, but prepare for the worst."

Discussions similaires

  1. Récupérer adresse de base mémoire d'un processus
    Par Legarsdelouest dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/10/2015, 12h37
  2. Variable et leur adresse mémoire, comment les utiliser ?
    Par snoopy69 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/02/2009, 12h00
  3. Les adresses mémoire !
    Par ..::snake::.. dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 11/06/2007, 01h18
  4. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo