Скажите, пожалуйста, какие сегодня существуют способы противодействия дизассемблированию и отладке? Какие из них наиболее популярны и эффективны? Спасибо.
теже, что и раньше. Из них мало что пригодно для практического использования, а реально эффективные держатся в секрете
Про дизасм - элементарный XOR и ни одни дизасм не покажет кода А про отладку - универсальных технических (!!!) способов нет!!! Говорю по себе - сам долго искал. Все, что ты найдешь в инете - это антиотладка с пом. сеха. Забей на это дело. Сех обойти - как 2 байта переслать. Мое личное мнение - надо противодействовать тому, что по твоему мнению будет делать взломщик. Например, если ты предполагаешь, что на некоторые апишки могут поставить бряк, проверяй, не стоит ли в начале функции int3. Проверяй свой код по CRC - шоб в нем не было бряков или патчей. Если могут поставить бряк на доступ к памяти, постоянно обращайся к этой памяти. Причем все это желательно делать в разных тредах! Ну или с фиберами можно поколдовать Обязательное правило - проверка должна быть неявной! Т.е. не должно быть вызова ф-ии и, если eax<>0, прыжок на выход. Полученным значением в EAX можно например ксорить ключ для расшифровки. А потом, после расшифровки, проверять расшифрованный код по CRC и, если не равен, идти на выход. И пусть крякер думает, где ты изменил ключ. А если расшифровка будет в разных тредах + разные проверки, причем одновременные + большое количество факторов, влияющих на ключ... Вобщем, полный полет фантазии Еще могу посоветовать статью про сети Петри. Ищи на этом сайте. Полностью реализовать то, что в ней, мне не удалось почему-то, но идея сама по себе очень хорошая и может неплохо защитить твой код!
Да, неплохое описание. Особенно прием с rdtsc мне нравица. Только учти (по своему опыту говорю) - делай сравнение по rdtsc там, где для отладки обязательно надо остановиться. Иначе крякер может просто проигнорировать все исключения, поставив бряк только на одну функцию. В итоге, он пролетит мимо всех "ловушек". Так шо надо смотреть, де делать проверку времени
по-моему всё зря.... пишите нормальный софт, для которого цена/качество будет приемлимо. Чтобы людям проще было бы купить, а то защитит по самое нусталуй свой блокнот)
Имхо, чтоб узнать нужно попробовать поломать пару протекторов, изучить известные методы взлома, а дальше, как говорил MSoft, полный полет фантазии. Тоже правильно. Защита, как говорится, от дурака; кому надо - поломают... А если продукт "стоящий", его поломают сразу-же, но и спрос будет большой! Кстать, заметили, у "лидирующих" фирм никаких анти-отладочных фитч, протекторов и т.п нету!(лично не ковырял, но вроде нету) Взять Nero, Photoshop, и.т.д. Имхо, брать надо качеством, а не защитой; защиту сломают, а качество останется...
Ага, берите любой протектор и ковыряйте в лоб в Ида, начиная от EP(а в некоторых от первого callback'а tls) и до OEP, в финале, если дойдете, у вас будет полный набор трюков )
Asterix "Ковырять" нужно с мануалов, которых не мало, а там есть опыт... Я имел в виду, если знать как ломать, будешь знать как налаживать... Имхо - хочешь научится защищать - научись атаковать.
А как ты собираешь сломать, ну например, защиту с сэх, если ты никогда не сталкивался с сэхом и не подозреваешь, как все это работает и что это умеет??? Имхо надо сначала узнать, какие методы защиты применяются в принципе и их суть - как они работают. А тока потом ковырять протекторы и смотреть, как эти методы применяются на практике. Иначе увидишь xor eax,eax и думай, антиотладка это или нет Ну это я образно
Просто я, например, еще не видел нормального мануала по защите. Я увлекался в свое врея взломами, у меня есть куча протекторов и статей по их снятию, но систематизированного материала нет. Кроме того, исползуемые методы довольно часто очень примитивны. Я читал методы аспротекта - там все настолько просто!.. Хотя взломать и не получается. Поэтому я поддерживаю инициативу Lamobot по поводу разделения общего опыта защит программ на этом форуме