Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

Langages .NET

Démarré par Momo94 à 07-04-2008 23:43. Le sujet a 0 réponse(s).

Print Search
Sort Posts:    
   07-04-2008, 23:43
Momo94 n'est pas en ligne. Dernière activité : 04/07/2008 20:26:13 Momo94

Non Noté
Rejoint : 07-04-2008
Messages : 1
Les conseils d'un EXPERT en VB.NET: Adresses Mémoires.
Reply Quote
Bonjour,

Je suis sur le développement d'une application complexe en Visual Basic .NET et je bloque sur un point précis après plusieurs jours de recherche intensives:
"les adresses mémoires"

Avec les API ReadProcessMemory et WriteProcessMemory, il est formidablement possible de lire et de modifier la valeur d'une adresse mémoire connue.
Par contre, comment faire pour rechercher une valeur dans l'ensemble des adresses mémoires d'un processus particulier ? Comment faire pour lister rapidement uniquement les adresses mémoires de ce processus ?

J'ai moi même trouvé une solution insufisante car trop barbare:
Il s'agit de faire une boucle gigantesque de l'ensemble des adresses mémoire pour dresser le tableau des adresses mémoires contenant une valeure particulière:

Dim valeuratrouver as long = 45000

...

For i As Long = 1 To 250000000
               ReadProcessMemory(current_proc_handle, i, current_out, 4, 0)
               If current_out = valeuratrouver Then
                          on ajoute la valeur a notre tableau, etc
                          ...
               End if
End for

...

Cette technique fonctionne parfaitement, mais elle peut mettre jusqu'a 5Heures pour ce type de traitement. ( Testée :d )

Voila donc ma série de question:
- Est-il possible de récupérer la plage d'adresses mémoire utilisé par un programme ?
( afin de réduire la boucle, et le temps de traitement )
- Est-il possible d'obtenir la mémoire utilisé par un programme, et si oui du quel Ko à quel Ko.
( ca pourrait peut être nous aider à dimuer la boucle )
- Est-il possible de une fonction plus rapide, par exemple qui teste avant le "ReadProcessMemory", le type de variable renvoyé pour gagner du temps. ( Integer, Long, Stingle, Double... )

Vous l'aurez compris le but de la manoeuvre est de trouver une solution alternative qui liste les adresses mémoires utilisés par un programme rapidement ou qui renvoie les plages d'adresse utilisées.

Merci infiniment à l'expert ( bah oui c'est du haut niveau la lol ) qui se penchera sur la question.

++

Adresse IP : Connecté   Rapport 
Labo-dotnet » Programmation .... » Langages .NET » Les conseils d'un EXPERT en VB.NET: Adresses Mémoires.

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée