#visual-studio #obfuscation #decompiling
Вопрос:
Я пытаюсь протестировать различные обфускаторы. Перед запутыванием я использовал декомпилятор Reko. Похоже, что exe — файл уже запутан-пожалуйста, посмотрите на снимок экрана. Может кто — нибудь, пожалуйста, объяснить-почему все методы и переменные выглядят так, как будто исполняемый файл уже запутан?
Комментарии:
1. Нет смысла запутывать машинный код.
Ответ №1:
- Имена символов не компилируются в исполняемый машинный код. Они могут быть сохранены, но в этом случае они сохраняются в отдельном файле .pdb. Если вы не создадите его во время сборки или не сделаете доступным для отладчика/декомпилятора, он не сможет определить переменные и имена функций (за исключением импортированных/экспортированных).
- Конструкции высокого уровня, такие как
for
илиwhile
, реализуются с помощью переходов и условных переходов, поэтому невозможно определить, был ли цикл реализован с помощьюfor
илиgoto
, или если оператор условного wasif
или тернарный оператор. - Оптимизация сильно преобразует код, отбрасывая ненужные части, выполняя некоторые операции во время компиляции и т. Д.
Комментарии:
1. Спасибо. Значит, в этом случае я могу отправить exe-файл кому-то без запутывания?
2. Зависит от того, насколько вам нужна уверенность. Предполагается, что обфускаторы делают его еще более запутанным. Но все, что может быть выполнено, в любом случае может быть перепроектировано