Защита с паролем
Принцип: Изменение определенного количества байтов начиная с заданного. Изменяемые области в формате "смещение - длина": 1F8 - 4, 220 - 4. Кодирование 37 байтов начиная с 3ВB (включительно).
Поведение UPX при декомпрессии Ошибка "CantUnpackException: file is modified/hacked/protected; take care!!!".
Cнятие защиты Возможно в UpxVis при наличии пароля, без пароля затруднительна.
О способе
В этом способе, так же как в защите затиранием убираются по четыре байта начиная со смещений 1F8 и 220 чтобы при поверхностном взгляде не было видно следов работы UPX. Уникальная область же (37 байтов начиная со смещения 3DB), кодируется при помощи введенного пользователем пароля. Без ее восстановления декомпрессия не может быть произведена.
Уникальная область заголовка файла file1.exe (простое сжатие).
000003D0 00 00 00 00 00 00 00 00 00 00 00 31 2E 32 34 00 ...........1.24.
000003E0 55 50 58 21 0C 09 05 07 A8 09 45 A6 BF 37 AF 89 UPX!......E..7..
000003F0 C4 08 07 00 00 8E 02 00 00 9E 06 00 26 16 00 4C ............&..L
Закодированная уникальная область заголовка файла file1.exe (сжатие и защита с паролем).
000003D0 00 00 00 00 00 00 00 00 00 00 00 9E 97 A5 62 68 ..............bh
000003E0 86 81 86 93 81 6A 72 70 6A 36 FE 8F 6B 59 FA 85 .....jrpj6..kY..
000003F0 25 75 70 73 25 F5 33 31 2E 10 7B 61 93 7F 73 96 %ups%.31..{a..s.
С учетом того, что закодированные байты содержат информацию о первоначальной уникальной области, эта защита менее надежна защиты затиранием, хотя ее снятие также маловероятно. Защита может быть снята при использовании метода перебора паролей (brute-force). Время взлома этим методом зависит от длины пароля и симлов, из которых он состоит. Чтобы увеличить время предпологаемого взлома, надо использовать длинные пароли (имеет смысл длина пароля до 37 символов, состоящие из маленьких и больших кирилических и латинских букв и специальных символов. При снятии защиты добавляются 4 стертых байта на смещениях 1F8 и 220, а также декодируется уникальная область.
В предпоследнем
Защита затиранием
Принцип: Изменение определенного количества байтов начиная с заданного. Изменяемые области в формате "смещение - длина": 1F8 - 4, 220 - 4, 3DB - 37.
Поведение UPX при декомпрессии Ошибка "CantUnpackException: file is modified/hacked/protected; take care!!!".
Cнятие защиты Весьма затруднительно, средствами UpxVis и других программ невозможно.
Данный способ заключен в затирании нулевыми байтами трех областей в заголовке файла. Для того, чтобы файл с виду не казался сжатым UPX затираются по 4 байта начиная со смещения 1F8 и смещения 220 (байт, находящийся на указанном смещении является первым байтом области). Затем затирается область в 37 байтов, начиная со смещения 3DB (включая данный байт). Сложность снятия этой защиты заключается в том, что последняя область является уникальной, т.е. в разных файлах эта область разная.
Принцип: Изменение определенного количества байтов начиная с заданного. Изменяемые области в формате "смещение - длина": 1F8 - 4, 220 - 4, 3DB - 37.
Поведение UPX при декомпрессии Ошибка "CantUnpackException: file is modified/hacked/protected; take care!!!".
Cнятие защиты Весьма затруднительно, средствами UpxVis и других программ невозможно.
Данный способ заключен в затирании нулевыми байтами трех областей в заголовке файла. Для того, чтобы файл с виду не казался сжатым UPX затираются по 4 байта начиная со смещения 1F8 и смещения 220 (байт, находящийся на указанном смещении является первым байтом области). Затем затирается область в 37 байтов, начиная со смещения 3DB (включая данный байт). Сложность снятия этой защиты заключается в том, что последняя область является уникальной, т.е. в разных файлах эта область разная.



Поиск
Друзья
Администрация