[so] Re: Intrebari despre Tema 2

Maximilian Machedon maximilian.machedon at gmail.com
Sun Nov 20 08:23:20 EET 2005


    Pai cred ca stiu care e explicatia:

HookImportedFunction(
GetModuleHandle(NULL),
"kernel32.dll", "ReadFile", (PROC)MyReadFileHook);

        E complet diferit de:

HookImportedFunction(
GetModuleHandle("msvcr80d.dll"),
"kernel32.dll", "ReadFile", (PROC)MyReadFileHook);

    Cu alte cuvinte: fiecare .dll si executabilul au fiecare un vector de
functii importate; functia "HookImportedFunction" modifica doar vectorul
unui singur .dll/executabil, cel dat ca prim parametru. Singura metoda prin
care m-as fi apelat recursiv in hook ar fi fost sa pun hook-ul pe dll-ul cu
libraria standard C/C++ ("msvcr80d.dll"), si apoi sa apelez din hook printf.

    Acum apare, desigur, intrebarea: cum functioneaza .dll-ul cu libraria
standard? Adica cum a fost scris sa poata suporta mai multi "clienti": si 
.dll-uri care il folosesc si isi initializeaza date, si executabilul care il 
foloseste si isi initializeaza date?




----- Original Message ----- 
From: "Maximilian Machedon" <maximilian.machedon at gmail.com>
To: "SO" <so at cursuri.cs.pub.ro>
Sent: Saturday, November 19, 2005 3:18 PM
Subject: Re: Intrebari despre Tema 2


    Ma rog, adica in hook-ul de WriteFile de ce merge sa afisez.


----- Original Message ----- 
From: "Maximilian Machedon" <maximilian.machedon at gmail.com>
To: "SO" <so at cursuri.cs.pub.ro>
Sent: Saturday, November 19, 2005 3:11 PM
Subject: Intrebari despre Tema 2


1. Trebuie sa suportam mai multi clienti (tip.exe) ruland simultan?

Daca tot trebuie sa invatam ceva facand teme, am si eu cateva nelamuriri....
Am inceput un schelet al temei pe Windows, un .dll ce intercepteaza
apelurile de ReadFile. Am o nelamurire: de ce merge sa afisez la consola din
codul functiei cu care am interceptat ReadFile? Adica, daca am interceptat
ReadFile, de ce nu mi se apeleaza tot functia mea atunci cand afisez la
consola? Banuiesc ca are ceva de a face cu felul cum e link-ata libraria
standard C/C++...

Si inca ceva: hook-ul esueaza pe executabilele de cygwin; pe executabilul de
test pare sa mearga OK.



More information about the so mailing list