2011-05-21 12 views

Respuesta

3

Detours se utiliza para enganchar. Usando lib para enganchar la interfaz IAudioRenderClient, incluyendo GetBuffer y ReleaseBuffer, y leer datos del búfer.

+0

¿Cómo enganchó el IAudioRenderClient usando Detours? Intenté a través de IMMDeviceEnumerator, IMMDevice :: Activate y IAudioClient :: GetService. Pero desafortunadamente IMMDevice :: Activate no parece ser llamado. – Cthutu

-1

Dependiendo de las API usadas por la aplicación para reproducir el audio, podría escribir una DLL de AppInit que envolverá las funciones incorporadas de waveIn \ waveOut y pasaría los datos de audio. Sé que esto funciona con las funciones waveIn \ waveOut, pero no estoy seguro de qué otras interfaces de reproducción de audio hay en Windows 7 y si son compatibles con el truco de AppInit.

+0

No use AppInit, simplemente inicie el proceso suspendido e inyecte su DLL - en cualquier caso es chistoso, pero al menos no afectará a todas las aplicaciones en la máquina. –

+0

Cierto, pero comenzar suspendido/inyectar es difícil de hacer con un clic de icono: la opción AppInit funciona razonablemente bien. Si quisieras ser muy cuidadoso podrías hacer un secuestro de imagen para el ejecutable que sería compatible con el truco suspender/inyectar: ​​simplemente no tienes ninguna experiencia con eso. – Femi

+0

Por favor, no use AppInit para nada, casi se garantiza que bloqueará otras aplicaciones y hará que las vidas de sus clientes sean menos impresionantes. Puede suspender procesos utilizando las API del depurador, inyecte su DLL, luego presione ir. –

Cuestiones relacionadas