begin process at 2010 02 10 14:26:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > MODIFIER UN PROCESSUS EN MÉMOIRE

MODIFIER UN PROCESSUS EN MÉMOIRE


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :readprocessmemory, processus, mémoire, modifier, process Niveau :Initié Date de création :12/04/2007 Date de mise à jour :12/04/2007 19:19:24 Vu :5 080

Auteur : lilxam

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Ce code permet d'accéder à un processus actif et de modifier son contenu grace aux APIs ReadProcessMemory et WriteProcessMemory.
Have Fun
lilxam

Source

  • #include <iostream>
  • #include <windows.h>
  • #pragma comment(lib, "ws2_32.lib")
  • using namespace std;
  • int main()
  • {
  • cout<<"\nReadProcessMemory\n\n\n";
  • STARTUPINFO StartupInfo; //Structure STARTUPINFO
  • memset(&StartupInfo, 0, sizeof(StartupInfo)); //On complète StartupInfo de 0
  • PROCESS_INFORMATION ProcessInfo; //Structure PROCESS_INFORMATION
  • memset(&ProcessInfo, 0, sizeof(ProcessInfo));
  • char memread[100];
  • char *cmdline;
  • int offset = 0x400000; //On prend un offset de départ
  • cmdline = GetCommandLine();
  • cout<<"Command Line : \n"<<cmdline<<"\n\n\n"; //Pour comprendre vous même l'utilitée de GetCommandLine()
  • CreateProcess("programme.exe", cmdline, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo); //On démarre le processus, notre programme
  • cout<<"\n\nMemory Read : \n";
  • while(ReadProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, memread, 1, NULL)) //On lit son conten
  • {
  • printf("%d", memread[0]);
  • offset ++; //On incrémente l'offset
  • if(memread[0] == 0x0) //On remplace les 0 par des 1, aucune utilitée, c'est juste pour l'exemple
  • {
  • WriteProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, "0x1", 1, NULL);
  • }
  • }
  • CloseHandle(ProcessInfo.hProcess);
  • CloseHandle(ProcessInfo.hThread);
  • system("pause");
  • return 0;
  • }
#include <iostream>
#include <windows.h>

#pragma comment(lib, "ws2_32.lib")
using namespace std;

int main()
{
    cout<<"\nReadProcessMemory\n\n\n";
    
    STARTUPINFO StartupInfo; //Structure STARTUPINFO
    memset(&StartupInfo, 0, sizeof(StartupInfo)); //On complète StartupInfo de 0
    
    PROCESS_INFORMATION ProcessInfo; //Structure PROCESS_INFORMATION
    memset(&ProcessInfo, 0, sizeof(ProcessInfo));
    
    char memread[100];
    char *cmdline;
    
    int offset = 0x400000; //On prend un offset de départ
    
    cmdline = GetCommandLine();    
    cout<<"Command Line : \n"<<cmdline<<"\n\n\n"; //Pour comprendre vous même l'utilitée de GetCommandLine()
    
    CreateProcess("programme.exe", cmdline, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo, &ProcessInfo); //On démarre le processus, notre programme
    cout<<"\n\nMemory Read : \n";
    while(ReadProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, memread, 1, NULL)) //On lit son conten
    {
    
        printf("%d", memread[0]);
        offset ++; //On incrémente l'offset
        if(memread[0] == 0x0) //On remplace les 0 par des 1, aucune utilitée, c'est juste pour l'exemple
        {
                      WriteProcessMemory(ProcessInfo.hProcess, (LPVOID) offset, "0x1", 1, NULL);

        }
    }
    
    CloseHandle(ProcessInfo.hProcess);
    CloseHandle(ProcessInfo.hThread);
    
    system("pause");
    return 0;
}



 Historique

12 avril 2007 19:19:24 :
Correction de l'orthographe.

 Sources du même auteur

MELODIE AVEC LES BEEPS DE L'UNITÉ CENTRALE
GESTION DE LE MÉMOIRE UTILISÉE PAR UN PROCESSUS

 Sources de la même categorie

Source avec Zip Source avec une capture CALENDRIER (WIN64) par BruNews
Source avec Zip Source avec une capture IMPRESSION EN WIN32 API AVEC OPTIONS par racpp
Source avec Zip Source avec une capture INFOTIP SHELL EXTENSION (BULLE DE L'EXPLORATEUR WINDOWS) (WI... par racpp
Source avec Zip Source avec une capture BROUILLAGE DES FICHIERS JAVASCRIPT ET CSS(WIN32) par gagah1
Source avec Zip Source avec une capture CHANGE CURSEUR par ganjarasta

 Sources en rapport avec celle ci

UNIX : LISTER LE NOMBRE DE PROCESSUS TOURNANT SUR LA MACHINE par jojo930
PROCESS DUMPER par lilxam7
GESTION DE LE MÉMOIRE UTILISÉE PAR UN PROCESSUS par lilxam
Source avec Zip SURVEILLER LA MÉMOIRE D'UN PROCESSUS par Arnotic
Source avec Zip TUEUR DE PROCESSUS par mpo007

Commentaires et avis

Commentaire de Ombitious_Developper le 13/04/2007 14:06:27

Salut:

c'est propre comme code, facile à le lire et le comprendre. (8/10)

J'ai une petite question:

Est ce qu'on choisit l'offset aléatoirement ou il y des contraintes?

Commentaire de Ombitious_Developper le 13/04/2007 14:10:23

Autres question:

Pourquoi ajouter la bibliothèque ws32_32.lib, si je ne me trompe pas c'est la bibliothèque pour WinSocket. Pourquoi faire?

Commentaire de lilxam le 13/04/2007 20:09:39

Salut et merci pour ton commentaire et t'as note :).
Pour t'as premiere question, ici j'ai pris un offset de départ arbitrairement puis je l'incrémente. Mais je ne sais pas encore comment faire pour trouver le point de départ du programme en question (Entry Point). Je mettrais à jour ce code si je trouve la solution.

Pour t'as deuxième question, tu confond la lib ws2_32 avec wsock32 étant effectivement la lib permettant l'utilisation des sockets. Celle-ci permet l'utilisation des APIs windows.

Commentaire de Ombitious_Developper le 13/04/2007 23:34:22

Salut:

Personnellement, (si je ne me trompe pas) je ne vois pas aucune fonction qui a besoin de cette lib.

Commentaire de nickydaquick le 15/04/2007 19:34:27

Salut
wsock32  Winsock
ws2_32   Winsock 2

Commentaire de max12 le 18/04/2007 08:55:34 administrateur CS

Sa peut être pratique pour cheater dans les jeux :P

Commentaire de skonsoft le 30/04/2007 17:24:49

salut y a t il quelqu'1 qui peut m'aider à realiser mon mini projet: Serveur FTP

Commentaire de mat1597530406950 le 14/08/2007 15:12:14

Alors pour cette source bravo, ca m'aide beaucoup ! sinon j'ai essayé avec un programme de modifié les 0 avec les 1 et avec un if, j'ais vus qu'il n'y arrive pas c'est ce que me renvoie la fonction et pour etre sur je re "read" ca ne change rien...
Merci :)

Commentaire de dj328i le 05/11/2007 22:57:39

max12

pour ca il y a deja un logiciel qui existe. "TSearch"

Tu peut recherché et modifier tout valeur dans un processus en cours d'utilisation.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

[C ou C++]écriture direct dans la mémoire d'un processus [ par supers03 ] Salut &#224; tousSuite &#224; la lecture des deux articles de Krust sur "comment cr&#233;er des cheats" (http://www.cppfrance.com/gma/tout/cheat) , j' File Mapping entre deux processus [ par vinvay ] Voilà, mon problème est que j'ai deux processus, un qui écrit dans la mémoire partagée et l'autre qui lit, et je voudrai que lorsque le processus qui PATCH DLL NT/9X [ par ouranos ] Bonjour à tous,J'ai réalisé un programme fonctionnant sous win NT/XP/2000 qui détourne des APIwindows afin de pouvoir contrôler le système (limitation temps d'exécution trop long [ par diable007 ] bonjour, j'ai une application parallèle en c++ et MPI,  j'ai une partie qui ne nécessite pas de communication avec mpi entre les processeurs.  En séqu Processus en cours d'execution? Psapi.lib et Psapi.h? `EnumProcesses@12` & `GetModuleBaseNameA@16` ? [ par wizard512 ] Bonjour, J'essaie en vain de compiler un petit bout de code me permettant de vérifier si telle ou telle processus et bien en cour d'execution. Mais j' ReadProcessMemory [ par ymca2003 ] Salut,J'essaye d'utiliser la fonction ReadProcessMemory pour lire le contenu de la mémoire d'un processus mais je n'y arrive pas.Lorsque j'appel cette processus [ par sebseb42 ] Bonjour,voila, j'utilise l'API Process Status (PSAPI) pour lister tout les process existant ainsi que leur modules...La seul information que j'arrive Gestionnaire de la mémoire [ par BabGirl ] Bonjour à tous !Pourriez-vous me guider pour créer un petit gestionnaire de la mémoire. Ce petit gestionnaire doit connaître les parties libres et occ Recherche d'adresse mémoire d'un DLL dans un processus [ par empathe ] Bonjour, je recherche une fonction pouvant me retourner l'adresse mémoire Hexa d'ou est stocké une DLL d'un processus. le code: [code=cpp] #include trouver le bon process ID!!! [ par anthraxx ] Je voudrais terminer un processus (avec TerminateProcess) dont je ne connais que le nom du fichier executable (mdm.exe par exemple), et le processus n


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales