Pregunta

La única manera que sé cómo hacer esto en la actualidad es la de abrir el EXE en Visual Studio.Me encantaría ser capaz de hacer esto completamente en C#, si es posible.Otras opciones incluyen:

  • P/Invocando LoadResource() de la API Win32
  • El uso de una herramienta existente (alguien sabe de uno?)
  • Otras ideas?

Gracias!

¿Fue útil?

Solución

P/Invoke LoadResource será su apuesta más segura.

De lo contrario tendrás que escribir su propia P/E el procesador, por ejemplo. PE Procesador de ejemplo.El procesador no es el fin del mundo, pero como se puede ver mucho más que la de un P/Invoke.

Casi lo olvido,tan lejos como herramientas de ir, la mayoría de los P/E de los navegadores de hacer esto para usted.Por ejemplo.P/E Explorer, que está disponible pero no se realmente que está siendo desarrollado.También he utilizado IDA Pro para cosas como esta.Una rápida IDA plugin de hacer esto fácilmente.

Otros consejos

Supongo que usted está tratando de leer un recurso de tipo RCDATA de un archivo ejecutable (ser consciente de que "el ejecutable de la sección" significa una cosa diferente - se refiere a el .texto, .de datos, .rdata, etc partes del archivo PE).Si desea leer desde el actual asamblea, aquí hay un tutorial que muestra cómo: El acceso a los Recursos Incrustados mediante GetManifestResourceStream, utilizando el GetManifestResourceNames y GetManifestResourceStream métodos.

Si no quieres leer desde el actual ejecutable, puede utilizar un método similar al que se muestra aquí.

Estos métodos tienen la ventaja sobre PInvoke que son el 100% .NET y no tener que trastear con el cálculo de referencias de los argumentos a/desde la plataforma de tipos de datos y asegurarse de que usted validado todos los valores de retorno.

Hay una muy útil biblioteca para muchos de los recursos-tareas en http://resourcelib.codeplex.com

Muchas de las clases y la función de hacer envuelva esos ventana-api-llamadas alrededor de UpdateResource(...), etc.

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