Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› Исследование WildTangent
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 22 ноября 2011 22:20
· Личное сообщение · #1

В общем, есть такие маленькие, но очень, имхо, прикольные игры. Защищены этим враппером. Оффсайт --> Тут <--. Прикол в том, что вначале надо скачать что-то типа загрузчика, через который потом вы сможете загрузить желаемую игру.

Скачать можно любую игру - код враппера с точностью совпадает в защищённых играх. Этот враппер ранее исследовали ARTeam, но это было давно, и автоматический анвраппер для современных версий не пашет. Тем не менее, документ можно найти --> Здесь <--

Теперь что сделал я. Подробно можно почитать --> Это <--. Если же вкратце изложить описанное в том документе, то враппер - то, что с окончанием -WT.exe. В нём идут проверки на то, можете ли вы ещё играть в игру. Т.е. говоря языком враппера, не истекла ли ещё ваша сессия. Если сессия не истекла, то будет запущен ехе без постфикса с флагом SUSPENDED, его секции (кроме последней секции ресурсов) перзапишутся нормальным содерджимым, далее внедрится какой-то шелл (CreateRemoteThread создаст поток для выполнения), после, если заинжекченный код норм отработал, ResumeThread запустит главный поток, и понеслась. Два процесса связаны заданием.

В чём трудность.
1. Я не могу установить эти игры на варю. Есть у кого-то идеи, как это сделать? (в плане настройки вари)
2. Каждый раз топать до кода муторно, а аппаратники детектятся антиотладкой. Поэтому я заюзал оллискрипт. Всё ок, но я не могу дойти настолько далеко, насколько захочу. Попробую нормально пояснить. Есть некоторые точки в коде, на которых мне хотелось бы прерваться. Будем их считать вершинами графа. Понятное дело, что граф ориентирован (ибо я не могу попасть на патч процесса, не пройдя антиотладку и т.д.) Так вот проходя цепь в нужном мне порядке без проблем вручную (т.е. ставлю через F2 бряк, прерываюсь, хлопаю глазами, снимаю бряк, ставлю следующий и т.д.) всё идет по плану. Скрипт же всё делает правильно - бряки ставит, код анализирует, но до поределённого момента. Потом я ставлю бряк на очередную вершину, бряк не снимается, не срабатывает, а процесс стартует (исполнение в том же потоке, что и все другие вершины). Что за нах?
3. Далее - этот грёбаный инжект. Аттачем через олли я не могу нормально отладить его, т.к. приаттачить олли получается раза с десятого, и то - модули без анализа, текстовые имена олли не распознаёт (нельзя перейти на начало CreateEvent, например, надавив Ctrl+G и вписав её имя). Олли 2 - не вариант, ибо сыроват дебаггер.

Какова цель? Ну, ясен хрен - статик анвраппер. Мож, кто сталкивался - что подскажут?

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 22 ноября 2011 23:45
· Личное сообщение · #2

А соседи что говорят?



Без загрузчика можно где-нить скачать игру?




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 22 ноября 2011 23:50 · Поправил: ARCHANGEL
· Личное сообщение · #3

r99 пишет:
Без загрузчика можно где-нить скачать игру?

Скачать-то не проблема - проблема потом запустить. Этот инсталлятор создаёт всякие папки, ключи реестра, и если просто скопировать уже установленную игру, то она не будет работать. Думаете почему я игру на варе не дебажу?

А соседи что говорят?

Мои соседи (в соседнем доме) в реверсинге не сильны. Или что вы имели ввиду?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 23 ноября 2011 00:07
· Личное сообщение · #4

>>Вот этот, правда, странный трюк:

Code:
  1. 0047F67F   68 F4784900      PUSH PolarPoo.004978F4                      ; ASCII "nul"
  2. 0047F684   F3:A5            REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[E>
  3. 0047F686   FF15 14744900    CALL DWORD PTR DS:[<&KERNEL32.FindFirstFile>; kernel32.FindFirstFileA
  4. 0047F68C   8BF0             MOV ESI,EAX
  5. 0047F68E   56               PUSH ESI
  6. 0047F68F   FF15 44744900    CALL DWORD PTR DS:[<&KERNEL32.CloseHandle>] ; kernel32.CloseHandle
  7. 0047F695   56               PUSH ESI
  8. 0047F696   FF15 18744900    CALL DWORD PTR DS:[<&KERNEL32.FindClose>]   ; kernel32.FindClose


FindFirstFileA("nul") вернет INVALID_HANDLE_VALUE, а CloseHandle(INVALID_HANDLE_VALUE) под отладчиком сгенерирует исключение STATUS_INVALID_HANDLE, без отладчика исключения не будет.

-----
Yann Tiersen best and do not fuck





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 23 ноября 2011 00:18
· Личное сообщение · #5

PE_Kill
Я, честно говоря, всегда думал, что правильно закрывать дескрипторы функций типа FindFirstFile нужно через FindClose, а CloseHandle может сгенерить иксепшн под дебаггером даже для валидного дескриптора от FindFirstFile, т.е. я полагал, что невалидный для FindClose может быть валидным для CloseHandle. Такое искажённое представление реальности у меня сложилось после Tool help функций и чтения МСДН. А сейчас глянул бегло в дизассемблере - FindClose - это банальный ZwClose, только с критическими секциями, так что вы на 100 % правы.

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 23 ноября 2011 01:21
· Личное сообщение · #6

ARCHANGEL пишет:
Этот инсталлятор создаёт всякие папки, ключи реестра, и если просто скопировать уже установленную игру, то она не будет работать.

Вот такие моменты и отбивают настроение смотреть такие игры
или если враппер снять она станет портабельной?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 ноября 2011 01:29
· Личное сообщение · #7

ARCHANGEL пишет:
2. Отреверсить алгоритм проверки unlock code и написать кейген.

Как бы не так, там онлайн-проверка, если мне не изменяет память.

Господа, давайте придерживаться какой-то одной игры, чтобы веселее дело пошло.

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

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 ноября 2011 01:36
· Личное сообщение · #8

Isaev пишет:
если враппер снять она станет портабельной?

Да. И как неправильно написал топикстартер, это не от WT игры. WT лишь дистрибьютор. Plants vs. Zombies существовала и до появления WildTangent, только вот ломали все подряд, поэтому отказались сами распространять. И это касается очень многих враперов для мини-игр: разные разработчики, один дистрибьютор. Экономически очень выгодно и пользователю удобно (сразу целая библиотека игр). Осталось лишь довести пользовательское удобство до предела и анврапер написать.

Добавлено:
Это наномиты что ли?
Code:
  1. .text:004CD3C9                 add     esp, 2Ch
  2. .text:004CD3CC                 int     6





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 23 ноября 2011 01:55
· Личное сообщение · #9

Хреновая там защита,применяется всё тот-же WriteProcessMemory.. игры в оффлайне запускаются намного быстрей.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 23 ноября 2011 07:12
· Личное сообщение · #10

Не знаю, что там сейчас, но помню враппер снимался примерно так.
Запускаем игру именно от производителя WildTangent, например Penguins или PolarPool (*-WT.exe) из под ольки (обходим антидебаг), после появления нага ставим бряки CreateThread и ResumeThread. Жмакаем запустить или Try или че там и наши бряки сработают, потом дамп и переименовываем в *-WT.exe обратно.
Главное обойти как палится отладчик. Вот GameUnwrapper от dr.Carbon c сорцами:
http://rghost.ru/private/31639511/91d52ef7d1b06275955b9800b4381341
вроде работал не так давно, но в нем косяк с таймером, скидывается до 1000 и игра не успевает запустится, хотя может враппер этот таймер прибивает.

-----
Array[Login..Logout] of Life





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 23 ноября 2011 07:51
· Личное сообщение · #11

А чего там обходить? убрать галку с protect DRx да и неставить железные бряки.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 23 ноября 2011 10:46 · Поправил: PE_Kill
· Личное сообщение · #12

Kindly пишет:
вроде работал не так давно, но в нем косяк с таймером, скидывается до 1000 и игра не успевает запустится, хотя может враппер этот таймер прибивает.

Да, косяк. Надо в сорсах вместо
Code:
  1. iTimer = atoi(szTimer);

Сделать что то типа
Code:
  1. char szNewTimer[10];
  2. GetDlgItemText(hDlg, IDC_TIMER, (LPSTR) szNewTimer, 10-1);
  3. iTimer = atoi(szNewTimer);

И тогда работает. Но в статике конечно интереснее бы было снять.

-----
Yann Tiersen best and do not fuck


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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 23 ноября 2011 10:55 · Поправил: ARCHANGEL
· Личное сообщение · #13

int пишет:
Как бы не так, там онлайн-проверка, если мне не изменяет память.

Возможно. Вы читаете черновик, который не редактировался. Некоторые "измышления" там написаны ещё до того, как прога была засунута в дизассемблер.

Да. И как неправильно написал топикстартер, это не от WT игры. WT лишь дистрибьютор

Есть такое дело, но равзе это так важно?

Господа, давайте придерживаться какой-то одной игры, чтобы веселее дело пошло.

Это необязательно. В начале я исследовал PolarPool, потом в середине перешёл на Футбол с петухами (как-то там называется, но я забыл), а код - байт в байт одинаковый.

Осталось лишь довести пользовательское удобство до предела и анврапер написать.

Вот-вот.

Kindly пишет:
Запускаем игру именно от производителя WildTangent, например Penguins или PolarPool (*-WT.exe) из под ольки (обходим антидебаг), после появления нага ставим бряки CreateThread и ResumeThread. Жмакаем запустить или Try или че там и наши бряки сработают, потом дамп и переименовываем в *-WT.exe обратно.

Не заработает. Во первых, для некоторых игр надо восстановить оверлей, во-вторых, т.к. все секции тупо пишутся после запуска основного ехе, это приведёт к тому, что такой дамп если б и работал, то работал бы только на одной системе, ибо не восстановлена таблица импорта. Плюс самый главный недостаток - что делать, если триал период уже истёк, и динамически анрапнуть уже нельзя, т.к. нельзя запустить игру?

ClockMan пишет:
А чего там обходить? убрать галку с protect DRx да и неставить железные бряки.

Я так и делаю, проблема совсем не в этом.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 23 ноября 2011 11:01
· Личное сообщение · #14

ARCHANGEL пишет:
Не заработает. Во первых, для некоторых игр надо восстановить оверлей, во-вторых, т.к. все секции тупо пишутся после запуска основного ехе, это приведёт к тому, что такой дамп если б и работал, то работал бы только на одной системе, ибо не восстановлена таблица импорта.

А она при SUSPEND еще не инициализирована, так что я проверил - работает. А оверлей то к защите как я понял не привязан, это чисто PE фишка, просто перенести в дамп и всё.

-----
Yann Tiersen best and do not fuck





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 23 ноября 2011 11:27
· Личное сообщение · #15

Что ж, попробую, вечером отпишу.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 23 ноября 2011 11:35
· Личное сообщение · #16

PE_Kill пишет:
А она при SUSPEND еще не инициализирована

+1
Я всвоё время отвязывал одну игру от враппера так там шла цифровая подпись которая конечно же была недействительна т.к файл был изменён враппером,я сдампил winhex файл восстановил секции по rva_offset прикрутил подпись и она стала действительна обычный ламерский враппер я для наглядности скачал игру 7 Wonders - Magical Mystery Tour ничего так и неизменилось расспаковалась на ура--> Link <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 ноября 2011 13:08
· Личное сообщение · #17

Ламерский - это понятно. Во время работы игры дамп дает полу-рабочую игру (инициализацию надо исправить, как минимум). Даже ВМ нет и всяких других игрушек подобного плана.

Но все же я соглашусь с PE_Kill - надо бы статику придумать. И действительно интересно как монетки получать халявные. Это явно можно обмануть.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 23 ноября 2011 14:46
· Личное сообщение · #18

Мой анвраппер работает(давно работает) через бряки WriteProcessMemory и то что через него пишется тупо вписывается в exe(без -WT). После чего всё нормально работает. Единственный минус некоторые игры нужно переименовывать в -wt, за эту проверку отвечает какая-то dll в папке ресурсов wrappera.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 ноября 2011 15:33
· Личное сообщение · #19

Vovan666 пишет:
за эту проверку отвечает какая-то dll в папке ресурсов wrappera.

Да, есть такое. У меня рабочая игра начинает запускать инсталлятор, мол переустановка игры по причине дефекта.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 23 ноября 2011 16:09
· Личное сообщение · #20

Давайте так. Топик гласит "Исследование WildTangent". Если интересует именно защита от и до, то можем скооперироваться и сделать что то вроде объемной статьи. Если нужен именно отлом в любой ипостаси, то можно реализовать за час-два максимум анвраппер, не вникая в защиту.

-----
Yann Tiersen best and do not fuck


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

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 ноября 2011 16:41
· Личное сообщение · #21

Статья + исходники анврапера! Это было бы реально круто. Давно таких хороших статей не было...

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


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 23 ноября 2011 17:48
· Личное сообщение · #22

Дорогие друзья, отлом в любой ипостаси не нужен, т.к. это - не интересно. Предлагаю сосредоточится на статике. Что известно на сегодня? Известно, что в ехе без постфикса -WT патчатся секции, кроме секции ресурсов. Значит надо узнать, откуда берутся значения, которые потом пишутся через WriteProcessMemory в дочерний процесс. Далее надо исследовать процесс инициализации. Что-то можно взять из черновика в первом посте (там не так мало, как кажется), а что-то придётся ещё дописать.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 23 ноября 2011 17:54
· Личное сообщение · #23

ARCHANGEL пишет:
Значит надо узнать, откуда берутся значения, которые потом пишутся через WriteProcessMemory в дочерний процесс. Далее надо исследовать процесс инициализации.

Отдери оверлей от (wt) и там будет exe с половиной заполненных секций, но я в эту сторону не копал.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 23 ноября 2011 22:15
· Личное сообщение · #24

PE_Kill пишет:
...так что я проверил - работает

Неа, не работает. Попробуй на игре Crazy Chicken Soccer. Она будет запускаться, но поиграть нельзя будет.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 24 ноября 2011 02:33
· Личное сообщение · #25

ARCHANGEL пишет:
Она будет запускаться, но поиграть нельзя будет

???--> Link <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 24 ноября 2011 13:26
· Личное сообщение · #26

Префикс .p в названиях секций означает, что секции защищены (protected), т.е. зашифрованы.
.pecode - код, выполняющий начальную инициализацию, показывает графическое окно и прочее
.pccode - код, стартующий процесс, дешифрующий файл игры и прочее
.phs - настройки враппера, типа название защищенного файла, название игры и прочее.

У враппера приклеен оверлей, начинающийся с MZ, далее идут блоки контрольных сумм(?) и снова MZ и походу пошифрованый файл. Надо дальше колупать.

-----
Yann Tiersen best and do not fuck





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 24 ноября 2011 19:29
· Личное сообщение · #27

ClockMan
Битый архив скачивается.

Можно без севензипа (рар сделайте), и на rghost выложите.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 24 ноября 2011 21:30
· Личное сообщение · #28

PE_Kill пишет:
У враппера приклеен оверлей, начинающийся с MZ, далее идут блоки контрольных сумм(?) и снова MZ и походу пошифрованый файл. Надо дальше колупать.

Если кто-то ещё заинтересовался и есть желание сразу въехать в тему:

Code:
  1. .text:00427BE5 push    0
  2. .text:00427BE7 push    ebp             ; __int32
  3. .text:00427BE8 push    ebx             ; FILE *
  4. .text:00427BE9 call    _fseek
  5. .text:00427BEE mov     edi, [edi+4]
  6. .text:00427BF1 push    ebx             ; FILE *
  7. .text:00427BF2 push    esi             ; size_t
  8. .text:00427BF3 push    1               ; size_t
  9. .text:00427BF5 push    edi             ; void *
  10. .text:00427BF6 call    ReadPeFromOverlay


Позиция чтения устанавливается на бинарник в оверлее и происходит копирование в Heap.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 25 ноября 2011 02:08
· Личное сообщение · #29

ARCHANGEL
--> Link <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 25 ноября 2011 19:38
· Личное сообщение · #30

ClockMan
Скачал нормально, распаковал, запустил - работает.

Но мы, видимо, друг друга не поняли. Я говорил, что не работает после анраппера от dr.CarbOn, а тот файл, что вы выложили - то плод ручной работы (к нему приклеен оверлей).

-----
Stuck to the plan, always think that we would stand up, never ran.



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


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