Charger une fonction ou procedure a partir d'un executable

Signaler
Messages postés
6
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
1 novembre 2008
-
Messages postés
6
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
1 novembre 2008
-
slt, jai besoin de Charger une fonction ou procedure a partir d'un executable ?
si qcq'1 peut m'aider?

6 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
salut,

qu'entends tu par changer une fonction?



@+

jlen
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
vite les lunettes
hakimovitch n'a pas écrit "changer une fonction" mais "charger une fonction"..

cantador
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
C'est sur j'ai la vue qui baisse..... tant que ce n'est que la vue!

Si tu question concerne une fonction issue d'une DLL la procedure à suivre

Function Nomde la Fonction(Parametresdela fonction); stdcall; external 'NomDu Fichier.DLL';

pour une procédure c'est la même chose



@+

jlen
Messages postés
6
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
1 novembre 2008

Tts dabord, Merci infiniment de votre attention les mecs;
je parle ici d'appeller une fonction d'un executable et ma question est trés precise..

par exemple: une fction appeller "RegisterServiceProcess" qui peut masqué une application de la barre des taches façilement, été inclut dans la DLL :
"Kernel32.dll" ds les version de windows 9x mais dans win2000 et XP elle est inclut ds le module:"krnl386.exe" ( par exemple desassembler le avec windasm et vous trouveré les fction exporté par celui-ci);
et la question comment appeller cette fction.

RQ: jai essayé avec le code ci-dessous:
procedure TForm1.Button4Click(Sender: TObject);
var handle:integer;
proc:function(dwProcessId: DWORD; dwType: DWORD): DWORD; stdcall;
begin
Handle:=0
Handle:=LoadLibraryEx('krnl386.exe',0,LOAD_LIBRARY_AS_DATAFILE);
if Handle<>0 then
begin
@proc:=GetProcAddress(Handle, 'RegisterServiceProcess');
if @proc<>nil then proc(0,1) else showmessage('erreur');
FreeLibrary(Handle);
end;

mais la fction "GetProcAddress" pose un problème
Messages postés
6
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
1 novembre 2008

attendez la fction RegisterServiceProcess masque une application du gestionnaire des tâches (lors du Ctrl+Alt+Supp)
Messages postés
6
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
1 novembre 2008