Декомпиляция.net сборки с помощью dotPeek дает неверный синтаксис

У меня проблема с декомпиляцией.net сборки. Когда я открываю сборку в dotPeek, появляется класс frmMain с несколькими сотнями переменных, объявленных так:

[SpecialName]
private static int \u0024STATIC\u0024SortByLengthAsc\u002402811241124\u0024xlen;

Когда я пытаюсь экспортировать его в проект, все эти строки выдают ошибки (STATIC не определено), даже если я изменяю все \u0024 на $. Я делаю что-то неправильно?

2 ответа

Решение

Нет, сборка была запутана, чтобы не позволить людям (таким как вы) взглянуть на код и, возможно, "украсть" его. Эти имена переменных разрешены в IL, но не в реальном коде C#, поэтому он терпит неудачу.

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

Быстрый совет для тех, кто задал этот вопрос в Google: попробуйте ILSpy (например) вместо dotPeek.

Получил этот юникодный материал с dotPeek в незапутанной dll, но с ILSpy все в порядке.

Другие вопросы по тегам