Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modification de valeur d'un process

Sujet résolu
    13 août 2008 à 11:56:35

    Ben déjà bonjour^^

    Voila ==> Je cherche un code qui permet de modifier la valeur de l'application XXXXXXX.exe (exemple) à l'adresse 0154319C.
    Comment on faiiiiit?

    • Partager sur Facebook
    • Partager sur Twitter
      13 août 2008 à 12:10:18

      quelle est l'utilité de cela ?
      en fonction de l'endroit ou sera chargé l'exe (qui ne sera pas le meme a chaque fois), l'adresse absolue des données changera. L'adresse relative ne changera pas par contre.
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        13 août 2008 à 12:17:06

        L'adresse 0154319C ne change jamais, même si j'éteins le PC
        • Partager sur Facebook
        • Partager sur Twitter
          13 août 2008 à 14:42:22

          Si ce que tu veu faire, c'est modifier le binaire simplement, tu utilise un editeur hexadecimal.

          si par contre ce que tu veux (dis moi si je me trompe) c'est modifier dynamiquement (pendant que le programme tourne) une valeur à une adresse mémoire donnée?
          tu peux soit utiliser des programmes de type cheatengine, TSearch...

          ou (méthode longue) utiliser la bibliothèque <tlhelp32.h>
          et utiliser un code du genre:
          bool CMemoryReader::openProcess( const std::wstring &name ){
          	HANDLE hToken;
          
          
          	OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken );
          	TOKEN_PRIVILEGES tp = { 0 }; 
          	LUID luid; 
          	DWORD cb = sizeof(TOKEN_PRIVILEGES); 
          	if( !LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &luid ) ) return FALSE; 
          
          	tp.PrivilegeCount = 1; 
          	tp.Privileges[0].Luid = luid; 
          	tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
          
          	AdjustTokenPrivileges( hToken, FALSE, &tp, cb, NULL, NULL );
          	_error();
          	CloseHandle(hToken);
          
          	this->name = name;
          	HWND wnd = FindWindowW(NULL, (LPCWSTR)name.c_str() );
          	_error();
          	if( !wnd ) return false;
          
          	DWORD thread = GetWindowThreadProcessId( wnd, &this->pid );
          	_error();
          
          	gHandle = OpenProcess(PROCESS_ALL_ACCESS, false, this->pid);
          	_error();
          
          	return true;
          }
          
          bool CMemoryReader::_char(const DWORD &addr, char * v, SIZE_T * r)
          { return read(addr,v,sizeof(char),r); }
          
          bool CMemoryReader::read(const DWORD &addr, void * value, const DWORD &size_, SIZE_T * total)
          {
          	if( this->gHandle == INVALID_HANDLE_VALUE ) return false;
          	BOOL ok = false;
          	ok = ReadProcessMemory(this->gHandle, (LPCVOID)addr, value, size_, total);
          	_error();
          	return ok;
          }
          


          enfin recherche les méthodes de lecture de fichier via TLS

          mais je te cache pas que pour un débutant, c'est pas forcément ce qu'il y a de plus facile.
          Tu dois aussi pouvoir utliliser une injection de code/DLL mais c'est pas non plus facile.


          [edit] le code précedent est un extrait de mon lecteur de mémoire que j'utilisais quand je voulais lire les données en dehors du processus de wow.exe, il permet par exemple de lire les données en mémoires comme hp, mana, résistances...

          pour plus d'infos:
          http://msdn.microsoft.com/en-us/library/ms686749.aspx
          http://en.wikipedia.org/wiki/Thread-local_storage


          [edit2]

          Citation : Fvirtman


          quelle est l'utilité de cela ?


          cela peut servir à modifier des variables chargées en mémoire => application trainer pour des jeux par exemples ou dans le cas d'injection de code (via DLL ou non de rajouter des fonctions à une application existante, l'améliorer
          • Partager sur Facebook
          • Partager sur Twitter

          Modification de valeur d'un process

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown