![]() |
eXeL@B —› Основной форум —› Помогите понять новичку основы защит ПО. |
Посл.ответ | Сообщение |
|
Создано: 14 января 2006 23:24 · Личное сообщение · #1 Допустим, я получил из запакованного модуля "исходник" (текст на асме), далее нашел условный переход с проверкой какого-то из значения защиты(пароль,хеш значения, ключ в реестре и тд.) шифрованного или нет... Вопрос№1: если я знаю адрес условного перехода и совсем не зна системы защиты(мне это и не важно, т.к мне достаточно будет изменить всего лишь несколько байт в hex редакторе) могу ли я взломать защиту ПО? Или не так все просто как мне кажется? Ведь ВСЕГДА в тексте листинга дизассемблерного кода будет условный переход!? Или как? Вопрос№2:В каких случаях необходимо заниматься реверсированием системы защиты, т.е когда будет недостаточно замены всего одного байта в hex редакторе? Вопрос№3: Обычной проверкой пароля или чего-то другогов листинге дизасм. является ...cmp ax,0ah, jz какой-то адрес..., если программа не проверяет контрольную сумму файла, могу ли я заменить cmp ax,0ah на что-нибудь более длиное(большее кол-во байт,добавить какую-нибудь процедуру на это место и тд, естественно, с переносом всего "ниженаписанного" ниже) с таким расчетом, что программа будет работать? Нужно ли еще что-то переписывать в дизассемблерном коде(адреса переходов и др.) при таком изменении/добавлении кода в средину? ![]() |
|
Создано: 14 января 2006 23:53 · Поправил: Halt · Личное сообщение · #2 ээх такс по 1 вопросу '' ну если ты уверен что это именно ТОТ САМЫЙ переход то конечно да..тока учти что он там даалеко не 1н )) по 2 во всех чтобы найти ТОТ самый переход или способ взломать (обойти) защиту по 3 даалеко не всегда , да можно, все адреса переходов надо будет сохранять из изменяемого места у меня складывается такое впечатление что ты еще ничего не ломал /ломал по подсказке не разобравшись чт ок чему...попробуй сам без подсказок вообще простую прогу(напиши сам на крайняк ) поползай по коду и разберись что там к чему ( не по всему конечно) а по важным сточки зрения регистрации участкам.. ![]() |
|
Создано: 14 января 2006 23:55 · Поправил: Модератор · Личное сообщение · #3 На все эти и на многие другие последующие вопросы Вам ответят книги и статьи. Читайте, читайте и еще раз читайте. Я и сам могу ответить, просто, наверное, будет рациональнее, если Вы прочтете книги, в них вы найдете куда более понятные, ясные ответы, причем не только на эти, но и на многие други, как я уже говорил, вопросы. Статьи и литературу вы найдете здесь или на васме (wasm.ru). ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
Создано: 15 января 2006 08:44 · Поправил: Bitfry · Личное сообщение · #4 1. Мир полон разнообразия. Есть защиты, основанные на разных принципах (demo, crypto и т.п.). В любом из направлений есть сильные и слабые защиты, поэтому однозначно сказать нельзя. Сегодня на рынке полно слабых защит "в один jz" (я прикрепил топик с простыми жертвами в основном разделе), но есть и такие, что распаковка обычного протектора покажется ерундой по сравнению с отвязыванием нескольких файлов от библиотеки выполняющей проверку защиты. 2. А ты пробовал вот так наугад поменять какой-нибудь байт? ;) Так или иначе, анализ нужен. Если много подводных камней, то анализ сложнее. В случае с VM (виртуальной машиной), анализ превращается в неоправданное дело, если речь идёт об одной единственной жертве. Когда программа использует кучу неизвестных заскрембленых и криптованых API в каждой из которых проверяется состояние защиты в псевдослучайном порядке, можно гарантировать, что реверс будет долгим ![]() 3. Этот вопрос неоднократно обсуждался (да можно и самому сообразить). Подменяем одну из команд (или несколько) прыжком в свободное место (почти всегда есть), там пишем утраченную команду и свой патч, затем прыг обратно. Разумеется, лучше не затирать команды типа call и в dll следить за релоками... Короче – поиск рулит. Тебе сюда: http://www.exelab.ru/kid.php http://www.exelab.ru/art/tok.php http://www.exelab.ru/f/action=vthread&forum=1&topic=2998 ----- Всем привет, я вернулся ![]() |
|
Создано: 16 января 2006 17:51 · Личное сообщение · #5 |
|
Создано: 17 января 2006 22:59 · Личное сообщение · #6 Если не возражаете,вот моё мнение по данному поводу. Ломка "наугад" очень хороший приём,я его всегда использую по банальной причине: я не умею пользоваться отладчиком.Не знаю,не получается и всё. Тем не менее это не помешало мне сломать уже около 50 программ и игр.Я использую только автоматические распаковщики,WinDasm и Hiew.Этого достаточно для взлома не очень сложной защиты. Не надо занижать самооценку.Даже на Крэклабе и на других сайтах практически нет крекеров-монстров,их раз,два и обчёлся.Большинство-такие же самоучки как и мы все.Поэтому,кто здесь новичок,а кто профи-сам чёрт не разберёт.Если даже переход исправлен неверно,прога просто вылетит с ошибкой "нет данных" и т.п. Львиная доля shareware программ не имеет достаточной защиты,основной гемморой,насколько я понял,это снять пакер или протектор.Достаточно запаковать прогу Аспром типа 2.0 и такие крекеры как я (лентяи) уже не статут её ломать...Неохота возиться ![]() По поводу теории...Я считаю,что можно перечитать кучу статей и ничего не сломаешь...Тут только ПРАКТИКА. Ломать,ломать..до потери пульса,пока прога зареганной не станет.Думать,анализировать,как бы ты сам сделал такую защиту,как в этой проге и т.д. Если программист совсем тупой был,референсы не подчистил,ординалы не использовал- приговор программе подписан: будет сломана за 1-2 дня. А если не получается,не надо унывать.Команды ассемблера однозначно интерпретируются CPU,поэтому В ЛЮБОЙ ПРОГЕ БУДЕТ ЭТОТ ПЕРЕХОД,который влияет на регистрацию. ЕГО НАДО ТОЛЬКО НАЙТИ... А чтобы легче ломать было,надо накачать сначала инструментов побольше.CRACKLAB вполне подойдёт.Правда не все проги есть по-моему... ![]() |
|
Создано: 18 января 2006 06:22 · Поправил: nice · Личное сообщение · #7 Predator Alex В топку твои советы! Ты видимо фильмов про Вандама насмотрелся, посоветуй ещё развернуть монитор, заклеить глаза переназначить клавиши и развивать интуицию. Читать, фтыкать, практиковатся, нужно стремится к проффесионализму, а не стоять на месте случайно меняя ждампы, включайте мозг! ----- Подписи - ЗЛО! Нужно убирать! ![]() |
|
Создано: 18 января 2006 08:11 · Личное сообщение · #8 |
|
Создано: 18 января 2006 08:44 · Личное сообщение · #9 Santa, мне кажется, что ты начнёшь это всё понимать, когда начнёшь читать статьи. На крэклабе просто ДОФИГА статей на разные темы. ![]() Так что дерзай! И не думай, что у тебя ничего не получится! Эта мысль так тормозит процесс изучения ассемблера (испытал на своей шкуре) ![]() ![]() |
|
Создано: 18 января 2006 11:15 · Поправил: black c0de · Личное сообщение · #10 Predator Alex пишет: Если не возражаете,вот моё мнение по данному поводу. Ломка "наугад" очень хороший приём,я его всегда использую по банальной причине: я не умею пользоваться отладчиком. "Зри в корень" (с) Козьма Прутков Разбирайся с причинами, а не с следствиями. Если ты в одном деле приучишь себя таким образом решать проблемы это может отобразиться на всей твоей жизни. ![]() |
|
Создано: 18 января 2006 20:27 · Личное сообщение · #11 Я ломаю так,как мне нравиться.Как мне удобно. Ломка наугад совершенно не подразумевает псевдослучайное изменение байт. Я имел ввиду,то что мне до лампочки сам алгоритм в общем и целом. Меня интересует только та часть кода,которую нужно патчить. Просто крекеры с манией величия хотят показать,какие они крутые,и что якобы чтобы что-то сломать надо сидеть и "фтыкать". "развернуть монитор, заклеить глаза переназначить клавиши и развивать интуицию" Вот это как раз полная чушь.Причём тут взлом,я не понимаю... На одной теории вы ничего не сломаете.ЭТО Я ВАМ ОБЕЩАЮ!!! Можно хоть год сидеть и весь форум Крэклаба,Васма и т.д. перечитывать. Бестолку.Каждый пример взлома для какой-то определённой проги расчитан. Вот я допустим,игрушки ломал с сайта Alawar.ru. Они все совершенно разные.Везде разный алгоритм проверки.И то что на cracklab.ru есть уже 10 или 15 топиков про взлом этих игр,ни один из них реально не поможет... Поэтому ВТОПКУ ДИЛЕТАНТСКИЕ МЕМУАРЫ ИЗ СЕРИИ "как я ночью ломал xxx-прогу" или "исследование очередного аспра версии 9999.0". Клаву в руки и патчить,патчить,ломать,ковырять. А читать всю реверсинговую бредятину будете на пенсии ![]() http://exelab.ruimg/smilies/s6.gif ![]() |
|
Создано: 18 января 2006 20:35 · Личное сообщение · #12 мда =) развели тут... ещё подеритесь... ну да на одной теории ты не выедедешь, практика тоже рулит... но если не читать никаких туторов и статей... то это уже бред +) как минимум надо знать асм, а узнать его не читая... как?? надо уметь обрашать со всеми инстументами, которыми располагает крекер... =) и опять же как без литературы??? а потом когда у тя появиться какая=то база знаний... ты уже сам сможешь почти во всём разобраться =) ИМХО ----- [nice coder and reverser] ![]() |
|
Создано: 18 января 2006 20:54 · Личное сообщение · #13 Predator Alex пишет: Я имел ввиду,то что мне до лампочки сам алгоритм в общем и целом. Меня интересует только та часть кода,которую нужно патчить. Очень интересно как же ты её найдешь эту часть для патча? Надо хотя бы в общих чертах понимать смысл алго, а то так можно все условные переходы править наугад. Predator Alex пишет: Каждый пример взлома для какой-то определённой проги расчитан Полная чушь. Это только адреса для каждой конкретной проги разные. Статьи учат новичка неизвестным ему методикам взлома, а не взлому единичной проги(хотя часто встречаются бестолковые статьи без объяснения способа снятия, а-ля "патчить тут, так как я это место уже нашёл") Predator Alex пишет: Клаву в руки и патчить,патчить,ломать,ковырять. А читать всю реверсинговую бредятину будете на пенсии Успокойся, дружище. Santa не слушай Predator Alex'а! ![]() |
|
Создано: 18 января 2006 22:11 · Личное сообщение · #14 |
|
Создано: 18 января 2006 22:32 · Личное сообщение · #15 Ну в принципе я согласен. Только вот большинство статей преследуют цель не научить новичка,а показать какой умный и хороший её автор.ЧТО НИКТО,КРОМЕ НЕГО ДО ЭТОГО НЕ ДОДУМАЛСЯ БЫ. А переход я ищу через референсы.Я уже говорил об этом. Надо ломать по рациональному пути.Я не могу понять крекеров,которые распаковывают вручную протектор,для которого есть автоматический распаковщик.Или ковыряются месяцами в отладчике,хотя есть ссылки в тексте ассемблера.Просто мы разные люди.Некоторым бездельникам просто нечем заняться и реверсинг доставляет удовольствие как процесс.(я частично к ним отношусь) А другим важен не процесс,а результат. И собственно я никому не навязываю свои точку зрения. Каждый ломает как ему нравиться.Просто не надо изобретать велосипед.До вас всё уже сделали.ИМХО. Всё.Утомили,пративные! ![]() ![]() ![]() ![]() |
|
Создано: 19 января 2006 06:17 · Личное сообщение · #16 Hellspawn Это ты хорошо сказал! Прямо в точку!!! Хотя мне важен результат, мне все же доставляет удовольствие разобраться и понять алгоритм защиты программы. Я по возможности стараюсь использовать автаматические утилиты (распаковщики и т.д.), но иногда приходиться и ручками все делать, а вот тогда без чтения ну никак... ![]() ![]() |
|
Создано: 19 января 2006 11:05 · Личное сообщение · #17 Predator Alex пишет: И собственно я никому не навязываю свои точку зрения. Зато по навесил ярлыков и высказал своё презрение... Люди пишут туторы по разным причинам и многие тратят на это своё время и силы, так как хорошая статья это не час-два а неделя, а то и больше! Расскажи как мне товарищь, а если у тебя нет распаковщика для данной версии? Дай угадаю: пусть ненормальные пишут распаковщик, а я буду менять джампы. Так? Руками обычно снимается гораздо качественнее, если это не статический распаковщик... ----- Подписи - ЗЛО! Нужно убирать! ![]() |
|
Создано: 19 января 2006 21:58 · Личное сообщение · #18 |
|
Создано: 19 января 2006 22:07 · Личное сообщение · #19 Не ужели не понятно, у товарища тинейджерский максимализм =), вот и речи толкает такие не суразные. пару-тройку (десятков) раз башкой об стену удариться, так как сломать в лоб "паченьем от болды" не получиться, и сядет за доки. Predator Alex Ты видимо не совсем правильно понял Кибер Маньяка, что такое дзен-кэкинг ;). ----- Все говорят что мы вместе. Но не многие знают в каком. ![]() |
|
Создано: 19 января 2006 22:10 · Личное сообщение · #20 |
|
Создано: 19 января 2006 22:16 · Личное сообщение · #21 SeDoYHg nice Да забейте. Товарищ серьезно полагает, что проги ломаются изменением одного джампа и надо его только найти. Причем как он сам говорит, что пользоваться отладчиком не умеет, что не помешало ему отломать 50 прог. Алгоритм отлома ясен - берешь адрес 401000 и меняешь первый попавшийся переход. Если прога не зарегалась - меняешь следующий...и так до конца секции кода. Возможно до конца не только секции кода, а и всех остальных секций, т.к. врядли он что-то слышал про секции, ибо статьи не читает принципиально. Хотя возможно, до конца дело не дойдет-прога зарегается. Можно записать на свой счет очередную прогу,садиться писать мануал по отлому без отладчика и пытаться обучать других исскуству кряка. ![]() |
|
Создано: 19 января 2006 23:16 · Личное сообщение · #22 Собака брешет,караван идёт... Вот собственно для тупых поясню как ломать переходами проги: 1.открываешь WinDasm,смотришь на код и думаешь своей безмозглой башкой "какая же функция нам нужна,ага вот эта,смотрим,а там JNE какой-то" 2.над переходом стоит операция сравнения как правило,содержимое ячейки сравнивается с 0 или 1 через CMP или TEST 3.ищем все такие ячейки в проге и ИНВЕРТИРУЕМ переходы, НЕ СЛУШАЙТЕ ТУПЫЕ СТАТЬИ AKA МЕНЯЕМ JE НА JMP и т.д. Ахинея полнейшая.Кто знает,прыгает она здесь или нет? Поэтому JS меняем на JNS,JB на JAE и т.д. Одним переходом ни один дурак не ломает.Их всегда не менее 7-10. Мне попадалась игра,где надо было патчить 48 (!) переходов для того,чтобы она стала зареганной. Исключение составляет SETE или SETNE.Их достаточно править единоразово. Допустим,не могу я распаковать прогу.А кто мешает сделать лоадер? Тем более,после распаковки вручную велика вероятность вместе с кодом протектора вытереть несколько лишних байт,stolen bytes и т.д. и т.п. Мне непонятно,зачем развели этот трёп.Автор темы сюда уже не постит. Кого вы пытаетесь переубедить,я не знаю...Как говорится,горбатого могила правит... ![]() |
|
Создано: 20 января 2006 05:35 · Личное сообщение · #23 Predator Alex Первое предупреждение. Ты нарушаешь правила форума. Постарайся больше никого не оскорблять и прислушиваться к мнению более опытных участников (если не можешь их разглядеть, слушай хотя бы большинство). Тема перешло на флуд, посему - закрыта. Predator Alex пишет: Как говорится,горбатого могила правит... Или бан ![]() ----- Всем привет, я вернулся ![]() |
![]() |
eXeL@B —› Основной форум —› Помогите понять новичку основы защит ПО. |
Эта тема закрыта. Ответы больше не принимаются. |