Создано: 26 декабря 2015 10:39 New! Цитата · Личное сообщение · #1
Чувствую не дождусь я ответов с crackmes.de, поэтому попробую спросить у местного комьюнити. Сразу оговорюсь я не пишу "новый протектор" но хочу чтобы кто-то проанализировал мою небольшую наработку. Выполнена в виде кейгенми. Меня устроит (как результат атаки на приложение) обычная валидная пара (логин-серийник). Ну а если кто-то сможет реализовать полный кейген - даже не знаю что и сказать. Приложени сишное, при компиляции забыл указать совместимость в XP (поэтому если кто на XP будет дебажить - в заголовке там с шестерки на пятерку поправьте поля MajorOperatingSystemVersion и MajorSubsystemVersion). И еще - это не результат работы навесняка - это то что выдает стандартный компилер
{ Атач доступен только для участников форума } - keygenme.zip
Добавлено спустя 30 минут Ну и суть, я сейчас по этой технике статью пишу и просто хотел в качестве примера дать подытоживающую ссылку - насколько сложен такой подход при взломе ПО. Поэтому код реализации вы в итоге увидите, но для начала хотелось бы получить какой-то анализ
Создано: 26 декабря 2015 12:27 New! Цитата · Личное сообщение · #2
я даже смотреть не буду.. логика любой ВМ.. это перенос одного кода в другой. сложность его реверса, пропорциаонально переписыванию движка. на этом ВСЕ. более продвинутые ВМ интерпритируют код в другую архитектуру.. но это ничего не меняет.. грубо говоря.. я возьму код х86 и портну в АРМ.. или Z80.. те.. типа ебитесь друзья реверсеры..но это ничего не меняет.. если реверсер стырил двиг ВМ и востановил примитивы.. да.. долго.. да нудно.. разово делать это не выгодно.. а если прот комерческий, то возможно имеет смысл
Создано: 26 декабря 2015 12:38 New! Цитата · Личное сообщение · #3
Не здесь все просто, ядро - два виртпроцессора с 1 инструкцией, эмулирующие muv, and, or, not, xor, add, shl, shr Движок родной коммерческий, (применялся и работает в моем проекте, правда в виде стековой VM) после внедрения которого AlexVel и спрыгнул с взлома (7 лет как прошло, кстати - только щас осознал . А это чуть другая архитектура которую не стыдно и в открытый доступ отдать.
Создано: 26 декабря 2015 12:45 New! Цитата · Личное сообщение · #5
unknownproject ну, этож не кракми, а все-же кейгенми Но адрес правки верный
Добавлено спустя 11 минут Года полтора назад я MsRem-овскую вм анализировал. http://habrahabr.ru/post/218887/ Свою постарался облегчить (билдил не с всеми настройками) чтобы по сложности была примерно на этом-же уровне. Так что думаю, у профи сильных затруднений возникнуть не должно (темболее антидампа и антиотладки нет в принципе).
Создано: 26 декабря 2015 13:08 New! Цитата · Личное сообщение · #7
Байт-кода как такового не увидел. Вирт. контекст - x64, переменные на стэке. Вся вм - простыня примитивных операций над переменными, стрелка пирса, дублирование проверок на ветвлениях. Видел все это уже, не интересно. Теоретически, хороший оптимизатор (я все мечтаю о таком) может это все свернуть при должной сноровке.
Создано: 26 декабря 2015 13:10 New! Цитата · Личное сообщение · #8
Как статью наваяю, думаю много где появится (в том числе и в коммерции) - особливо у новичков в защите, бездумно сующих в проект все подряд
Добавлено спустя 2 минуты Psalmopoeus Pulcher пишет: Теоретически, хороший оптимизатор (я все мечтаю о таком) может это все свернуть при должной сноровке. Пробовал оптимизатором еще на этапе реализации - не сворачивает (разве что в компиляции под арм - но это уже особенность). И да - там пирс и шеффер (чередуются).
Создано: 26 декабря 2015 14:54 New! Цитата · Личное сообщение · #11
оффтоп Rouse_ пишет: бездумно сующих в проект все подряд +1, особенно доставляет всякий софт(кстати, многий из которого работающий начиная от висты) который пытается открыть дров софтайса, антидебаг типа. код один и тот же, кочует в интернетах с начала 2000х, и не думая лепят копипаст в свои проекты
Создано: 27 декабря 2015 10:30 New! Цитата · Личное сообщение · #14
Да что там рассказывать... Простетский код размазан как масло по воде - очень много и однообразно, уцепиться, казалось бы, не за что. Поэтому я абстрагировался от примитивов и стал разбирать циклы. Сперва это были небольшие петли по подсчету ненулевых бит, добрая половина кода которых - расшифровка констант ксором в циклах для тестирования ненулевых бит, это навеяло на мысль о бинарной арифметике, а затем, когда накопилось достаточно информации, определилсь сдвиги и сложение по разрядам, огромный цикл был свернут в одну операцию умножения. Туда-сюда, ля-ля-тополя, по чуть-чуть освоился.
Ранг: 520.5 (!) Статус: Участник Победитель турнира 2010
Создано: 27 декабря 2015 11:38 New! Цитата · Личное сообщение · #16
Psalmopoeus Pulcher сильно в теме по поводу ВМ. Помнится его задание во втором туре контеста 2010. https://exelab.ru/f/contest/ В описании задания прямо было написано "Алгоритм проверки довольно прост, чего не скажешь о виртуальной машине, на которой он исполняется ;)".