Цель - криптануть прогу, вдруг АВ перестанут её опознавать. Тренируюсь на calc.exe 1. Подправил его через LordPE, чтобы все секции были writeable. 2. Открыл в ollydbg, прешел на entrypoint. Запоминаю оттуда несколько байт и вместо них пишу переход на расшифровщик. Расшифровщик я сунул пролистав код вниз на место таких байтов: Код (Text): 010136D2 0000 ADD BYTE PTR DS:[EAX],AL 010136D4 0000 ADD BYTE PTR DS:[EAX],AL 010136D6 0000 ADD BYTE PTR DS:[EAX],AL 010136D8 0000 ADD BYTE PTR DS:[EAX],AL 010136DA 0000 ADD BYTE PTR DS:[EAX],AL 010136DC 0000 ADD BYTE PTR DS:[EAX],AL Дополнил его заранее записанным кодом с entrypoint и переходом на следующую инструкцию в entrypoint. Получилось типа: Код (Text): 010136D2 B8 7C240101 MOV EAX,0101247C ; расшифровываем начиная со следующей инструкции после перехода на расшифровщик 010136D7 8030 12 XOR BYTE PTR DS:[EAX],12 010136DA 40 INC EAX 010136DB 3D BE260101 CMP EAX,010126BE 010136E0 ^7E F5 JLE SHORT 010136D7 ; пока не дойдем до 010136D7. Это от балды взято. 010136E2 90 NOP ; для визуального отделения 010136E3 6A 70 PUSH 70 ; код который был затерт на entrypoint 010136E5 68 E0150001 PUSH 010015E0 010136EA 90 NOP 010136EB ^E9 8CEDFFFF JMP 0101247C ; переходим на расшифрованный код Это работает (конечно если не забыть сначала шифрануть файл от 0101247C до 010136D7) Но вопрос такой (т.к. мне не совсем ясна концепция секций в PE): Куда именно мне надо сувать код расшифровщика? Откуда и покуда надо шифрануть, чтобы грамотно всё было?
антивирусы перестали опознавать калькулятор??? )) в последнюю секцию, в межсекционное пространство, в заголовок, в пустое место в конце секции, в новую секцию... вроде ниче не пропустил. не забудь про эмуляторы и авиру
Работает - в смысле калькулятор запускается. Ну и Ikarus стал его опознавать как Virus.Win32.Zezal.a Вот с этим проблема. Как найти эти места? Авира молчит. Панда и Нортон меня волнуют.
она проверяет файлы не по сигнатурам, а на предмет правильности РЕ. При ручном крипте придется учитывать
ну к примеру, больше 1 секции с атрибутами кода/исполнения - это плохо. Атрибут записи на секции код - это плохо
может по сигнатурам сравнивает - хз но факт в том, что авира палит именно по признакам упаковщика, а не сигнатурам
Только про DEP не надо забывать Проверяет вхождение совокупности флагов в допустимый диапазон для конкретного пакера. Шаг в сторону - алерт. Зависит от других флагов, но вполне может прокатить. авер как авер, че в нем особенного кроме параноидального чека PE формата? Удовлетвори ее потребности и забудь про нее, в отличие от того же KAV или DrWeb, где количество треша имеет значение
в дос стуб. он есть и он нужен и без него живется отлично + можно указать в линкере образ этого стуба где можно влепить и дос и вынь части.