Как мы можем определить местоположение встроенного ресурса в сборке .Net?Под «местоположением» я подразумеваю начальные и конечные позиции байтов в сборке.Есть ли какой-нибудь инструмент или пример кода для этого?
Заранее спасибо.
Что вам нужно, так это 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 помогут вам там.
Вы можете сделать проб и ошибок.Проверьте байтовую структуру ресурса, который, как вы знаете, встроен, и попробуйте найти его с помощью Hex Editor.Если у вас нет ресурса, вы можете попробовать извлечь с помощью Resource Hacker: http://www.angusj.com/resourcehacker/