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

VB.NET Discussion :

Lire la valeur d'une Address Memory [VB.NET] [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Par défaut Lire la valeur d'une Address Memory [VB.NET]
    Bonjour, je code un petit programme en VB.Net, mais je ne sais pas comment faire pour lire la valeur d'une Adress Memory spécifique d'un processus et de stocker celle-ci dans une variable (image ici). J'ai cherché partout sur google, j'ai trouvé pleins de chose, j'ai trouvé ce morceau de code:

    J'ai trouvé un bout de code avec ta recherche Google, j'y est mis ma propre adresse (celle-ci) à "ReadAddress = &H11936DE&", le problème c'est qu'il me trouve une erreur ici: "ReadProcessMemory(p(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)", il dit "'p' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.", je veux remplacer le "p" par mon processus, donc je pense comme ça " ReadProcessMemory("Processus.exe"(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)", sauf qu'il me dit "'Handle' n'est pas un membre de 'Char'.", je ne comprend pas trop comment faire pour mettre mon processus
    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
    Imports System.Runtime.InteropServices
     
    Public Class Form1
     
        Private Declare Function ReadProcessMemory Lib "kernel32" ( _
        ByVal hProcess As Integer, _
        ByVal lpBaseAddress As Integer, _
        ByRef lpBuffer As Long, _
        ByVal nSize As Integer, _
        ByRef lpNumberOfBytesWritten As Integer _
        ) As Integer
     
        Public Sub ReadAddress()
            Dim ReadAddress As Integer
            Dim AddressValue As Integer
            ReadAddress = &H11936DE&
     
            ReadProcessMemory(p(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)
            Label1.Text = AddressValue
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            ReadAddress()
     
        End Sub
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Il va falloir être plus clair sur ce que tu souhaites faire car en l'état "personnellement" ton problème je n'y comprends absolument rien !!!

    Merci.

    PS : Si qqun a compris merci d'éclaircir tout ça.....

    A+

  3. #3
    Membre habitué
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Par défaut
    Excuse-moi, je connais pas trop le vocabulaire approprié, je vais essayer de mieux détailler:
    Je veux lire la mémoire dans un processus, et y lire la valeur d'un offset ? ou une adresse ? spécifique (voir image citer en haut), cette valeur c'est soit 1 ou 0 , et la stocker dans une variable.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    google:direct memory access vb.net
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre habitué
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Par défaut
    Merci beaucoup, je regarderais ça plus tard, mais je crois bien que c'est ça !!

  6. #6
    Membre habitué
    Homme Profil pro
    Amateur
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Par défaut
    J'ai trouvé un bout de code avec ta recherche Google, j'y est mis ma propre adresse (celle-ci) à "ReadAddress = &H11936DE&", le problème c'est qu'il me trouve une erreur ici: "ReadProcessMemory(p(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)", il dit "'p' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.", je veux remplacer le "p" par mon processus, donc je pense comme ça " ReadProcessMemory("Processus.exe"(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)", sauf qu'il me dit "'Handle' n'est pas un membre de 'Char'.", je ne comprend pas trop comment faire pour mettre mon processus


    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
    Imports System.Runtime.InteropServices
     
    Public Class Form1
     
        Private Declare Function ReadProcessMemory Lib "kernel32" ( _
        ByVal hProcess As Integer, _
        ByVal lpBaseAddress As Integer, _
        ByRef lpBuffer As Long, _
        ByVal nSize As Integer, _
        ByRef lpNumberOfBytesWritten As Integer _
        ) As Integer
     
        Public Sub ReadAddress()
            Dim ReadAddress As Integer
            Dim AddressValue As Integer
            ReadAddress = &H11936DE&
     
            ReadProcessMemory(p(0).Handle.ToInt32, ReadAddress, AddressValue, 4, 0)
            Label1.Text = AddressValue
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            ReadAddress()
     
        End Sub
    Pouvez-vous m'aidez à comprend mes erreurs ?
    Merci.

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    si ca te demande un handle de processus, il faut donner un handle de processus, pas essayer d'écrire au hasard

    system.diagnostics.process.getprocesses te donne la liste des processus en cours
    trouve le bon (boucle) puis fait .handle dessus, ca doit exister je pense

    sinon dans un premier temps tu peux regarder dans le gestionaire des taches qui peut afficher les handle des processus, et le mettre en dur dans le code pour des tests
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire la valeur d'une adresse mémoire
    Par barhili04 dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 11/11/2009, 10h44
  2. Lire la valeur d'une propriété CSS par le Javascript
    Par boutmos dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 11/07/2008, 16h56
  3. lire la valeur d'une case(excel) sous vb2005
    Par CLion dans le forum VB.NET
    Réponses: 5
    Dernier message: 09/01/2008, 18h55
  4. Lire les valeur d'une requete (methode utiliser POSTE)
    Par Alghero dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/07/2007, 15h09
  5. lire la valeur d'une adresse mémoire
    Par ilimo dans le forum Windows
    Réponses: 17
    Dernier message: 11/04/2006, 15h21

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