Хакер писал(а):Дебильный антивирус, однако.
Ну почему же сразу дебильный?
Все-таки, он на всякий случай должен быть. Лучше перебдеть, чем недобдеть, и потом расхлёбывать последствия. И это может говорить о его качестве, наоборот.
Здесь 2 не очень хороших момента:
1. Программа используется только у себя. Тогда при переименовании или перемещении файла каждый раз приходится вносить исключения.
2. Моей программой решит воспользоваться кто-то еще. А если у него на компе будет иметься антивирус, который среагирует - появится повод для недоверия как к разработчику (мол, ты хочешь заразить мой комп и причинить мне вред).
Поэтому мое мнение - постараться делать так, чтобы ничего не срабатывало совсем. И дело здесь даже не в тех, кто разрабатывает - а в разных потенциальных пользователях, у которых могут быть разные антивирусы и разные мнения относительно их реакций. Вдруг придется запустить программу на чужом компе...
Хакер писал(а):На установщик WINNT.EXE оно тоже так реагирует?
Имелся ввиду исполняемый файл WINNT.EXE из папки I386 дистрибутива Windows XP? Нет, на него не реагирует...
В общем, при
/ALIGN:0x10 и
/MERGE:.data=.text файл имеет размер
5 744 байт.
Если изменить выравнивание на 0x200, файл будет
6 144 байт. Однако при дальнейшей запаковке с помощью upx ошибка будет:
CantPackException: object alignment too smallЕсли изменить выравнивание на 0x400, файл будет
7 168 байт. Upx его успешно упаковал (
5 120 байт), однако такой файл уже не запускается (пишет, что не является приложением Win32).
Если оставить только
/MERGE:.data=.text, файл будет
12 288 байт, однако при запуске будет "Инструкция по адресу "0x734006a9" обратилась к памяти по адресу "0x00401074". Память не может быть "written".". А теперь сюрприз: если его запаковать upx - будет
5120 байт и успешный запуск!
Без флагов файл будет
16 384 байт, после upx -
5 120 байт, запускается нормально.
Любопытные, однако, получились результаты исследования
Хакер писал(а):богомерзких пакеров
А почему богомерзских? Если на это есть свои причины так считать, то какие? Результаты даже немножко лучше вышли. При этом перевод в P-код не рассматривался (быстродействие и безопасность все-таки дороже), вырезание ресурсов и иконок тоже (без них будет не очень красиво на мой взгляд, да и такой "лысый" файл не внушает доверия в глазах обычного пользователя).
P.S. Если все-таки скомпилировать в P-код, вырезать иконки и ресурсы, будет
8 192 байт, после upx -
3 072 байт. Если дополнительно использовать объединение секций текста и данных, а также dummy.exe - upx не сможет сжать, выдав ошибку
CantPackException: illegal exe header.