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

C++ Discussion :

[Error] cannot convert 'DWORD* {aka long unsigned int*}' to 'SIZE_T* {aka long long u


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2020
    Messages : 51
    Par défaut [Error] cannot convert 'DWORD* {aka long unsigned int*}' to 'SIZE_T* {aka long long u
    Bonjour, j'ai le message suivant sur la dernière ligne de mon code :
    [Error] cannot convert 'DWORD* {aka long unsigned int*}' to 'SIZE_T* {aka long long unsigned int*}' for argument '5' to 'WINBOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*)'
    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
    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <ctime>
     
    #ifdef __MINGW32__
    #include <windows.h>
    #endif
     
    using namespace std;
    int main(){
     
        DWORD Target = 0x7FF6897C8B68;
        DWORD bytes;
        BYTE exampleBytes[77] = { 0x82, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
     
        HWND hWnd;
        while( !( hWnd = FindWindow( NULL, "Teste changement parametres match" ) ) )
            Sleep( 100 );
     
        DWORD PID;
        while( !( GetWindowThreadProcessId( hWnd, &PID ) ) )
            Sleep( 100 );
     
        HANDLE hProcess;
        while( !( hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, 0, PID ) ) )
            Sleep( 100 );
     
        WriteProcessMemory( hProcess, (PVOID)Target, exampleBytes, 77, &bytes );
     
    system("pause");
    return 0;
    }

    J'ai oublié quelque chose ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Il semblerait que ton exemple a été prévu pour du 32 bits et que tu es en 64 bits.
    Remplace la ligne 14 par :

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2020
    Messages : 51
    Par défaut
    Merci pour ton aide, à la ligne 29 j'ai cette erreur :
    [Warning] cast to pointer from integer of different size [-Wint-to-pointer-cast]
    Y a autre chose à mettre ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Ça me parait plus grave, ça me fait penser à une erreur en C pas en C++ et je n'arrive pas à relier cette erreur à la ligne 29 que tu indiques.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2020
    Messages : 51
    Par défaut WriteProcessMemory 64 bits and 32 bits
    Bonjour, avec le code suivant :


    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
    #include <iostream>
    #include <string>
    #include <cstdlib>
    #include <ctime>
    #ifdef __MINGW32__
    #include <windows.h>
    #endif
     
    using namespace std;
    int main(){
        DWORD Target = 0x22ACBA164D0;
        SIZE_T  bytes = 0;
        BYTE exampleBytes[5] = { 0x8B,0xFF,0x55,0x8B,0xEC };
     
        HWND hWnd;
        while( !( hWnd = FindWindow( NULL, "Calculatrice" ) ) )
            Sleep( 100 );
     
        DWORD PID;
        while( !( GetWindowThreadProcessId( hWnd, &PID ) ) )
            Sleep( 100 );
     
     
        HANDLE hProcess;
        while( !( hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, 0, PID ) ) )
            Sleep( 100 );
     
        WriteProcessMemory( hProcess, (PVOID)Target, exampleBytes, 5, &bytes );
    system("pause");
    return 0;
    }
    en 64 bits j'ai le message suivant:
    [Warning] large integer implicitly truncated to unsigned type [-Woverflow] ( DWORD Target = 0x22ACBA164D0;)
    [Warning] cast to pointer from integer of different size [-Wint-to-pointer-cast] (WriteProcessMemory( hProcess, (PVOID)Target, exampleBytes, 5, &bytes );)
    In 32 bits j'ai le message suivant:
    [Warning] large integer implicitly truncated to unsigned type [-Woverflow] ( DWORD Target = 0x22ACBA164D0;)
    Et il y a aucune modification sur la valeur de l'adresse.
    Il faut rajouter quelque chose ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Il y a deux trucs, parce qu'on ne sait pas sur quel paramètre l'erreur porte

    Le paramètre 5 lpNumberOfBytesWritten est optionnel
    WriteProcessMemory(hProcess, (PVOID) Target, exampleBytes, 5, NULL), et si tu as encore l'erreur, cela veut dire que, à 90%, l'erreur est sur le paramètre 4 nSize 5

    WriteProcessMemory(hProcess, (PVOID) Target, sizeof(exampleBytes), NULL), mais à faire dans la même fonction, le même fichier où se trouve ton tableau exampleBytes.
    Ou alors WriteProcessMemory(hProcess, (PVOID) Target, (SIZE_T) 5, NULL)
    Enfin éventuellement WriteProcessMemory(hProcess, (PVOID) Target, (SIZE_T) sizeof(exampleBytes), NULL) en mode ceinture - bretelles.

    Et après tu reviens

Discussions similaires

  1. Cannot convert type 'System.Guid' to 'int'
    Par gdespresreiller dans le forum ASP.NET
    Réponses: 0
    Dernier message: 29/05/2015, 17h12
  2. Réponses: 5
    Dernier message: 03/03/2013, 18h37
  3. Réponses: 5
    Dernier message: 21/12/2010, 21h47
  4. Type mismatch: cannot convert from Integer to int
    Par littleb dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 16/10/2006, 22h35
  5. [error] cannot convert parmater
    Par shirya dans le forum C++
    Réponses: 3
    Dernier message: 16/12/2005, 19h45

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