Если кратко, то копать нужно в сторону криптографии, в дарк нете малварь криптует по 50$ примерно.
Теперь ответ технического характера, для начала нужно понять, как работает антивирус. а антивирус, как правило сканирует при запуске ПЕ шник (исполняемый файл) он же EXE, на наличии в нём известных этому антивирусу сигнатур (Сигнатура - это полседовательность байтов, которая характерна для разного рода малвари) Пример: есть код вируса, который использует функции либы Windows API такие, как CreateProcessA, знатоки которые пишут Антивирусное ПО знают, что часто вирус обращается к одним и тем же фунуциям (сокеты, создать поток, запустить процесс, сокет) твоя задача сосстоит в том, чтоб запутать антивирус, а иименно изменить сигнатуру своего вируса.
-Как это сделать? Поскольку любая программа это последовательность байтов, то самым простым способом будет, зашифровать эти байты, сделая побайтовый сдвиг, или любым доступным методом (XOR например).
Выглядит это так, ты создаёшь программу заглушку, которая в свою очередь при старте запишет в файл последовательность закодированных байт (BinaryWriter в С#) в файл, тем самым изменяя сигнатуру файла (твои байты получают сдвиг (как пример) и не палятся) , и следующей твоей задачей будет декриптовать байты в малварь - последовательность, и стартонуть процесс из под своего файла - заглушки
-1.Создаём заглушку в которой есть секция вредоносного файла (мы её и будем шифровать)
-2.Криптуем команды вредоноса XOROM , и криптованые байты записываем на диск в виде "virus.exe".
-3.Заглушка стартует "virus.exe"
-4. Во время запуска программы, шифрованный вредоносный код дешифруется и запускается внутри памяти зараженной программы.
-5Для антивируса запускается не два файла(неопасный EXE и вредоносный код), а один, безопасный файл, никак не определяемый антивирусом.
//сноска взято с интертов.
Что такое XOR функция?
XOR, так же известное как Exclusive OR, это побитовый оператор двоичной математики. Оператор XOR возвращает 1 когда значение первого или второго битов равно 1. Так же, оператор XOR возвращает 0, когда ни одного или оба одновременно значения 1-го и 2-го битов равны 1.
Литература: Читай книгу Вскрытие Покажет - Практический анализ вредоносного ПО , сама книга есть тут на форме, в разделе БИБЛИОТЕКА, глава 18 упаковка - распаковка вредоносов.
P.S. Сорян за сумбурное пояснение.