Расположение встроенного ресурса в сборке - PullRequest
2 голосов
/ 21 июля 2011

Как мы можем определить местоположение встроенного ресурса в сборке .Net?Под «местоположением» я подразумеваю начальные и конечные позиции байтов в сборке.Есть ли какой-нибудь инструмент или пример кода для этого?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Что вам нужно, так это PE File читатель / парсер.Полная спецификация находится в msdn: http://msdn.microsoft.com/en-us/windows/hardware/gg463119

Управляемые ресурсы:

Этот синтаксический анализатор выглядит очень похоже на то, что вы ищете: http://www.codeproject.com/KB/dotnet/asmex.aspx

И есть несколько других программ чтения файлов PE, , этот также выглядит многообещающе , однако специально не вызывает управляемые ресурсы.Вы также можете взглянуть на Криса Стэнтона, который изучает заголовки pe-файлов с помощью управляемого кода .

Win32 Ресурсы:

Ресурсы Win32 намного проще.Многие из тех же читателей PE будут смещены в файл, чтобы найти ресурсы.Оказавшись там, есть четко определенный набор структур, которые определяют расположение ресурсов. MSDN определил эти , а другие написали об этом .Несколько поисков в Google помогут вам там.

1 голос
/ 21 июля 2011

Вы можете сделать проб и ошибок.Проверьте байтовую структуру ресурса, который, как вы знаете, встроен, и попробуйте найти его с помощью Hex Editor.Если у вас нет ресурса, вы можете попробовать извлечь с помощью Resource Hacker: http://www.angusj.com/resourcehacker/

...