AV/EDR знают паттерны стандартных пейлоадов наизусть. Каждый запуск msfvenom — готовая сигнатура для детектора.
🔧 Ручной шеллкод решает три проблемы:
• Нет сигнатур — только поведенческий детект
• Контроль размера: иногда буфер даёт ровно 200 байт
• Понимание механики вместо копипаста
Главное, что ломает новичков — нулевой байт. Инструкция
mov eax, 0 даёт B8 00 00 00 00, и strcpy обрежет всё после \x00. Замена: xor eax, eax — два байта 31 C0, ноль нулей.В Windows стабильных номеров syscall нет. Шеллкод обходит PEB, ищет базу kernel32.dll через список модулей и динамически резолвит WinAPI — LoadLibrary в 40 байт.
Разбор с байткодом, C-обёрткой и инъекцией в процесс:
https://codeby.net/threads/razrabotka-shellkoda-ot-ruchnogo-napisaniya-na-assemblere-do-in-yektsii-v-protsess.92670/
