Comments 76
UFO just landed and posted this here
Самая интересная и крутая защита, которую приходилось отламывать:
Прога под дос, переходит в защищенный режим, делает кучу телодвижений с таблицами дескрипторов, попутно распаковываясь, затем читает определенные сектора HDD через порты. Время: две недели почти круглосуточно, т.к. фактически приходилось эмулировать все действо в Win SoftICE. Назначение софта: некая оболочка для работы с швейным оборудованием.
Прога под дос, переходит в защищенный режим, делает кучу телодвижений с таблицами дескрипторов, попутно распаковываясь, затем читает определенные сектора HDD через порты. Время: две недели почти круглосуточно, т.к. фактически приходилось эмулировать все действо в Win SoftICE. Назначение софта: некая оболочка для работы с швейным оборудованием.
У меня тоже есть свой опыт «самой крутой» ненавесной защиты. Но описать ее кейгенинг в статье просто нереально, т.к. будет множество отсылок на «набитую руку» и «намыленный взгляд».
В каком году это было?
Возможно ли было заэмулировать всё это дело в Bochs, к примеру? (там есть встроенный отладчик)
Возможно ли было заэмулировать всё это дело в Bochs, к примеру? (там есть встроенный отладчик)
такое и защитой-то язык не поворачивается назвать. уж очень громкое название статьи :)
Мне тоже непонятно, почему автор решил открыть тут филиал кряклаба для самых маленьких. Таких статей базилион на профильных сайтах. Но если пипл хавает, то пусть будет.
Не так уж и много статей по кейгенингу. Их раз-два и обчелся.
Давайте я поясню почему я к вам придираюсь. Мне кажется, что на хабр следует писать статьи, в которых описывается что то новое и эксклюзивное. Вот ВМПрот, например, еще публично никто не разобрал, это было бы интересно. А такие вот новичковые статьи про патчинг, кейгены из CRC32, которых реально сотни, я считаю не совсем тут к месту.
Дайте мне в личку хоть одну статью про "кейгены из CRC32". Тогда я с вами соглашусь.
И почему новая статья о процессе кейгенинга известного продукта не является «новой и эксклюзивной»?
И почему новая статья о процессе кейгенинга известного продукта не является «новой и эксклюзивной»?
exelab.ru/art/?action=list&f=8 Выбирайте на свой вкус. Куча статей о кейгенах к реальным известным продуктам. Продуктов много, а статей об интересных защитах единицы
Читал я эти статьи. Не все из них простые для понимания и не ко всем из них уже можно достать ломаемый софт. Затем, я решил воспользоваться новыми (с 2005 года — даты последней статьи) представившимися возможностями в плане софта: IDA Pro (именно статья, в которой используется IDA Pro), HexRays, возможность втиснуть скриншоты. На exelab все статьи чисто текстовые.
VMProtect публично никто не хочет разбирать лишь потому, чтобы софт, защищенный им, можно было ломать, не опасаясь выхода новой версии протектора. Собственно, так со многими навесными защитами и происходит, если они достаточно тяжелые для снятия.
У нас больше всего не расскрывают эти знания лишь потому что на этом можно рубить бабло. )
А вот вы могли бы на пальцах объяснить, что такого делает VMProtect, что его настолько сложно взломать?
Ну то есть в программе всё равно где-то должна быть проверка вроде if (key.IsValid()), где можно всегда возвращать условный true.
Очевидно, что это не так, но в чём сложности и как именно запутывают не осознаю.
Ну то есть в программе всё равно где-то должна быть проверка вроде if (key.IsValid()), где можно всегда возвращать условный true.
Очевидно, что это не так, но в чём сложности и как именно запутывают не осознаю.
И много в последнее время на Хабре нового и эксклюзивного? Внезапно — для меня этим оказались две статьи DrMefistO.
Почему вы отсылаете людей на всякие непонятные профильные ресурсы, если все отлично (и в тему) расписано тут?
Почему вы отсылаете людей на всякие непонятные профильные ресурсы, если все отлично (и в тему) расписано тут?
Туториалы по взлому — тема скользкая. Наверняка рано или поздно этот пост увидит и создатель игры (кто-нибудь ему/им ссылку-то точно скинет на Гугл Транслейт). И тогда это приобретет неприятный оттенок. Можно исследовать что угодно, но не стояло выкладывать алгоритм генерации на Хабр — это мерзко. Статья могла остаться интересной и без него.
А по поводу самой защиты — соглашусь с тем, кто сказал, что её тут и нет вовсе. Разработчики достаточно наивно подошли к этому вопросу. С верой в лучшее, так сказать.
А по поводу самой защиты — соглашусь с тем, кто сказал, что её тут и нет вовсе. Разработчики достаточно наивно подошли к этому вопросу. С верой в лучшее, так сказать.
Вы правы. Поэтому некоторые моменты я сознательно опускал, чтобы прям целиком не выкладывать работающий код.
Но, в свое оправдание, я могу сказать, что авторам писал еще давным давно, с той целью, чтобы они улучшили алгоритм. Плюс, ажиотаж к игре прошел.
Но, в свое оправдание, я могу сказать, что авторам писал еще давным давно, с той целью, чтобы они улучшили алгоритм. Плюс, ажиотаж к игре прошел.
Пфф, есть мнение, что наличие кряка на продажах не особо отражается. Для массового софта.
К тому же rip этого лимбо на любом торрент-трекере можно найти и даже кейгеном пользоваться не придется.
К тому же rip этого лимбо на любом торрент-трекере можно найти и даже кейгеном пользоваться не придется.
Для этого существуют crackme и keygenme. Можно найти уровень защиты на свой вкус, не затронув ничьих интересов.
В моем понимании лицензионная защита — это то, каким образом сделана лицензионная система в программе.
Покупайте хорошие инди игр, не ломайте их. Маленькие независимые разработчики игр, все же, в первую очередь думают, как игру сделать, а не защиту похитрее написать. Говорю от лица инди гейм девелоперов. :)
Вот статья про взлом защиты какого-нибудь энтерпрайз софта была бы намного интереснее и циничнее имхо.
Вот статья про взлом защиты какого-нибудь энтерпрайз софта была бы намного интереснее и циничнее имхо.
Я полностью с вами согласен! Но, опять же, цель не в том, чтобы обидеть разрабов (им я писал, но ответа не получил), а чтобы кто-то не сделал это с плохой целью (например, барыженье ключами).
Можете сразу от интересного к полезному перейти — предложить разработчикам методы улучшения защиты ))
Ответа на мое письмо, отправленное разрабам еще 12.04.13, я не получил. Значит улучшать защиту они не хотят. Да и смысла нету уже: все кто хотели, купили и сыграли.
Я думаю, что они и без вас прекрасно понимают, что их игру легко сломать и не пытались это решить, в надежде, что найдутся люди, которые принципиально купят, даже если кряк будет лежать по соседней ссылке.
В любом случае, статься достаточно интересная, хоть и косвенно поощряет не самые порядочные пути в жизни.
В любом случае, статься достаточно интересная, хоть и косвенно поощряет не самые порядочные пути в жизни.
Выше в комментариях я встретил упоминание что это не защита и т.д.
Так вот что я хочу сказать, если Вы прочитали просто много статей про обход защиты и Вам кажется что это слишком просто, то попробуйте на примере автора обойти своими ручками ходить одну защиту, даже самую простую.
Автору спасибо, т.к. эта тема очень специфическая и очень интересная.
Так вот что я хочу сказать, если Вы прочитали просто много статей про обход защиты и Вам кажется что это слишком просто, то попробуйте на примере автора обойти своими ручками ходить одну защиту, даже самую простую.
Автору спасибо, т.к. эта тема очень специфическая и очень интересная.
А если человек делает вывод не по прочитаным статьям, а по реальному опыту, тогда что?
Когда я начинал у меня не было интернета и статей ) а были диски с варезом и в каком-то из них было пару хтмл о отладке и патчинге винрара выдраных с какого-то сайта, пропатчил по ней винрар, немного понял суть, пропатчил вторую, третью,… программу. Потом появился кое какой интернет и желание кейгенить, решил попробовать на простеньком кейгенми, алгорит понимал, но как обратить нет, создал тему на кряклабе (одна с первых :) ) мне там объяснили (да, тогда еще там помагали новичкам :) ) я снова понял суть, и снова много практики во время которой постигаешь новые приемы и техники, всё. )
А я начинал вообще с перевода консольных игр на русский язык. Отсюда появилась тяга к реверсу.
Дальше: статьи кряклаба, крякмисы… Писал много статей по патчингу популярных программ.
А затем я понял, что патчи — не тот уровень уже. Надо бы и кейгены научиться делать. Так я и написал свой первый кейген.)
Столько воды утекло.
Потом, списавшись с одним челом по поводу ArtMoney (о которой я тоже как-нибудь напишу), я решил попробовать вступить в одну реверс-команду. Так я и стал участником той тимы, которая чуть ниже в комментах засветилась на скрине)
Дальше: статьи кряклаба, крякмисы… Писал много статей по патчингу популярных программ.
А затем я понял, что патчи — не тот уровень уже. Надо бы и кейгены научиться делать. Так я и написал свой первый кейген.)
Столько воды утекло.
Потом, списавшись с одним челом по поводу ArtMoney (о которой я тоже как-нибудь напишу), я решил попробовать вступить в одну реверс-команду. Так я и стал участником той тимы, которая чуть ниже в комментах засветилась на скрине)
Поддерживаю всех поддерживающих автора ) Спасибо за статью. Если кому — то просто, то не стоит заходить в топик.
Интересен не сам взлом как таковой — а как логическая задача. Интересно почитать ход мыслей, посмотреть примеры пользование инструментарием.
Интересен не сам взлом как таковой — а как логическая задача. Интересно почитать ход мыслей, посмотреть примеры пользование инструментарием.
Скажите, а возможно ли модифицировать функцию sub_48D410 чтобы она возвращала всегда корректность ключа, так ли создаются таблетки?
Статья очень интересная, спасибо.
Статья очень интересная, спасибо.
Именно так и создаются патчи/патченые ехе-шники.
Да, можно, и так делают самые простые патчи.
У этого способа есть один минус — меняется исполняемый код. Т.е. из другого места можно просканировать собственный код и понять, правили его или нет.
К примеру, если где-то в дальше игре есть код, который вычисляет MD5 участка кода с защитой, и полученным числом расшифровывает какие-нибудь ресурсы, которые используются ближе к концу игры, то это может вызвать некоторое недовольство воспользовавшихся патчем (а обычно просто проверяют — запустилось или нет). Кстати, такое поведение вполне может стимулировать продажи игры.
Кстати, ещё можно вызывать функцию CheckSerial() с заведомо неправильным номером и, если она вернула True, считать код пропатченным и действовать соответственно.
У этого способа есть один минус — меняется исполняемый код. Т.е. из другого места можно просканировать собственный код и понять, правили его или нет.
К примеру, если где-то в дальше игре есть код, который вычисляет MD5 участка кода с защитой, и полученным числом расшифровывает какие-нибудь ресурсы, которые используются ближе к концу игры, то это может вызвать некоторое недовольство воспользовавшихся патчем (а обычно просто проверяют — запустилось или нет). Кстати, такое поведение вполне может стимулировать продажи игры.
Кстати, ещё можно вызывать функцию CheckSerial() с заведомо неправильным номером и, если она вернула True, считать код пропатченным и действовать соответственно.
Именно поэтому кейген всегда лучше! Но он и усилий больших требует, понятное дело.
если где-то в дальше игре есть код, который вычисляет MD5 участка кода с защитой...
… и подселяет неубиваемого скорпиона :)
А я сделал реверсинг картинке :)
Я прав?
Restorator 2007 — D:\TPORT\unepic_ko\limbo\limbo.exe
Я прав?
Простенькая защита.
Не знал, что код можно так легко декомпилировать обратно в си, просто асмовый код читал сразу.
Не знал, что код можно так легко декомпилировать обратно в си, просто асмовый код читал сразу.
первым делом, как обычно, выясняем, на чем написан главный исполняемый файл.
Видим: Visual Studio 2008.
Это ещё как бы ни о чём не говорит. Вот вам, для разнообразия, крякми, который Exeinfo PE распознаётся как «Microsoft Visual C++ 9.0 — Visual Studio 2008», но написан не на VS:
CrackMeLV.7z
Кстати, сможете отреверсить пароль, который приведёт к результату, отличному от Access Denied? Ну или как минимум модифицировать исполняемый файл, так, чтобы в ответ на любой пароль получить доступ (это сильно проще)?
Вирусов там нет, деструктивных действий код не выполняет, все рантайм библиотеки приложены, исходники естественно вышлю по запросу. Пароль существует и однозначно реверсится из кода.
Это челендж?)
Челендж — если будет угодно.
Я знаю, как бы я стал ломать эту штуку (но у меня подход предвзятый, поскольку сам её и написал), но любопытно, как вы подойдёте к снаряду (если есть время недолгими весенними вечерами). Там есть пара забавных мест. Зубодробительных алгоритмов для проверки пароля и обфускаций там не заложено, а изюминка — именно в использованном, скажем так, несколько нетрадиционном, средстве разработки.
Я знаю, как бы я стал ломать эту штуку (но у меня подход предвзятый, поскольку сам её и написал), но любопытно, как вы подойдёте к снаряду (если есть время недолгими весенними вечерами). Там есть пара забавных мест. Зубодробительных алгоритмов для проверки пароля и обфускаций там не заложено, а изюминка — именно в использованном, скажем так, несколько нетрадиционном, средстве разработки.
Программы идентификаторы подсказывают, чем скомпилирована программа, в первую очередь.
Что-то оно не похоже на крякми…
Ну, тут либо крякать, либо кейгенить. Вполне можно.
Я к тому что внутри много чего лишнего
Потому что на LabView
Это так. Рантайм там весьма увесистый. Собственно в коде лишнего почти нет, хотя я немного «разнёс» места, где производится нажатие и собственно сравнение. Но чтобы туда добраться, придётся продраться через дебри рантайма, да.
Чем же не похоже? Мне казалось, крякми примерно так и выглядят — ну разве что поле «Password» — его кто «Key», кто «Serial» называет. А в остальном — есть исходный код, он скомпилирован в исполняемый файл. Все библиотеки, что там в архиве — они к среде исполнения относятся (их там два рантайма). По идее их надо было инсталляторами разворачивать, но я их бросил в ту же директорию для удобства.
Если крякми с вашей точки зрения по-другому должен выглядеть — напишите как.
Бывает ещё кейгенми — там обычно два поля, связанных алгоритмом и требуется написать программку, воспроизводящую зашитый туда алгоритм.
Если крякми с вашей точки зрения по-другому должен выглядеть — напишите как.
Бывает ещё кейгенми — там обычно два поля, связанных алгоритмом и требуется написать программку, воспроизводящую зашитый туда алгоритм.
Я правильно понимаю, если игрушку защитить чем-то таким — написать кряк или ещё как-то поломать вообще не получится?
отсутвующий код или часть приложения никогда ни при каких условиях не покидает доверенные сервера
Как минимум, если это правда, приложение без доступа в инет вообще будет неработоспособно (очень сомнительная защита).
В студенческие годы пытался создать нечто подобное, но с реализацией в аппаратном устройстве со спец. FPGA процем, идея была в том что без этого спец. устройства код, даже сграбленый, будет тормозить на настольном ПК, но дальше теорий все это не ушло.
Если наврали — то как минимум одному человеку придется таки купить, ну а потом собрать «полную локальную версию» — дело техники )
Ну, я так понял что защита для сетевых игрушек, которые без инета и так не работают нормально
Как правило, в сетевых игрушках и так легко вычислить\забанить левых пользователей не особо изощряясь, поэтому польза от такой навороченной защиты сомнительна. Неизвестно, есть ли у них вообще поддержка js и пр. В примере на сайте у них «Сапер» и Notepad++ на сях, и метки именно в код в VS встроены, похоже они ориентированы на защиту «локального» десктопного софта.
Но вообще все это попытки продать то, что умерло 10 лет назад, под новым соусом…
Но вообще все это попытки продать то, что умерло 10 лет назад, под новым соусом…
Про js не знаю, на сайте вроде ничего нету про такое. Про игрушки знаю только что тренировались на Doom 3 и на TTD, вроде норм работает.
А что 10 лет назад умерло, если не секрет?
А что 10 лет назад умерло, если не секрет?
Выше правильно заметили про ассиметричную криптографию. Смотрел как-то софт, а там обычная RSA, простенько и со вкусом. Повезло, что 256-битная оказалась, удалось разложить. А начиная самое позднее с 1024 можно тушить свет.
Sign up to leave a comment.
Исследование защиты игры Limbo. Кейген