GetModuleBaseAddress C++ To VB 6

Résolu
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 - 25 mars 2008 à 20:40
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 - 5 avril 2008 à 13:52
Bonjours, Ca fait déjà un bout de temps que je me demandait
si la fonction ci-dessous peut être convertie en VB. Je serrai très intéressée
à le faire si cela est possible, je post pas ici non plus pour me faire servir
sur un plateau la conversion donc si peut être vous auriez quelques trucs,
astuces pour m'aider sa s'errai simpa... Je n’aime pas trop me servir des
autres mais j’aurai virement voulu qu’on m’aide…



--------
la fonction en C++
--------

DWORD GetModuleBaseAddress(DWORD iProcId, char* DLLName)
{
  HANDLE hSnap;
  MODULEENTRY32 xModule;
  hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, iProcId);
  xModule.dwSize = sizeof(MODULEENTRY32);
  if (Module32First(hSnap, &xModule))
  {
    while (Module32Next(hSnap, &xModule))
    {
        if (strcmp(xModule.szModule, DLLName) == 0)
        {
        CloseHandle(hSnap);
        return (DWORD)xModule.modBaseAddr;
        }
    }
  }
  CloseHandle(hSnap);
  return 0;
}

--------

kakenette

27 réponses

kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
3 avril 2008 à 18:43
Dommage que ca marche pas, VB doit faire un truc que fait pas C++ :(

kakenette
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 avril 2008 à 06:23
tu as mis le ByVal a la fin ?

vu que tu passes par les APIs, AUCUNE raison que VB s'en sorte pas... et j'ai un peu d'experience dans le domaine, donc, ne te resigne pas si vite ^^
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
4 avril 2008 à 17:34
J'ai trouver une piste!

------
Marche pas :

sValue = Hex2ASCII("EB")
WriteProcessMemory hProcess, RendBase + OffsetToWrite, sValue, Len(sValue), ByVal 0&
------
Marche! :

WriteProcessMemory hProcess, RendBase + OffsetToWrite, &HEB, 1, ByVal 0&
------

Ca marche quand je n'utilise pas le Hex2ASCII, Maintenant reste a savoire si je peux faire ca :

WriteProcessMemory hProcess, RendBase + &H1E242B, &H90 & &H90 & &H90, 3, ByVal 0&

Pour 3 NOP sur l'offset. ( &H90 & &H90 & &H90 )

kakenette
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
4 avril 2008 à 18:16
Et comment je peux faire GetModuleBaseAddress(sPID, "TEST.exe")

Pour la base de soie-même... Car j'ai un renvoie de 0. Et sans ca, je peux pas faire certaines choses qui le demande...

kakenette
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
5 avril 2008 à 01:24
Et tu sais a quoi sert le (void*) dans le WriteMemory pour l'offset en C++  ?

------
(void*)(RendDx9Base + 0x1DDEB8)
-----

kakenette
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 avril 2008 à 07:44
caster la chose pour que le compilo laisse faire
pas notre soucis

ici, on aura un ByVal x As Long
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
5 avril 2008 à 13:52
Hein? Oo? J'ai pas tout suivis suis désolée :D

kakenette
0
Rejoignez-nous