Недавно нашел интересную функцию
DebugActiveProcess , которая позволяет текущему процессу стать дебаггером (обрабатывать всякие дебаг события) для другого процесса. Ну и в голову пришла идея: "А что если применить это на powershell и обрабатывать LOAD_DLL_DEBUG_EVENT, перехватывать загрузку amsi.dll и патчить ее на лету?" . Таким образом родился проект
DebugAmsi , который позволяет запускать процесс powershell.exe с автоматическим патчем amsi. Причем я постарался избавить Вас от нужды чистки строк, обфускации их и прочей жести. В файлике strhide реализован алгоритм по шифрованию всех строк проекта во время компиляции с помощью XOR. Алгоритм вынесен в два отдельных милых макроса -
h() (для шифрования ASCII строк) и
hW() (для шифрования юникода).
Пользуйтесь на здоровье😚