Проблема с илазмом

2

У меня довольно большая программа в .NET 3.5 SP1, которая компилируется просто отлично. Однако, когда я хочу запутать его Obfuscator Pro (оценка пока), Obfuscator останавливается со следующей ошибкой:

[Создать выход] Это приложение попросило Runtime прекратить его необычным способом.
[Build Output] Для получения дополнительной информации обратитесь в службу поддержки. [Создать выход] ilasm вернулся 3
Ошибка сборки сборки.

Поскольку ошибка исходит от ILASM, я думал, что позволяет делать то, что Obfuscator делает (без обфускации), и выполнил следующие команды:

= > ildasm.exe/OUT=C:\MyApp.exe.il/TEXT/NOBAR/RAWEH/QUOTEALLNAMES/UTF8/LINENUM/FORWARD C:\MyApp\bin\Release\MyApp.exe
= > ilasm C:\MyApp.exe.il

Первая команда (ILDASM) проходит просто отлично, я получаю IL файл 450 МБ.
Вторая команда (ILASM), однако, выдается со следующей ошибкой:

Это приложение попросило Runtime прекратить его необычным способом.
Для получения дополнительной информации обратитесь в службу поддержки.

Кто-нибудь знает, что такое ошибка?
Моя система - это Windows 7 x64 с инструментами Visual Studio 2008 (SP1).

UPDATE:
Я связался с поддержкой Obfuscator и провел несколько тестов для них. Кстати, у них действительно есть полезные люди. Мы обнаружили, что ошибка возникает только при использовании ILASM x86 из фреймворка .net 2.0. При использовании одного из framework64\v2.0... тогда ошибки не произойдет.
Также при использовании либо (x86, либо x64) ILASM от .net 4.0 (бета-версия 2) он проходит просто отлично.
Так что это действительно похоже на ошибку в ILASM.net 2.0 для x86.

  • 0
    @Rubens Farias: Вы правы, я до сих пор не связывался с Microsoft :-) Не думаю, что это поможет. (+1 в любом случае)
  • 0
    @Rubens Farias: Да, это был бы мой следующий шаг. Но я подумал, что сначала посмотрю, сможет ли кто-нибудь здесь помочь мне. Для меня это не похоже на проблему dotfuscator (или я сделал что-то не так, может быть, со ссылками на сборки или около того).
Показать ещё 1 комментарий
Теги:
compilation
ilasm
dotfuscator

1 ответ

1
Лучший ответ

В то время как проблема с ILASM не решена, исправлена ​​следующая проблема:

  • Использовать ILASM из папки framework64
    X64 ILASM работает отлично. Однако я не мог заставить Dotfuscator использовать его.
  • Установить .net framework 4.0 (бета-версия 2)
    Когда ILASM из .NET Framework 4.0 используется, он работает нормально.
  • Запустите Dotfuscator с флагом '/inpl: on'
    Поддержка Dotfuscator сказала мне использовать этот флаг, и он отлично работал.
    Согласно им не должно быть никакой разницы в сгенерированном EXE, поэтому я использую это решение в настоящее время (флаг недоступен в графическом интерфейсе).
  • 0
    Просто любопытно, сколько баранов у вас было, когда вы тестировали это? Вполне возможно, что использование 64-битного ilasm позволило вам выйти за пределы 4 ГБ.
  • 0
    @Johannes Rudolph: у меня было 4 ГБ ОЗУ в системе при этих проблемах. Я все еще использую x64 ILASM из .net 2, и он работает просто отлично.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню