Pregunta

Tengo una aplicación (archivo ejecutable Win32) sin el código fuente.

¿Es posible escribir una aplicación C # y volver a utilizar alguna función en ese archivo .exe Win32?

¿Fue útil?

Solución

Puede ejecutar

dumpbin.exe /exports [your-win32.exe]

y ver qué funciones que exporta. A continuación, puede utilizar (cualquiera que sea el equivalente de C #) LoadLibrary () y GetProcAddress () para llamar a esas funciones.

Por supuesto, lo que necesita saber las firmas de esas funciones con el fin de llamar correctamente; número es decir, y el orden de los parámetros, etc.

Otros consejos

No sé si esto es lo que está buscando, pero si el otro exe tiene una interfaz gráfica de usuario, es probable que pueda hacer algunas cosas mediante el envío de mensajes a ella. Sólo tiene que ejecutar Spy ++, hacer lo que quiera con la otra aplicación, y ver el registro cuando haya terminado. Si no se utilizan controles especiales, se puede operar de esa interfaz gráfica de usuario haciendo que los mangos de los controles que desea, y enviarlos a los mensajes apropiados. Si no desea que el usuario conozca que se está ejecutando la otra aplicación, puede ejecutarlo en un escritorio diferente.

Otra opción que puede explotar está ejecutando su propio hilo en el interior del otro proceso exe, y comunicar de nuevo a su aplicación en una de las diversas técnicas disponibles IPC. Muchas preguntas se han hecho aquí acerca de la inyección hilo de ejecución remoto, por lo que sólo mirar a su alrededor para ello.

Por último, si tiene suerte, la funcionalidad que necesita es en realidad en uno de los archivos DLL utilizados por el exe, ya sea como funciones exportadas o como una interfaz COM. Echar un vistazo en tiempo de ejecución utilizando el explorador de procesos más o menos, y ver si alguno de los módulos se ve interesante. En lo que se va a utilizar otros módulos, archivos DLL son obviamente mucho más fácil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top