Крипторы не вносят изменения в файл который криптуют. Крипторы в общем случае реализуют внутри себя виндовый загрузчик LoadPE/RunPE. LoadPE и RunPE могут сильно отличаться в своей реализации кто-то создаёт новый процесс с флагом CREATE_SUSPENDED и записывает туда засшифрованный файл, кто-то делает всё прямо в памяти своего же процесса ( резидентные лоадеры). Стабом называют тот код который как раз-таки является кодом который расшифровывает файл и запускает его имитирую работу виндового загрузчика, крипторы могут морфить, обфусцировать и т.д. только себя а файл который криптуют. Способ хранения файла который криптуют опять же у всех разный, кто-то хранит в секции ресурсов, кто-то раскидывает по разным секциям, можно вообще скачивать из интернета. Недостаточно просто заморфить свой код до такой степени что там фиг разберёшься, нужно чтобы криптованный файл был похож на легитимный т.е. имел реалистичные секции, реалистичный импорт, вызовы импортируемых функций. У меня тоже подход отличающийся от подхода других крипторов, я не делаю ничего чтобы файл был похож на легитимный, я беру легитимный файл и инфицирую его своим кодом на c++ который является шеллкодом с RIP адресацией, ещё у меня есть полноценный шеллкод на ассемблере размером всего 570 байт, который может скачать другой шеллкод из интернета и исполнить, можно не скачивать, можно добавить свой шеллкод в ресурсы и потом исполнить ассемблерным стабом, при этом ассемблерный стаб можно записать в какой-нибудь code cave, или вставлять частями по файлу вместо бесполезных байт между функций. В общем, подходов можно придумать много как ты понимаешь, для попытки обхода runtime детектов можно сделать HALO'S gate, дллку считать через indirect system calls, можно реализовать LoadPE, который грузит файл в другой процесс и там уже исполняет. Вот, можешь почитать об упаковщиках в целом они чем-то схожи с крипторами, пускай у них и разные цели
Ссылка скрыта от гостей
Ссылка скрыта от гостей