eXeL@B —› Основной форум —› как покрывают быков - обсудим тему?! |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 08 апреля 2006 16:38 · Личное сообщение · #1 вот один забавный прием взлома. 1) прогоняем программу через трейсер, вводим правильный параль (не окончена дата триала) 2) прогоняем программу через трейсер, вводим _не_правильный параль (окончена дата триала) 3) получаем два лога трейсера, которые в чем-то схожи, а в чем-то различны методика взлома сводится к поиску различий: * решение для "богатых" =================== берем любой coverage-инструмент (например, плагин для ида, www.hexblog.com/2006/03/coverage_analyzer.html) или numega coverage или другие инструменты для измерения покрытия. сравниваем покрытие до и после оконочания триала, делаем выводы, мотаем на ус. * решение для "бедных" ================== берем ollybdg, грузим программу (допустим demo-simple.exe), говорим debug -> open or clear trace, view -> run trace; F10 -> log to file; CTRL-11, и дождавшись "enter password" вводим _не_ правильный прароль типа fuck off теперь нажимаем Ctrl-F2 для рестарта дебагера, говорим view -> run trace; F10 -> clore file F10 -> log to file; CTRL-11, и дождавшись "enter password" вводим правильный прароль типа nezumi говорим view -> run trace; F10 -> clore file ок. мы получили два файла, пусть это будет 1.log и 2.log. * как сравнивать файлы ================== берем утилиту windiff (входит в ms vc и еще хрен знает куда), выбираем файлы, говорим [expand] и жем F8 для поиска изменнений. вот, смотрите, что мы нашли: (см. аттач). это и есть тот условный переход, который рулит ;))) в отсуствии windiff (ну что за срань?! юниховый diff намного лучше) с некоторой черезжопицей файлы можно сравнивтаь и FC.EXE. а вообеще, но "науке" надо написать несложную программу, которая берет EIP адреса, пройдеденные файлови ложит их в базу (для ускорения поиска можно использовать двоичное дерево), а затем показывает какие адреса _НЕ_ совпадают в обоих файлах. вот такой прием взлома. мыщъх пользуется им уже давно, но не видел, чтобы он был где-то описан, вот и решил описать. критика, замечания, дополнения - только приветствуются ff2b_08.04.2006_CRACKLAB.rU.tgz |
|
Создано: 08 апреля 2006 16:43 · Личное сообщение · #2 |
|
Создано: 08 апреля 2006 16:53 · Личное сообщение · #3 |
|
Создано: 08 апреля 2006 16:58 · Личное сообщение · #4 |
|
Создано: 08 апреля 2006 17:02 · Личное сообщение · #5 |
|
Создано: 08 апреля 2006 17:06 · Личное сообщение · #6 |
|
Создано: 08 апреля 2006 17:11 · Личное сообщение · #7 Vedrus 1] я там не только про пароль говорил, но и про окончания триала ;) 2] правильный пароль можно вытащить из осла ;) а потом отломать его проверку напрочь *** ХАКЕРАМ ************************************************ *** в основном это, конечно, на триальные защиты расчитано. *** пароль использовался в качестве демонстрационного приммера *** я просто хотел показать, что сравнение "трасс" и "покрытия" *** зачастую облегчает взлом, особенно если "пароль" в скрытом *** виде записан на каком-нибудь носителе, например CD-ROM, *** тогда сравнивания трассы легального диска и его "копии" *** мы можем найти с какого момента программа идет не туда ;) #### ЗАЩИТНИКАМ ################################ ### чтобы вас было сложнее ломать, проверки должны идти ### в случайное время из случайных мест, тогда этот метод лажает ;) ### только меня никто не слушает ;)) -= ALEX =- так я не понял, нарушил ли я правила и если да, то какие?! |
|
Создано: 08 апреля 2006 17:14 · Личное сообщение · #8 |
|
Создано: 08 апреля 2006 17:14 · Личное сообщение · #9 |
|
Создано: 08 апреля 2006 17:16 · Личное сообщение · #10 |
|
Создано: 08 апреля 2006 17:17 · Личное сообщение · #11 -= ALEX =- coverage - _МОЩНЫЙ_ инструмент взлома, если у нас есть два прогона программы, в одном из которых она еще работает (не кончился триал, вставлен ключевой диск...), а в другом уже нет.... coverage - переводится как "покрытие", ну а под пирацетам (который строит новые ассоциации ;_) у меня покрытие ассоцируется с быками ;_) точнее с телками ;_) |
|
Создано: 08 апреля 2006 17:19 · Личное сообщение · #12 |
|
Создано: 08 апреля 2006 17:19 · Поправил: SeDoYHg · Личное сообщение · #13 |
|
Создано: 08 апреля 2006 17:20 · Личное сообщение · #14 Vedrus да параоль там приведен там в качестве примера.... реально это работает на триале, привязке к оборудованию, ключевым дискам, и.... возвращаясь к тем же паролям... если тебе известен оригинальный пароль, но ты хочешь найти его точное место проверки в программе и выломать его,то!!! *** очень многие программы проверяют пароль из нескольких мест, *** и потому стандартные приемы взлома не срабатывают, а покрытие *** в этом случае _самое_то__ |
|
Создано: 08 апреля 2006 17:25 · Личное сообщение · #15 Asterix я в курсе, но я ж не просто так на него подсел. иначе воооще работать не могу... SeDoYHg еще раз "ключик" был дан для примера, ну что вы на нем зациклились. пароль необязательно вводится с клавы (это лишь для упрощения), он может быть считан с носителя "хитрым методом" или путем привязки к оборудованию... блин... это просто я свои мысли выяснить не могу, потому что сейчас под препаратом, голова как у винни-пуха. лучше давайте обсудим сам метод ;) |
|
Создано: 08 апреля 2006 17:41 · Личное сообщение · #16 |
|
Создано: 08 апреля 2006 17:50 · Поправил: SeDoYHg · Личное сообщение · #17 elraton Ну как свои мысли прояснишь, так приходи ... Вот прожка с триалом, при запуске читает запись в реестре или в файле, и читает она его одинаково, хоть прошел у неё триал, хоть нет, на этом и основана возможность отлома после окончания триала 8). Так что, то ли мы тебя не понимаем, то ли ты себя сам. Хотя прога может сделать еще одну пометку чтоб вообще не запускаться по окончанию триала, и тогда измениться её работа. Вариантов много, так что, по старинке верней. ----- Все говорят что мы вместе. Но не многие знают в каком. |
|
Создано: 08 апреля 2006 17:52 · Личное сообщение · #18 elraton пишет: мыщъх пользуется им уже давно, но не видел, чтобы он был где-то описан, вот и решил описать. Угу у меня такие странные мысли возникали тоже, только незнание матчасти олискрипта спасло мир от появления подобного скриптоса. как видно ты обошелся без него ;) всеравно респект за нестандартный подход. |
|
Создано: 08 апреля 2006 17:59 · Личное сообщение · #19 |
|
Создано: 08 апреля 2006 19:03 · Личное сообщение · #20 |
|
Создано: 08 апреля 2006 19:12 · Личное сообщение · #21 |
|
Создано: 08 апреля 2006 19:20 · Личное сообщение · #22 SeDoYHg > Хотя прога может сделать еще одну пометку чтоб вообще не запускаться по окончанию триала, > и тогда измениться её работа. Вариантов много, так что, по старинке верней. ^^^^^^^^^^^^^^^^^^^^^ вот на это я и налегаю ;) вот на это я и упирраю ;) _найти_РАЗНИЦУ_в_трассах_прогонов_программы_ вот очень грубое объяснение: 1:if (check_user_valid()) 2:{ 3:go_to_work(); 4:} 5:else 6:{ 7:fuck_off_and_exit(); 8} инструмент для изменения покрытия (неважно какой) покажет, что в случае "защита ок" покрытыми будут строки 1-4, а строки 5-8 останутся _НЕПОКРЫТЫМИ_ в случае, когда "защита не ок", строки 2-4 _НЕ_БУДУТ_ покрыты, а покрытыми будут строки 5-8!!! то есть инструмент для измерения покрытия покажает _изменения_ в двух прогонах. и чем сложее и навореченнее алгорити защиты, (сто проверок в десяти местах), тем полезнее покрытие!!! методы "по старинке" испытывают большие трудности с поиском _всех_ проверок. кстати, когда-то давным-давно, когда я еще не знал кто такой ильфак, а ида работа только под дос, у меня были две версии старая (с ключом) и новая (без ключа), именно покрытие позволило установить общий принцип как ида реалигрирует на приуствиие/отсуствие ключа и его валидность... после чего новую верисю было ломать намного проще.... именно покрытие позволяет обнаружить защитный код!!! all всем, кто говорит "если у нас есть ключ...." если у нас есть ключ, то предложенная методика позволяет быстро локализовать процедуру проверки и либо написать свой кей-ген либо выломать ее к чертовой матери... особое внимание обращают на то, что я не упираю на универсальность. просто _еще_один_ метод взлома в копилку (для тех кто его не знал), иногда он оказывается эффективние всех остальных... кстати, не помешало бы создать что-то вроде faq "классические методы взлома в примерах" ;) |
|
Создано: 08 апреля 2006 19:25 · Личное сообщение · #23 Nimnul # Есть еще один способ локализовать место проверки, введя два неправильных ключа # разной длинны. В логах будет различие только в том месте где происходят определенные # манипуляции с ним. не согласен. то есть согласен, но.... если ключи предварительно копируются в лок. переменные, в логах _уже_ будут изменения, которые к защите никак не относятся. я пробовал эту методу.... в демонстрационных "краяк-ми" она работает на ура, но вот в современных программах... тем не менее, спасибо тебе. я как-то упустил это. сейчас сяду писать фак. твой совет очень помог! а вообще, люди... э.... такой вопрос... если я свои статьи буду предварительно обсужать на форме не будет ли на меня народ наезжать, что типа... и так далее по тексту...... я же ведь не за деньги совсем работаю, а как это ни банально - за идею а редакторам один хрен разница - получилась ли статья полной или в ней много "дыр" и "косяков", им главное общая структура и стилистика... |
|
Создано: 08 апреля 2006 19:28 · Личное сообщение · #24 |
|
Создано: 08 апреля 2006 19:30 · Личное сообщение · #25 |
|
Создано: 08 апреля 2006 19:41 · Личное сообщение · #26 elraton пишет: если ключи предварительно копируются в лок. переменные, в логах _уже_ будут изменения, которые к защите никак не относятся. Почему это? Они будут копирываться в локальные переменные в обоих случаях, различие будет лишь в циклах обработки, принцип ArtMoney рулит сейчас сяду писать фак Лучше напиши плагин к ольке ----- have a nice day |
|
Создано: 08 апреля 2006 19:41 · Личное сообщение · #27 Я когда ещё только начинал заниматься крэкерством разработал такой мега-метод, вот так я рассуждал тогда: Так как вся регистрация в итоге причется в jz/jnz, почему бы не просканить весь exe на поиск 74h и пропатчить каждое найденное место на 75h...ну получится там штук 100 экзешников разных на выходе и надо просто их будет все по очереди запустить и проверить какой сломался правильно. ----- Всем не угодишь |
|
Создано: 08 апреля 2006 19:50 · Поправил: Hellspawn · Личное сообщение · #28 Bad_guy у меня пару лет назад были подобные мысли может не много не в тему, писал я как то скриптик для олли (дабы изучить ODbgScript) понадобилось мне отследить все обращения к одной комманде... (find reference не помогало...) ну вот и написал для своего использования... +там есть неск. полезных фич... может кому будет полезно... надо поставить бряк и не много помучить прогу, в папке появится лог... 46a9_08.04.2006_CRACKLAB.rU.tgz ----- [nice coder and reverser] |
|
Создано: 08 апреля 2006 19:57 · Поправил: Nimnul · Личное сообщение · #29 |
|
Создано: 08 апреля 2006 21:54 · Личное сообщение · #30 Nimnul не, мыщъх хочет скрипт к иде. план такой: насущим травы, надербаним грибов и будем кааайфовать.... немного более конкретно: soft-ice или olly выдает трассу программы, затем другая программа запоминает все адреса, которые были "покрыты" и передает их скрипту на ида-си, который показывает трассу выполнения в том и в другом случае. |
. 1 . 2 . 3 . >> |
eXeL@B —› Основной форум —› как покрывают быков - обсудим тему?! |