eXeL@B —› Вопросы новичков —› Отучение от диска... |
Посл.ответ | Сообщение |
|
Создано: 10 июня 2006 22:51 · Личное сообщение · #1 Итак собственно предистория: Игрался я в некую игрушку Street Wars a.k.a Constructor Underground... и в один прекрасный момент узнал, что есть оказывается ещё и первая часть... просто Constructor... Недолго думая полез на Old-Games.ru искать заветную игрушку... и ёврика! нашел... скачал... А она только под дос... DosBox почему то не работал, но я услышал, что есть патчик который делает игру по винь... нашел... скачал... но вот незадача... она просит диск... но диска то нету и его не достать полюбому... ну чтож думаю, я ж крякер вроде уже 2 недели =) надо хоть что-то сломать... итак приступим... Собственно "взлом": Инструменты: W32Dasm с BratAlarm патчем желательно, что бы не пользоваться Hiew... т.к. Олли почему то не захотела отлавливать что-либо в полноэкранном режиме пришлось вернуться к старому доброму W32DAsm'y... С чего бы начать? ищем вызов процедуры (PE Information>>Imports - вспоминаю как сам пытался найти String References =)) GetDriveTypeA - с нее обычно начинают... итак нас кинуло на адрес 0045CABD... теперь есть 2 решения (не замудреных) этой проблемы... сменить строку cmp eax, 00000005 на cmp eax, 00000003, либо (далее буду писать только HEX, ассемблер не буду) вообще избавиться от сравнения и занопить все это дело и сменить условный прыжок на постоянный (для этого 83А805 7419 сменить на 909090 EB19) Итак, прикинув, что в далеком 95 не было придусмотренно, что кто-то в 2006 будет извращаться над этой экзешкой проверим... но нифига... "диск должен быть вставлен"... что могли придумать ещё?? жмем на прыжок который мы "подправили"... что ещё за епона мать??? какая нахрен c:\abcefgh??? немного ниже идет какой то цикл... первый прыжок похоже не выполняется, но дойдя до конца она возвращается на начало и так до тех пор, пока не будет получен результат... не уверен, что это, но похоже на то, что она берет начальный результат как c:\abcefgh и в конце получает путь к экзешке.. а там кто его... ниже красуется строка Can write on cd... это что, комментарий для взлома?? =) короче нам туда лучше не попадать и поэтому прыжок перед этой строкой лучше переправить на постоянный... (74 на EB)... ещё раз проверим... неа... ладно, ищем дальше =)... блин ну просто супер для обучения ломанию игрушек =)... GetDiskFreeSpaceA, а ниже опять комментарий: Space on CD... блин теперь Studio 3 моя любимая фирма =))... нам опять туда не надо... меняем прыжок.. дальше я понял, что Studio 3 просто гении программирования... они могли бы опередить Fant0m'a по написанию крякми... никто ещё комментов не оставлял =)) GetVolumeInformationA - это проверка на метку тома... и сравнивает она имя диска нашего с CONSTUCTR1... и если нифига не равно, то на прыжок нам дорога закрыта... правим прыжок... итак мы на Finish Checking CD =) не может быть... чтож... вроде все... но экзешка не запускается по хрен знает каким причинам... а жаль... столько стараний ;) А вообще эта екзе даже у людей с номальными СД не работает... но для ломания сгодится =) To be Continued... |
|
Создано: 10 июня 2006 23:50 · Личное сообщение · #2 |
|
Создано: 11 июня 2006 00:01 · Личное сообщение · #3 |
|
Создано: 11 июня 2006 00:10 · Поправил: SniperOK · Личное сообщение · #4 |
|
Создано: 11 июня 2006 10:21 · Поправил: crazyalex · Личное сообщение · #5 |
|
Создано: 11 июня 2006 20:09 · Личное сообщение · #6 итак, продолжим... я надеюсь новичкам пригодится... на глаза мне попался диск Warlords IV... пиратка, защита склепана на дурачка, так что думаю новичкам самое оно... Инструменты: W32Dasm with BratAlarm path Любой отладчик. (описываю OllyDbg) взлом: Файлик не чем не сжат, так что сразу ко взлому... многие предпочитают сначала поисследовать отладчиком, а потом уже приступить ко взлому... но я начну с Дасма (уж привык, отвыкнуть не могу =)... но я поспешил... сначала основное, что бросается в глаза: 1) если диск не найден, то MessageBox с надписью 'Please insert...' 2) при проверке бормочет флуппик... но раз запускается с диска, то значит функций GetDriveTypeA как минимум две... 3) у нас есть диск... значит будет легко =) сначала посмотрим есть ли что-нибудь из этих функций: 1) GetDriveType 2) GetVolumeInformation 3) GetDiskFreeSpace я считаю их основными и часто используемыми... Итак, первая вызывается 3 раза... второй - нет третья - 1 раз... все GetDriveTypeA исправляем на cmp eax, 00000003 (все они рядом) т.к. несколько вызовов, то лучше не гемороиться и протрейсить с помощью отладчика... трейсить будем через F8... сообщение вылетает на адресе: 00540125... ставим на него вряк (двойной клик по колонке с hex значениями) далее входим в эту процедуру по F7... там трейсим далее по F8... просто зажмем и держим, пока не увидим окошечко 'Insert disk'... смотрим на каком адресе это вылетело - 00453BD8... чуть выше прыжок, который поможет проскочить эту функцию - по адресу 00453BC4... правим на постоянный (для этого закроем Олли и заглянем в Дасм, там найдем этот адрес и поправим 74 - EB...) можно было и без отладчика, но лучше освоить его... пробуем... нет не работает... значит скорее всего смотрит если на диске нужный файл с диска (для проверки)... копируем все содержимое диска на хард... далее нужно искать FileMon'oм, но я скажу сразу, что ищет он файл Warlords4.exe... теперь не мешало бы удостовериться что реально все что надо от файла - его название... проверим не нужна ли дата\размер, просто сотрем этот файл, создадим текстовичек, переименуем его в Warlords4.exe, значит изменим его размер на нулевой и скинем дату на настоящую... проверим... запустилось, значит мои ожидания оправдались... ищем строку Warlords4.exe - защита легкая, все открыто... всего такая одна строка, под ней вызов... прыгаем на него, внутри ещё один вызов - адрес 004CEC17... прыгаем... ооо... интересно слишком много вызовов и слишком большая функция... а может это и есть проверка файла Warlords4.exe?? я лично подумал, что да... в начале этой функции на адресе 004CED40 надо прописать вместо первого байта - C3, что равно команде ret, прекращающей функцию... пробуем... работает... вот и чудненько... вот все изменения: адрес - что было - что стало: 004DE816 - 83f805 - 83f803 0053D4C4 - 83F801 - 83F803 004CEB4A - 83F802 - 83F803 00453BC4 - 7409 - EB09 004CED40 - 8B442404 - C3442404 Как думаете есть резон писать дальше?? или для новичков статей полно, которые гораздо лучше?? |
|
Создано: 11 июня 2006 20:52 · Личное сообщение · #7 |
|
Создано: 11 июня 2006 21:25 · Личное сообщение · #8 |
eXeL@B —› Вопросы новичков —› Отучение от диска... |