Форум — Ответы ( К темам )
? | Игорь: Прога для сжатия ехе-шников (01-04-2003 18:09:13) |
Хотелось бы сжимать ехе-шники с использованием пароля(или чего-то подобного). UPX и AsPack ведь не только пакуют, но и распаковывают(есно то что им запаковано). А не хотелось бы, чтобы кто-то посторонний мог распаковать ехе-шник. Может кто-то чем-то подобным пользуется. | |
Георгий (01-04-2003 18:37:55) | |
"А не хотелось бы, чтобы кто-то посторонний мог распаковать ехе-шник" есть проги для взлома (распаковки) ЛЮБЫХ упакованных исполняемых файлов, причём это они делают в автоматическом режиме т.е. запускаешь её, указываешь файл и тебя спрашивают, куда записать распакованный... А если в автоматическом режиме не удаётся распаковать, то грузим отладчик защищённого режима и вот оно — спустя 1,2,3,...,много часов(дней) найдено "лечение" этой защиты от распаковки в виде распакующей программы... в принципе защититься можно не показывая исходники — т.к. копаться в машинных кодах мало кто будет. | |
Игорь (01-04-2003 20:03:21) | |
Ясно, что защититься от преднамеренного и целенаправленного "взлома" сложно. Да так задача и не стоит. Случай следующий(реально столкнулся): 1. Распаковывают ехе-шник (тем же UPX, т.к. мы им паковали). 2. Изменяют в ресурсной части названия и прочее.(куча прог для этого есть). Названия меняют, например, на неприличные :( 3. Сохраняют ехе-шник и запаковывают. Вредоносного конечно ничего, но интерфейс у конечного пользователя — неприглядный. Просто кто-то поприкалывался, а для нас перед клиентом(который в программировании — есно "без руля") вышло нехорошо. Выход нашли, но он не есть удобным(размер ехе-шника не уменьшается) :( | |
Dr.Phoenix (01-04-2003 22:24:58) | |
А разве ASPack может распаковавать то, что запаковал? По моему нет.
| |
Георгий (01-04-2003 23:19:08) | |
тяжёлый случай. значит надо, чтоб при ручной распаковке спрашивали пароль? если денег на это дело не жалко, то вроде AsProtect+AsPack может это делать (хотя и их элементарно "ломают", но тут без SoftIce не обойтись) А может лучше прогу в дистрибутив с цифровой подписью? или в архив, тоже с цифровой подписью — её вроде ии придумали для обнаружения не санкционированных изменений... Кстати а какой выход нашли? | |
Игорь (02-04-2003 11:35:55) | |
— Сам AsPack не распаковывает, но где-то в инете читал, что есть проги, которые распаковывают пакованое AsPack'ом. - Выход нашли через наложение хэша на ехе-шник внутри него самого и проверки(пересчета и сравнения) этого хэша при входе в программу: 1. Объявляю глоб. константы: static const char Control[]="Any String"; static const char Hash[8]="00000000"; и собираю ехе-шник. 2. Потом другой прогой ищу метку Control и пересчитываю и пишу 16-байтный хэш в мой ехе-шник. 3. При старте ехе-шник проверяет хэш и запускается/незапускается. Для надежности проверка вставлена во нескольких местах(что совсем не накладно). Т.е. по сути получилось подобие ЭЦП(только в виде хэша)(как Георгий и говорил). Недостаток — нельзя паковать ехе-шник(а очень хотелось:)), т.к. все "перемешивается" (ни метки ни хеша не найти). Приходится архивировать и пересылать, но теперь возникают траблы с автообновлением проги. | |
Игорь (02-04-2003 11:38:17) | |
лажанулся — в пункте 2 следует читать "... и пишу 8-байтный хэш ..." Думал про одно, а написал другое :) | |
Георгий (03-04-2003 22:13:13) | |
А функция для рассчёта хэша реализована в виде макроса?
| |
Игорь (04-04-2003 17:13:00) | |
Нет, просто подключатся криптобиблиотека(она — для других целей в программе) с ф-цией хеширования(описана, как обычная экспорт. ф-ция). Хеш стандарта MD4. Расчитывает 8 или 16-байтный хэш на любой участок памяти/файл. А что в виде макроса лучше? | |
Георгий (06-04-2003 03:18:22) | |
1. функция проверки (рассчёта хеша) в одном экземпляре (т.е. в виде нормальной функции) — действия взломщика: - ищем эту функцию - меняем на что-то вроде mov eax,0 ret - в результате реально ничего не вычисляется и не проверяется, но функция говорит, что всё в порядке... 2. в виде макроса — действия взломщика: - ищем функцию (первую попавшуюся) - меняем на то, что выше написано - взломщик думает, что "в результате реально ничего не вычисляется и не проверяется, но функция говорит, что всё в порядке...", а на самом деле чуть позже (когда сработает следующая функция-макрос) опять прога не работает - если взломщик это увидит, то попробует снова найти это "новую функцию" и т.д., но обычно хулиганы останавливаются на 1 или 2-й защите, а от тех, кому деньги за взлом платят спасаться вроде и не надо... кстати лучше делать несколько вариантов макросов — чтоб обычнам поиском нельзя было найти и сразу все куски кода отключить... | |
Игорь (07-04-2003 17:46:45) | |
Спасибо за дельный совет, учту.
|