Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+7 невидимых)

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

Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 февраля 2017 22:40
· Личное сообщение · #1

Доброго времени суток всем!
Не так давно читаю ваши статьи по исследованию программ. И вот решил обратиться за помощью.
Моя девушка любит такие вот мелкие игры, особенно из жанра "Поиск предметов", и попросила меня скачать ей пару штук. Я знаю, что на торрентах много уже взломанных, но мне захотелось попробовать взломать самому. К тому же как раз тогда начал читать книгу по ассемблеру Клашникова. Вобщем защиту с игр я снимать научился, но вот есть пара вопросов.
Итак, на играх от Алавара установлена типовая навесная защита. В папке с установленной игрой (пусть она называется blabla) присутствуют два exe-шника: blabla.exe и blabla.wrp.exe. Первый – это wrapper-оболочка от Alawar, которая проверяет имеем ли мы право играть (истекло ли триальное время, куплена ли игра), а второй – исполнимый файл игры, который запускается оболочкой по окончании проверок. Если сразу запустить blabla.wrp.exe, то он работать не будет. Причина в том, что прямо в точке входа PE-файла стоит инструкция RET, которая в данном случае завершает работу приложения. Т.е. получается, что когда запускается оболочка Алавара и удостоверяется, что мы имеем право играть, она корректирует данные в точке входа файла и уже после этого запускает игру. Ну вобщем я запустил игру, сделал Full Dump с помощью PETool и ручками банально заменил данные в точке входа blabla.wrp.exe на те, которые были в дампе. В результате игра запустилась без всяких оболочек и нормально работает. Но остался вопрос: а где wrapper-оболочка берет те данные, которые нужно заменять? И где указан конкретный адрес, по которому нужно производить замену? Вдруг в другой игре программа будет заменять уже не одно место, а два или три.. Пытаясь это выяснить, я распаковал blabla.wrp.exe с помощью стриппера (он запакован AsProtect) и с помощью PEBrowse покопался в данных. В папке с игрой также присутствует wrapper.dll, его я тоже просмотрел. Параллельно ради интереса хотел еще найти место, где указан путь к ветке реестра, в которой тикает триальное время. Но вот ничего не нашел. Опыта у меня еще совсем мало, поэтому решил обратиться сюда за помощью. Игры, которые я разбирал:
https://www.alawar.ru/game/bridge-to-another-world-burnt-dreams-collectors-edition/
https://www.alawar.ru/game/the-fool/



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

Создано: 17 февраля 2017 23:58
· Личное сообщение · #2

а я делал вечный триал он в реестре ишится по Алавар в регэдите в 16ричной записан час триала)

Добавлено спустя -58 минут
утилитами по сверке реестра можно найти если они там намудрили)regmon подобных много.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 18 февраля 2017 00:10
· Личное сообщение · #3

Retar

> И где указан конкретный адрес, по которому нужно производить замену?

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

-----
vx




Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2017 00:28
· Личное сообщение · #4

SDK
Ну я где-то читал, что эта защита засирает какую-то особую защищенную ветку реестра. Ну к примеру ты вот поставил игру, поиграл в нее 30 бесплатных минут, потом удалил какой-нибудь прогой типа Uninstall Tool, почистил от нее вроде весь реестр. Но при повторной установке счетчик времени по-прежнему будет на нуле. Т.е. это значение осталось где-то на компе. Вот и писали в статье, что если много в такие игры играть, то винда может просто полететь от такого засирания. Я не проверял все это, но мне самому нравится, когда игра без рекламы и без всяких лишних оболочек. А про бесконечный триал я знаю.

difexacaw
Это я тоже понял и пытался найти. Но, как уже сказал, опыта совсем мало. По идее заменяемые данные лежат в dll (но я не уверен). Но функцию копирования их оттуда я не нашел. Меня бы кто направил в нужном месте в нужном направлении. Если кому покажется нетрудным, то разобрал одну игрушку сам и показал/объяснил мне вот именно этот момент




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 18 февраля 2017 00:41 · Поправил: difexacaw
· Личное сообщение · #5

Retar

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

-----
vx




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 18 февраля 2017 00:49
· Личное сообщение · #6

difexacaw
там бряк на WriteProcessMemory поставить и забрать буфер.
вот и весь мега хак \




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 18 февраля 2017 01:03
· Личное сообщение · #7

SReg

ТС интересует источник данных, а не сами данные.

-----
vx




Ранг: 6.2 (гость), 10thx
Активность: 0.020
Статус: Участник

Создано: 18 февраля 2017 01:28
· Личное сообщение · #8

Retar пишет:
Но функцию копирования их оттуда я не нашел. Меня бы кто направил в нужном месте в нужном направлении.

Можно и не искать, в запущенном рабочем процессе уже все данные на месте.

1. Запускаешь игру.
2. Аттачишся олей к процессу (BTAW_BurntDreams_CE.wrp.exe)
3. Выделяешь код в секции кода, но не до конца секции, а только до конца кода, нули в конце секции выделять не надо.
4. Далее жмёшь правую клаву мыши, выбираешь copy to executable -> selection далее откроется окно с скопированнми данными, в нём жмёшь опять правую клаву мыши, выбираешь save file, сохраняешь, меняя имя. Всё, получен полностью рабочий файл игрушки.

| Сообщение посчитали полезным: SDK, Zveropolis


Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 18 февраля 2017 01:33
· Личное сообщение · #9

__X3__
Внимательнее читай, что нужно. Ничего нового ты не открыл

-----
IZ.RU





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 18 февраля 2017 02:36
· Личное сообщение · #10

Есть же несколько топиков по алавару, зачем плодить новые? Да и там почитай, много интересного.

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2017 02:48 · Поправил: Retar
· Личное сообщение · #11

SReg
Об этом я думал, но я ведь заберу пачкой сразу все данные, которые пишутся. А если там заменяется два куска кода? Как понять, что их два? Сами данные я могу получить из дампа, проводя простое сравнение нужных мест. Но вопрос в том, как узнать, какие места нужные? Вот я и предполагаю, что в коде оболочки есть место, в котором указано что, куда и сколько раз копируется. Точка входа - само собой, к этому приходим чисто логически. А вдруг там еще есть заменяемые куски. Может и нет, но хочется ведь знать это заранее, чтобы сразу устранить все возможные ошибки в будущем.

__X3__
Так это я сделал. Я получил рабочий файл игры безо всякой защиты. У меня есть интерес разобрать саму защиту, посмотреть, как это реализовано. В образовательных целях, так сказать. Все таки взлом алаваровских игр я на поток ставить не собираюсь)

Isaev
Опс. Спасибо, почитаю. Вот честно искал по слову Алавар и как-то ничего не нашел. Может я на инглише вводил.. В любом случае спасибо, пока что почитаю там



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 18 февраля 2017 05:02 · Поправил: dosprog
· Личное сообщение · #12

Retar пишет:
Может и нет, но хочется ведь знать это заранее, чтобы сразу устранить все возможные ошибки в будущем.

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

И чо там изучать вообще, этот говнокод



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

Создано: 18 февраля 2017 05:06 · Поправил: unknownproject
· Личное сообщение · #13

Там весь жизненный цикл алаваровских игр враппер дописывал байты через WriteProcessMemory.Ничего не поменялось.
--> Link <-- - до кучи.
dosprog пишет:

И чо там изучать вообще, этот говнокод

Правильно.Лучше патчить нопами процедуры в софтах, которых введенные данные сравниваются с константами.Ноперы-староверы всегда в почете

-----
TEST YOUR MIGHT





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 18 февраля 2017 14:40
· Личное сообщение · #14

unknownproject пишет:
Там весь жизненный цикл алаваровских игр враппер дописывал байты через WriteProcessMemory.Ничего не поменялось

Не, в 2006 было ещё примитивней - извлекался exe-шник с игрой, устанавливался атрибут "hidden". Достаточно было сохранить этот файл и никакого триала ))

-----
IZ.RU


| Сообщение посчитали полезным: daFix

Ранг: 30.2 (посетитель), 31thx
Активность: 0.060
Статус: Участник

Создано: 18 февраля 2017 14:42
· Личное сообщение · #15

DenCoder пишет:
Не, в 2006 было ещё примитивней


вы щаз накаркаете, Денуву повесят на очередной релиз



Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 февраля 2017 19:51 · Поправил: Retar
· Личное сообщение · #16

unknownproject
Ну в видео все просто и понятно выглядит. Однако оболочка защищена ASProtect-ом какой-то неизвестной версии. Peid с плагином ее не определил. При использовании плагина по распаковке для оли, он тоже написал, что неизвестная версия. Стриппер вроде как все извлек, но после этого оболочка этим файлом уже не запускается. Что-то он там не доделал получается.
Если же запускать в оле, не распаковывая, то пишет типа обнаружен дебаггер...




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 18 февраля 2017 20:10
· Личное сообщение · #17

Retar

Распаковывают если нужно с файлом какие то манипуляции произвести. Иначе это излишний гемор. Тем более примитивный пакер/криптор - оно в памяти уже распаковано. Антиотладка - для неё плагины есть к олли, их все юзают.

-----
vx




Ранг: 6.2 (гость), 10thx
Активность: 0.020
Статус: Участник

Создано: 18 февраля 2017 23:08
· Личное сообщение · #18

Retar пишет:
Стриппер вроде как все извлек, но после этого оболочка этим файлом уже не запускается.

Не знаю как стрипер, но decomas распаковывает нормально. НО!!! Чтобы сделать файл рабочим надо поисследовать код апи аспра, расположенных в коде проги, но выполняемых аспром до OEP.
Т. е. в распакованном файле этот код уже не выполняется.
Адреса апи на примере BTAW_BurntDreams_CE :
40BA83
40BA94




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 19 февраля 2017 01:08
· Личное сообщение · #19

__X3__

Может вы для ньюби таки обьясните зачем нужны описанные вами действия. И зачем делать файл рабочим ?

-----
vx




Ранг: 6.2 (гость), 10thx
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2017 01:20
· Личное сообщение · #20

Топикстартеру задайте этот вопрос, а не мне.



Ранг: 1.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 21 февраля 2017 01:24
· Личное сообщение · #21

Все, я со всем, что хотел, разобрался... Всем большое спасибо за ответы! Реально, многое очень помогло.
Насчет темы: ее закрывать или пусть остается открытой? Вдруг у кого еще вопросы будут.



Ранг: 2.2 (гость), 4thx
Активность: 0.010
Статус: Участник

Создано: 21 февраля 2017 01:46 · Поправил: whoami
· Личное сообщение · #22

Где-же сейчас Vovan666 и PE_Kill интересно? У них еще 5-6 лет назад были всякие, помнится, antialawar-ы и unwrapper-ы для взлома игр Alawar.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 февраля 2017 21:05
· Личное сообщение · #23

whoami
Всё есть в теме Отучим Alawar game от триала, включая инструменты.

Retar
Тема закрыта. У кого будут вопросы, сходят в старую тему, поскольку в данной теме ничего нового.

-----
EnJoy!



 eXeL@B —› Вопросы новичков —› Исследование защиты игр от Alawar
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати