Sto giocando con il dirottamento delle DLL e mi stavo chiedendo qualcosa che non sono stato in grado di scoprire da solo su Google. Ho capito come funzionano le basi con il fatto che le DLL sono caricate da un eseguibile / servizio / installatore. Capisco anche come Windows passa attraverso il "percorso" di caricamento per trovare le DLL. Quindi posso ottenere la mia DLL per eseguire la calcolatrice quando metto la mia DLL nel percorso del programma stesso quando so per certo che cerca di trovare le DLL nel percorso del programma.
Ma ecco la mia domanda: come posso scoprire se una DLL è caricata da un eseguibile usando un percorso relativo?
Quello che voglio è essere in grado di eseguire quella DLL "non trovata" da una directory nella variabile PATH, quindi se sto solo fraintendendo quello, sarebbe possibile dirmelo pure.
Modifica
Vedo che la mia domanda non è al 100% chiara dai commenti / risposte che sto ottenendo. Quindi chiarirò un po ': sto solo giocando, quindi ho un setup di test. Di che cosa si tratta veramente è se esiste un modo per vedere se le DLL caricate da un eseguibile vengono caricate con un percorso relativo e non con un percorso assoluto. SO se l'eseguibile tenta di trovare solo test.dll o se si riferisce a c: \ windows \ system32 \ test.dll. Sto usando procmon per vedere quali DLL sono caricati da diverse applicazioni (come Discord). In procmon non riesco a vedere come l'eseguibile cerca di trovare la DLL (percorso relativo o assoluto) e questo è quello che voglio scoprire, come vedere se l'eseguibile passa attraverso i diversi percorsi come descritto in questo Link o se l'eseguibile è solo teso per caricare il percorso assoluto di un dll.