Crypter ou cacher appel aux api

Signaler
Messages postés
76
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
22 décembre 2012
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonsoir,

J'aimerai savoir s' il est possible de crypter ou de cacher l'appel d'une api

Merci

8 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
LoadLibrary

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
et GetProcAddress

ciao...
BruNews, MVP VC++
Messages postés
76
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
22 décembre 2012

Tu veux dire qu'il faut aller chercher la fonction directement en memoire ?

As tu un petit exemple stp?

Merci
Messages postés
76
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
22 décembre 2012

J'ai trouvé un petit exemple mais j'arrive pas  à le modifier.
Comment faire si je veux utiliser la meme methode mais avec GetModuleFileName
Merci
// Type des fonctions


BOOL(WINAPI *pProcess32First)(HANDLE,LPPROCESSENTRY32);

//Functions addresses :

pProcess32First = (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))GetProcAddress (LoadLibrary("kernel32.dll"), "Process32First" );


//Utilisation
pProcess32First ( hTool32, &PEntry );
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,


Non testé :
DWORD(WINAPI *pGetModuleFileNameA)(HMODULE, LPTSTR, DWORD);


pGetModuleFileNameA
 = (DWORD(WINAPI *)(
HMODULE, LPTSTR, DWORD
))
GetProcAddress
(LoadLibrary("kernel32.dll"), "
GetModuleFileNameA
" );


pGetModuleFileNameA(...)




Attention, certaines API (dont GetModuleFileName) sont exportées en
deux version : une suffixée par A (Version ANSI) et l'autre suffixée
par W (Version Unicode). C'est présisé dans la msdn à la fin (Et y a la dll de la fonction aussi). Tu peux changer le jeu de caractère dans la configuration du programme.

Si tu fais ça pour rendre le désassemblage de ton executable plus difficile, c'est vrai que ça va certainement le
ralentir un peu. Mais certainement pas assez pour que tu t'embètes à
faire ça pour tous tes appels. Si c'est pour un système de protection
quelconque, les crackeurs ont plutôt tendance à mettre des points
d'arrêts sur les API elles-même, donc ta méthode risque de ne pas les
gêner le moins du monde.

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Au passage très mauvaise idée la syntaxe 
pProcess32First = (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32))GetProcAddress (LoadLibrary("kernel32.dll"), "Process32First" );

Tu peux pas libérer la dll (FreeLibrary) et en plus si tu charges plusieurs fonctions tu va bloquer plusieurs handle pour rien.
Messages postés
76
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
22 décembre 2012

En faite je veux passer par GetProcAddress et LoadLibrary car mon .exe est détécter par certains AV a cause des fonctions GetModuleFileName et CopyFile.
Quelqu'un sais comment utiliser GetProcAddress et LoadLibrary ?
Merci
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Bah comme fait plus haut sauf que comme le fait remarquer juju12, c'est
quand même mieux de garder le handle renvoyé par LoadLibrary.


T'as exemple sur wikipedia, ici(Sous le VB et le Delphi).


Globalement, il faut :

1 Déclarer un pointeur sur une fonction qui a le même proto que celle qu'on veut utiliser.

2 Déclarer un handle.

3 Charger la librairie avec LoadLibrary et récupérer le handle de la lib.

4 Récupérer l'adresse de la fonction qui nous intéresse dans la
librairie en se servant du handle de celle-ci. On met l'adresse de
cette fonction dans le pointeur déclaré plus haut.

5 Pour appeler la fonction, on se sert du pointeur.


Un AV qui refuse l'import de CopyFile et GetModuleFileName dans un exe,
c'est de la merde en boite. Faut pas déconner bordel, c'est du
n'importe quoi. Tu n'as pas à t'adapter à ce genre de logiciel de merde.

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08