2012-01-20 13 views
6

Su Windows, è più o meno comune creare "DLL proxy" che hanno luogo nella DLL originale e inoltrare le chiamate ad esso (dopo eventuali azioni aggiuntive, se necessario). Puoi leggere su di esso here e here per esempio.Libreria condivisa proxy (sharedlib, shlib, so) per ELF?

Tuttavia, la cultura shib di munging sotto Linux è molto diversa. Comincia con il fatto che LD_PRELOAD è la funzione incorporata con ld.so sotto Linux, che semplicemente inietta shlib separato nel processo e utilizza qualsiasi simbolo che definisce override. E questa tecnica di "iniezione" sembra definire l'intera direzione del pensiero: ecco a typical ELF hacking tool o this question, in cui il gentiluomo sembra avere lo stesso codice d'accesso di me, ma inizia chiedendo come può aggiustare i binari esistenti.

No, grazie. Non voglio iniettare o modificare qualcosa che non è mio. Tutto quello che voglio fare è creare uno shlib proxy autonomo che richiamerà l'originale. Idealmente, ci sarebbe uno strumento che può essere alimentato con l'originale .so e creare un codice sorgente C che reindirizzerebbe semplicemente alle funzioni dell'originale, mentre mi consente di ignorare facilmente tutto ciò che voglio. Quindi, dov'è questo strumento? ;-) Grazie.

risposta

0

apitrace è uno strumento che copre la traccia dettagliata delle chiamate grafiche libere (OpenGL, DirectX) per un numero di piattaforme. Probabilmente è troppo dettagliato e complesso per la soluzione generica, ma fornisce almeno qualche riferimento e affinità.

Problemi correlati