Я написал сценарий PowerShell за много часов и дней и хотел бы его запутать, но чтобы код больше не читался и не декомпилировался, но сценарий по-прежнему можно было выполнить. Есть что-то подобное?
Если вы хотите, чтобы что-то запутало ваш код powershell, чтобы сделать его нечитаемым, но сохранить его работающим, вам следует проверить проект под названием Invoke-Obfuscation , выполненный Дэниелом Боханнаном. Вы должны проверить его разговор о запутывании PowerShell, где он представил инструмент.
Существует вещь с именем Powershell Constrained language.
Цитата отсюда: https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/
Режим ограниченного языка - это языковой режим, разработанный PowerShell. для поддержки повседневных административных задач, но при этом ограничить доступ к чувствительным языковым элементам, которые можно использовать для вызова произвольных Windows API.
В режиме с ограничениями они не поддерживаются:
Лучше всего работает административные задачи, все же это не лучше для повседневного использования. Для запуска используйте:
$ExecutionContext.SessionState.LanguageMode = 'ConstrainedLanguage'
Подробнее здесь: https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/
Invoke-Obsufcation, написанный Daniel Bohmann, намного лучше для этой цели. Ссылка: https://github.com/danielbohannon/Invoke-Obfuscation
Руководство по использованию: https://blog.vonhewitt.com/2017/08/obfuscating-powershell-commands-using/