Como você extrair uma seção RT_RCDATA a partir de um executável Win32 (de preferência em C #)?

StackOverflow https://stackoverflow.com/questions/119117

  •  02-07-2019
  •  | 
  •  

Pergunta

A única maneira que eu sei como fazer isso atualmente está abrindo o EXE no Visual Studio. Eu adoraria ser capaz de fazer isso inteiramente em C #, se possível. Outras opções incluem:

  • P / Invocando LoadResource () a partir da API Win32
  • Usando uma ferramenta existente (alguém conhece um?)
  • Outras idéias?

Obrigado!

Foi útil?

Solução

P / Invoke LoadResource será a sua aposta mais segura.

Caso contrário, você terá que escrever o seu próprio P / E processador por exemplo. PE Processor exemplo . O processador não é o fim do mundo, mas como você pode ver muito mais envolvido do que um P / Invoke.

Quase esqueci, tanto quanto ferramentas ir, a maioria dos navegadores P / E vai fazer isso por você. Por exemplo. P / E Explorer, que está disponível, mas não é realmente sendo desenvolvido. Eu também usado IDA Pro para coisas como esta. Um plugin IDA rápida iria fazer isso facilmente.

Outras dicas

Eu suponho que você está tentando ler um recurso do tipo RCDATA a partir de um executável (estar ciente de que "seção executável" significa uma coisa diferente - ele se refere ao .text, .data, .rdata, etc partes do PE Arquivo). Se você quiser lê-lo a partir da montagem atual, aqui está uma exibição tutorial como: Acessando incorporado Recursos usando GetManifestResourceStream , usando o GetManifestResourceNames e GetManifestResourceStream métodos.

Se você não quiser lê-lo a partir do executável atual, você pode usar um método semelhante ao mostrado aqui .

Estes métodos têm a vantagem sobre PInvoke que eles são 100% .NET e você não tem que mexer com empacotamento os argumentos de / para tipos de dados plataforma e certificando-se de que você validou todos os valores de retorno.

Há um muito útil biblioteca para muitos recursos-tarefas em http: //resourcelib.codeplex .com

Muitas classes e função de fazer embrulhar essas janelas-API-chamadas ao redor UpdateResource(...), etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top