Сейчас на форуме: ut2004, vsv1 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Отучение от диска...
Посл.ответ Сообщение

Ранг: 38.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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...



Ранг: 46.5 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 10 июня 2006 23:50
· Личное сообщение · #2

Далеко пойдёшь. А ссылку бы дал на игру, а то чё медитировать.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 11 июня 2006 00:01
· Личное сообщение · #3

crazyalex
А ты будешь скачивать игру? Целый СД?



Ранг: 38.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 11 июня 2006 00:10 · Поправил: SniperOK
· Личное сообщение · #4

crazyalex пишет:
ссылку бы дал на игру


вот на игру
[url=http://old-games.ru/game/198.html
]http://old-games.ru/game/198.html
[/url]

на патч
http://minifiles.ag.ru/patches/237/coneuro.zip http://minifiles.ag.ru/patches/237/coneuro.zip

~27mb



Ранг: 46.5 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 11 июня 2006 10:21 · Поправил: crazyalex
· Личное сообщение · #5

Ara
а почему нет? что на диалапе нельзя 27Мб выкачать, тем более на анлиме?



Ранг: 38.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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

Как думаете есть резон писать дальше?? или для новичков статей полно, которые гораздо лучше??



Ранг: 46.5 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 11 июня 2006 20:52
· Личное сообщение · #7

SniperOK
Хм статьи конечно есть... Но вообще если ты уж взялся, то пиши дальше если есть что писать конечно. Мог бы ещё статьи собирать например в тхт и сделать сборник. А вообще я смотрю тя на взлом игр тянет...



Ранг: 38.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 11 июня 2006 21:25
· Личное сообщение · #8

Ну... просто игры - мой первый взлом =) ... к тому же они довольно простые...


 eXeL@B —› Вопросы новичков —› Отучение от диска...
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати