2012-01-20 8 views
6

En Windows, es más o menos común crear "proxy DLL" que tienen lugar de la DLL original y reenviar llamadas a ella (después de cualquier acción adicional según sea necesario). Puede leer sobre él here y here por ejemplo.Biblioteca compartida Proxy (sharedlib, shlib, so) para ELF?

Sin embargo, la cultura shlib munging en Linux es bastante diferente. Comienza con el hecho de que LD_PRELOAD es la función incorporada con ld.so en Linux, que simplemente inyecta shlib por separado en el proceso y utiliza cualquier símbolo que defina como anulación. Y esa técnica de "inyección" parece definir toda la dirección del pensamiento - aquí está a typical ELF hacking tool o this question, donde el caballero parece tener el mismo uso que yo, pero comienza preguntando cómo puede parchar los binarios existentes.

No, gracias. No quiero inyectar o modificar algo que no es mío. Todo lo que quiero hacer es crear un proxy independiente shlib que llamará al original. Idealmente, habría una herramienta que se puede alimentar con el .so original y crear un código fuente C que simplemente redirigiría a las funciones del original, al tiempo que me permitiría anular fácilmente cualquier cosa que desee. Entonces, ¿dónde está esa herramienta? ;-) Gracias.

Respuesta

0

apitrace es una herramienta que cubre el rastreo detallado de libs gráficas (OpenGL, DirectX) llamadas para una variedad de plataformas. Probablemente sea demasiado detallado y complejo para una solución genérica, pero al menos proporciona cierta referencia y afinidad.

Cuestiones relacionadas