Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Intercettare chiamate a procedura
Forum - C/C++ - Intercettare chiamate a procedura

Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 10:22
Sabato, 22/08/2009
Come da titolo, vorrei sapere se sia possibile intercettare  gestire le chiamate alle funzioni delle dll

esempio:

Se chiamo la malloc da un programma(facendolo partire come .exe), è possibile con un altro programma intercettare la chiamata e gestirla ritornando un risultato?
Per la malloc magari far ritornare un puntatore ad una diversa locazione di memoria che quella data di default dalla funzione


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
hack3r (Normal User)
Rookie


Messaggi: 38
Iscritto: 14/06/2009

Segnala al moderatore
Postato alle 10:45
Sabato, 22/08/2009
si, si può fare ma , non esattamente come dici tu, è la tecnica usata da molti antivirus e bug hunter, e debugger ora non ricordo bene, si basa sulla sostituzione in memoria della funzione in questione, ad esempio malloc, la nuova funzione dovrà avere le stesse caratteristiche, e fornire lo stesso servizione, nell'esempio di malloc, allocare memoria,
in più potrà scrivere su un file o stampare sullo stdout un messaggio ogni volta che viene chiamata, in questo modo tu potrai avere un log completo di tutte le chiamate a quella funzione :rotfl:, purtroppo non mi ricordo il nome di questa tecnica, forse qualcun altro potrà illuminarti :asd:

ciao :)

edit :

riguardo all'esempio che hai fatto, si può fare benissimo, basta sostituire il codice della malloc

Ultima modifica effettuata da hack3r il 22/08/2009 alle 10:47


No money, no problem!
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 10:55
Sabato, 22/08/2009
eh, ma c'é un modo per sapere che funzioni sta chiamando un programma?


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
hack3r (Normal User)
Rookie


Messaggi: 38
Iscritto: 14/06/2009

Segnala al moderatore
Postato alle 12:24
Sabato, 22/08/2009
non so se ti può essere utile ma se lavori su win32 ho trovato questo pdf quihttp://www.digifacta.com/~calderon/html/Art7HTML/art7.pdf
per intercettare chiamate di sistema


No money, no problem!
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 14:07
Sabato, 22/08/2009
si quello l'ho già scaricato e appena ho tempo ci metto mano :k:


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
hack3r (Normal User)
Rookie


Messaggi: 38
Iscritto: 14/06/2009

Segnala al moderatore
Postato alle 18:52
Sabato, 22/08/2009
googlando ho trovato gnu cflow quù c'è un manuale

http://www.gnu.org/software/cflow/manual/cflow.html


No money, no problem!
PM Quote