begin process at 2012 02 13 00:14:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

remplacer GetProcAddress


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

remplacer GetProcAddress

samedi 6 septembre 2008 à 10:05:28 | remplacer GetProcAddress

jb212121

Membre Club
Bonjour,

Sauriez vous s'il existe un équivalent à GetProcAddress ?

Merci
samedi 6 septembre 2008 à 16:12:17 | Re : remplacer GetProcAddress

SAKingdom

Membre Club
Pourquoi veux-tu un équivalent de cette fonction ?

C++ (@++)

samedi 6 septembre 2008 à 16:39:13 | Re : remplacer GetProcAddress

jb212121

Membre Club
Par curiosité
dimanche 7 septembre 2008 à 16:22:08 | Re : remplacer GetProcAddress

SAKingdom

Membre Club
Je ne vois pas l'utilité d'en trouver un équivalent. Je n'en connais, de toute façon, pas mais même si il en existe un, je suis convaincus que, à moins de faire une fonction soi-même qui fouille à même le binaire, l'appel à cette fonction équivalente débouche sur un GetProcAddress.

C++ (@++)

mardi 9 septembre 2008 à 14:30:25 | Re : remplacer GetProcAddress

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Par ici, il y a des fonctions avancées de manipulation d'image (Au sens exécutable).

Sinon, GetProcAdress doit se baser sur la table d'export, donc ce n'est pas trop dur à recoder. La doc sur le format des exécutables est téléchargeable ici.
mardi 9 septembre 2008 à 15:52:40 | Re : remplacer GetProcAddress

jb212121

Membre Club
Réponse acceptée !
Merci rt15
j'ai trouvé se que je cherchais je poste si sa intéresse quelqu'un

LPVOID _stdcall _getprocaddress(HMODULE hmod, PCHAR func)
{
PIMAGE_DOS_HEADER dos_header;
PIMAGE_NT_HEADERS nt_headers;
PIMAGE_EXPORT_DIRECTORY exports;
PDWORD functions;
PSHORT ords;
PDWORD names;

if (!IsBadReadPtr(hmod, sizeof(IMAGE_DOS_HEADER)))
{
dos_header = (PIMAGE_DOS_HEADER)hmod;
if (dos_header->e_magic == IMAGE_DOS_SIGNATURE)
{
nt_headers = (PIMAGE_NT_HEADERS)((PCHAR)hmod + dos_header->e_lfanew);
if (!IsBadReadPtr(nt_headers, sizeof(IMAGE_NT_HEADERS)))
{
if (nt_headers->Signature == IMAGE_NT_SIGNATURE)
{
exports = (PIMAGE_EXPORT_DIRECTORY)((PCHAR)hmod + nt_headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);
if (!IsBadReadPtr(exports, sizeof(IMAGE_EXPORT_DIRECTORY)))
{
functions = (PDWORD)((PCHAR)hmod + exports->AddressOfFunctions);
ords = (PSHORT)((PCHAR)hmod + exports->AddressOfNameOrdinals);
if ((DWORD)func & 0xFFFF0000)
{
names = (PDWORD)((PCHAR)hmod + exports->AddressOfNames);
while (!IsBadReadPtr(names, sizeof(DWORD)))
{
if (strcmp((PCHAR)hmod + *names, func) == 0)
{
if (!IsBadReadPtr(&functions[*ords], sizeof(DWORD)))
{
return (PCHAR)hmod + functions[*ords];
}
}
names++;
ords++;
}
} else {
if (!IsBadReadPtr(&functions[(SHORT)func], sizeof(DWORD)))
{
return (PCHAR)hmod + functions[(DWORD)func];
}
}
}
}
}
}
}
return NULL;
}

mardi 9 septembre 2008 à 18:17:04 | Re : remplacer GetProcAddress

rt15

Membre Club Administrateur CodeS-SourceS

Bah voilou, il va chercher dans la table d'export.

Par contre je connaissais pas IsBadReadPtr. Mais cette fonction à l'air bien nulle si on se réfèrre à sa doc (Lire le commentaire à la fin).

Et là, elle est utilisée un peu abusivement...

A ta place je les ferais tous sauter. Si ça plante sans, c'est qu'une vérif qui aurait pu être faîte ne l'est pas.

mercredi 10 septembre 2008 à 08:53:54 | Re : remplacer GetProcAddress

jb212121

Membre Club
Oui je pense que tu as raison rt15 je vais voir sans l'utilisation de IsBadReadPtr


Cette discussion est classée dans : remplacer, getprocaddress


Répondre à ce message

Sujets en rapport avec ce message

Remplacer la copie de fichier de Windows [ par MangaII ] Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c Remplacer la fonction de copie de fichier sous Windows [ par MangaII ] Salut !Quelqu'un sorai-t-il comment on pe remplacer la fonction de copie de fichier sous Windows par un programme maison !Mon but est d'optimiser la c remplacer un bout de chaine d'une chaine par un autre bout de chaine [ par loicus ] En pratique, j'aimerais bien avoir un truc genre :chaine4=replace("a remplacer",chaine1,"c'a y, c'ets remplacé");Mais je ne sais pas quelle fonction u Fonction "Remplacer Tout" pour un fichier (VC++.Net) [ par milobac ] J'aimerais créer un programme, en VC++.Net, qui remplace une chaîne, à chaque fois qu'elle est détecté dans un fichier, par une autre.En quelque sorte Pourquoi la majorité des programmes de ce site ne marche pas avec moi ? [ par Adeon ] Adeon J'ai un tres gros probleme, tous les programmes que je prends dans ce site utilise un langage que mon ordi ne reconnait pa aide sur la library c++ 5.0 comment remplacer <graphics.h> [ par temoin ] TEMOIN Allo je besoin d'aide si quelqu'un peut m'aide je voudrais savoir avec quoi qu'on peut remplacer ce library du c++ 5.0 ou dev6.0#include moi remplacer le mot de passe par des étoiles en "C" dans un terminal sous linux [ par Minou1981 ] Comment dois je faire pour remplacer les caracteres par des étoiles en "C" dans un terminal sous linux??? Scanf et allegro [ par boun85 ] Par quelle fonction je peut remplacer scanf() lorsque j'utilise allegro sachant que je veu recupperer un nombre entrer au clavier ?Voila ce ke je veut WriteFile : Remplacer [ par coockiesch ] Kikoo totu le monde!!!J'aimerais savoir s'il est possible de remplacer du texte dans un fichier avec WriteFile sans devoir le copier et changer les in Utilisation DLL SANS .lib [ par nasedo47 ] J'ai récupéré une DLL sur un site ainsi qu'une page avec les prototypes de toutes les fonctions contenues dans cette DLL.J'aimerais utiliser ces fonct


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,558 sec (3)

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