Антивирусы очень много чего не эмулируют.
допустим вам нужно закриптовать пинч возмем самый простой способ каждый байт подвергнем хором с рандомным ключом + добавим рандомное число байт это же число вставим в стаб. эвристик конечно распакует все это тогда в дело вступает анти эмуляционные трюки.
нужно заставить эмулятор пойти по ложному следу к примеру использовать такие команды о которых незнает эмулятор а программа выполнит их и пойдет по нужному пути.
вот один пример.
можно использовать сложную цепочку передачи из памяти в ммх из ммх в FPU ну а там можно к примеру в SSE далее прибавить к ним число которое тоже будет генерироваться подобным образом при этом в SSE у тебя должен получиться набор байт при вкладывании которых должна получиться команда push и байты после чего в стеке получим уже готовый ничем не эмулированный набор команд каких? ну тут уже вам решать. это один из способов сложной анти эмуляции осталось добавить генерацию использования разных ММХ SEE и FPU регистров ну и цифра которая будет прибавляться к каждому байту в SSE тем самым эмулировать будет еще сложней.
собирается этот код в обратном порядке.
к примеру конечные байты это и будет выход из бесконечного цикла,программа все это поймет и выпрыгнет а эмулятор зависнит.
р.с правда в случии с пинчем это не поможет антивирусы палят его местоположение при запуске imageBase придеться и его сменить ну и постовить заглушку DOS.
вот после этого он точно не спалиться.
хотя при запуске проактивка все равно его спалит.
Последний раз редактировалось Грот; 27.01.2009 в 06:25..