Сейчас на форуме: _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› помогите разобраться
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 сентября 2005 09:39
· Личное сообщение · #1

Игрушка CrossCraze-Scrabble как наша игра Эрудит. www.ortsoftware.com/cc.html 4.4 мб
На каком языке написана выяснила. Не запакована. Дальше, как учат в w32dasm10 Там, что надо найти, когда программа уже experied или искать сколько осталось времени и найти этот переход. Пробовала и то и то. Ну, а дальше, что менять в редакторе вообще не доходит. Какие байты на какие. . Но в статьях все так просто и доходчиво написано. Может быть, кто посмотрит эту игрушку. Помогите понять.




Ранг: 90.3 (постоянный), 1thx
Активность: 0.030
Статус: Участник

Создано: 20 сентября 2005 14:16 · Поправил: SLayer
· Личное сообщение · #2

Grey пишет:
дописав отсутствующий код

не очень впечатляющая перспектива



Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 20 сентября 2005 14:36 · Поправил: Grey
· Личное сообщение · #3

SLayer пишет:
не очень впечатляющая перспектива

Ну почему-же? Все зависит от рентабельности;))

-----
TBR




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 сентября 2005 02:36
· Личное сообщение · #4

vickaok пишет:
ну а разве не все можно сломать

Сломать можно всё, что есть (за бесконечный период времени).
А если в программе чего-то не хватает, сломать это никак нельзя. Только дописывать самому или взять из других версий.
Как правило, слово DEOM означает, что в программе не все функции.
Но в этот раз видимо главные функции есть все, хотя пока не увидишь полной версии, сказать точно - невозможно.

В запросе на кряк ты написала, что есть одно ограничение (60минут).

Я сразу же наткнулся на ещё две бяки:
2. Автозапуск страницы покупки (из папки игры)
3. В игре доступен только первый уровень


Начнём с первого (60 минут).

Лечится браком на функцию реестра (это классика).
В Оли нужно установить плаг CommandBar и в нём набрать:
bpx RegOpenKeyExA
Сделать окно поверх всех (Alt+F5)
Затем запустить (F9)
Далее, через пару строк видно:
00426235  push edx                            ; /pBufSize
00426236  lea eax, dword ptr ss:[ebp-10]      ; |
00426239  push eax                            ; |Buffer                указатель на буфер куда будет помещено значение параметра
0042623A  push 0                              ; |pValueType = NULL
0042623C  push 0                              ; |Reserved = NULL
0042623E  push CrossCra.004E9F30              ; |ValueName = "2.07d"   Это имя параметра в реестре
00426243  mov ecx, dword ptr ss:[ebp-18]      ; |
00426246  push ecx                            ; |hKey
00426247  call dword ptr ds:[<&ADVAPI32.RegQu>; \RegQueryValueExA
0042624D  test eax, eax
0042624F  jnz short CrossCra.00426273
00426251  cmp dword ptr ss:[ebp-10], 0
00426255  jl short CrossCra.00426273
00426257  cmp dword ptr ss:[ebp-10], 270F     сравнение параметра с 9999  
0042625E  jg short CrossCra.00426273          Если значение больше – плохой прыг
00426260  mov edx, dword ptr ss:[ebp-10]
00426263  cmp edx, dword ptr ds:[4E5AD0]
00426269  jle short CrossCra.00426273
0042626B  mov eax, dword ptr ss:[ebp-10]      значение параметра в EAX
0042626E  mov dword ptr ds:[4E5AD0], eax      сохранить в переменную
00426273  mov ecx, dword ptr ss:[ebp-18]
00426276  push ecx                            ; /hKey
00426277  call dword ptr ds:[<&ADVAPI32.RegCl>; \RegCloseKey  закрыть ключ



Здесь было бы достаточно сделать так, чтобы переменная 4E5AD0 всегда была 0
Для этого нужно всего лишь поменять
0042624F  jnz short CrossCra.00426273

на
0042624F  je short CrossCra.0042626E

Если не знаешь, как поменять байты, читай хотя бы мою статью:
http://www.exelab.ru/art/isis673.php

Обходить всю функцию не стоит в любом случае, так как настройки игры инициализируются здесь же.

Таким образом, можем сделать так, чтобы игра не запоминала после выхода, сколько времени в неё играли.

Но если играть более 60 минут за один запуск, будет ли игра нас ругать?

Давай проверим.
Мы уже знаем, какой параметр реестра отвечает за общее наигранное время.
Сделаем это значение близким к критическому:
HKEY_LOCAL_MACHINE\SOFTWARE\ORT Software\CrossCraze2
2.07d"=dword:0000003B

В десятичной системе это 59.
Посмотрим, что произойдёт, если запустить игру.
Ничего. Игра не мешает нам даже за пределами 60 минут, пока мы не перезагрузимся.
Значит, проблема решена.

2 Автозапуск страницы с предложением купить игру (страница из папки игры)
Просто удалить файл с кричащим названием "readme.exe" =).


3 В игре доступен только первый уровень (однако все остальные уровни видно на картинке)
Если ещё интересно, можно попробовать победить и это.

-----
Всем привет, я вернулся




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2005 04:24
· Личное сообщение · #5

Bitfry

Спасибочки огромное за такой подробный ответ Все попробую сделать как ты написал. А я вот еще хотела узнать каким распаковщиком можно распоковать Armadillio 3.6(если неправильно написала то извини, ты меня поймешь) Дело в том, что эта же игрушка есть в другом варианте Она упакована в Armadillio 3.6 Там нужно вводить рег.номер. Вот если бы я ее распоковала я могла попробовать другой способ взлома. Потому что примеров статей с рег.номерами много. Я облазила весь интернет, но поняла, что для Armadillio 3.6 распаковщика нет надо в ручную. Может быть все таки есть программа для распаковки Armadillio Killer не помогает.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 сентября 2005 05:15
· Личное сообщение · #6

vickaok пишет:
Там нужно вводить рег.номер.

А вот этот вариант почти наверняка нереальный (в наших временных масштабах).
Armadillia пакует программу так, что ключ необходим для распаковки.
Если программа с Армой запускается без ключа и чего-то не делает, значит, без ключа ты этого не получишь (если не дебил паковал).
А если она вообще не запускается, ты её не запустишь.
Перебор ключа закончится после распада Солнца.

Хотя сам я по распаковке, мягко говоря, не спец, ни один протектор ещё не распаковывал.

-----
Всем привет, я вернулся




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2005 05:40
· Личное сообщение · #7

Bitfry
ничего не получается. я нашла значение в oly щелкнула по нему два раза выскочило окошко (правда там было написано assemble) там я поменяла. это правильно или надо менять в редакторе или надо еще как то сохранить. потом я запускаю прогу а она продолжает отсчитывать минуты только не сердись если что не так - я писала что я тормоз



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2005 05:49
· Личное сообщение · #8

а да, когда закрываю оли, а потом открываю значение, которое меняла оказывается старое - значит что-то я не так делаю



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 сентября 2005 06:02 · Поправил: Bitfry
· Личное сообщение · #9

Bitfry пишет:
Если не знаешь, как поменять байты, читай хотя бы мою статью:
http://www.exelab.ru/art/isis673.php[/i]

Цитата из этой статьи:

Для ассемблирования в Olly достаточно нажать пробел на нужной строке.
После этого изменения хорошо бы перенести в файл.
Мышиное меню, Copy to executable/All modification, copy all. Затем мышиное меню, Save File.
Всё, этого нага больше мы не увидим.
После модификации файла и сброса (<<) Olly воспринимает этот файл как новую программу,
и заново проводит анализ. Старые бряки ушли в прошлое. Запускаем программу и радуемся отсутствию
стартового недоразумения.

-----
Всем привет, я вернулся




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2005 06:59 · Поправил: vickaok
· Личное сообщение · #10

Bitfry
ой мне даже не верится , ну просто класс!!!!!!!!!! получилось спасибо огромное миллион раз!!!!!!!!! а вот я так поняла то, что я поменяла в регистре поможет играть дальше , если 60 минут закончатся. правильно? только вот я опять не уверена правильно ли я поменяла там было три значения одно было по умолчанию и там я написала, то значение, которое ты сказал правильно?



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 сентября 2005 07:56
· Личное сообщение · #11

vickaok пишет:
а вот я так поняла то, что я поменяла в регистре поможет играть дальше , если 60 минут закончатся. правильно? только вот я опять не уверена правильно ли я поменяла там было три значения одно было по умолчанию и там я написала, то значение, которое ты сказал правильно?

Ничего не понял из твоего вопроса/высказывания.
Хотя если подумать... Ты, наверное, спрашиваешь что-то про реестр... Но вот что.

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

-----
Всем привет, я вернулся




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 сентября 2005 08:54
· Личное сообщение · #12

Bitfry
Спасибо тебе огромное все работает, все получилось.


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


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