2014-12-11 2 views
0

Я хотел бы знать, можно ли изменить атрибут выше exe без исходного кода.Возможно ли изменить атрибут AssemblyCopyright для exe?

[assembly: AssemblyCopyright("Copyright Example")] 

Для того, чтобы этот код вызывал следующий код, появляется модифицированный атрибут.

Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; 

Я пробовал ResourceHacker, к сожалению, он меняет авторские права только на правую кнопку мыши> свойства> подробности. Если я снова декомпилирую .exe, я получу старое авторское право.

Я также попытался скомпилировать код после декомпиляции, но у меня не было успеха.

Компания изменила свое название, но не сохранила исходный код этой версии устаревшего продукта. И теперь я должен изменить его.

Спасибо!

ответ

1

Я мог бы решить мою проблему, делая это:

  1. ildasm Используя, декомпилировать сборку.

    ILDASM MyFile.exe /output:MyFile.il

  2. Откройте извлеченный файл "MyFile.il" с помощью текстового редактора.

  3. Вы увидите что-то вроде этого:.

    .custom экземпляра недействительным [mscorlib] System.Reflection.AssemblyCopyrightAttribute :: т е р (строка) =

    (01 00 2C 43 6F 70 79 72 69 67 68 74 20 20 А9 С2 // .., авторское право ..

    45 78 61 70 6d 6c 65 00 00) // Пример

  4. Штриховой код - это ваша строка авторского права, вы можете изменить его, но позаботьтесь об этом:

    -Первые две пары 01 и 00 указывают начало строки.

    -Последние две пары 00 и 00 указывают конец строки.

    -Вы не должны изменять длину шестнадцатеричного кода (я не знаю, почему .. возникает исключение, когда вы собираетесь его прочитать.Я добавил пустые пробелы (20) в конце шестнадцатеричного кода, чтобы они соответствовали длине).

  5. Теперь вам нужно просто скомпилировать его с помощью ilasm.

    ILASM /resource=MyFile.res/ех /output=MyFile.exe MyFile.il

Вот так.

0

Первое решение: вы можете проверить решение, которое они предлагают здесь: AssemblyCopyrightAttribute Class on MSDN.

Альтернативное решение состоит в том, что вы можете использовать инструмент .NET Reflector (Redgate .NET Reflector), чтобы успешно декомпилировать весь код, а затем создать его снова в новом проекте Visual Studio, где вы сами присваиваете атрибут Copyright.

В обоих решениях убедитесь, что вы в порядке с юридической точки зрения, чтобы вы не нарушили закон.

+0

Как я уже сказал, я попытался декомпилировать exe, но его невозможно было скомпилировать снова. О другом варианте он не описывает, как изменить существующую сборку, просто создает новую сборку. Спасибо! – FelipeKunzler

Смежные вопросы