Сейчас на форуме: igorcauret, Rio (+6 невидимых)

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

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

Создано: 04 октября 2014 18:28 · Поправил: kifir4ik
· Личное сообщение · #1

Доброго времени суток, уже третьи сутки сижу над программой(Лаунчер) запуска игры лежит тут
-->http://rghost.ru/58350434<--
Получен бан на игровом сервере, лаунчер не дает завести новый акк
Программа своего рода активатором аккаунов, заводишь аккаунт на сайте, запускаешь эту программу и аккаунт активируется. Хочу отучить ее собирать информацию о железе.
Что удалось выяснить: Написан на делфи
При запуске программа читает файл http://event.myfabis.ru/launchertest/config/config
содержание зашифровано.
Патом GET запрос типа http://event.myfabis.ru/launchertest/auth/data=VQNT3uDeGvoc76lNiCNrPloQIBAWgzGmR7lb6fvhvVUfraCZnAWXzm5XODCBFiLLe8nzYwLH4fgrhvVCthBvTPPQhCyxWuZlR1cj%2BNM%2BBfR7DT8dHitfYGBd4%2BuCfkkxyG9Cr%2Bq5BAuuN5mJnCv2y4%2F4DVXMls%2FAssFY9J%2F%2FGHqu5r7czD14r8FdwGwcGSLha7813PUPl98V8WYB%2B1Ordu9g2bLHIiL3Pmz5DsTGB6fZ1122SciLPKGMcu1Y8cE0S00nrkmXeNJoBRUFsqk%2B4eSSqdpJAjnDvJGrF%2BGSpOuIhCM%2Bo%2F7qEk9kMxkVbg3%2F
Думаю тут идет зашифрованная информация о железе(При перезапуске код разный).
нашел в олле участок кода
004978B5 BA 8C794900 MOV EDX,FABISDay.0049798C ; ASCII "?data="
если заткнуть его нопами лаунчер пишет неверная версия протокола.
Подскажите куда копать ?



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

Создано: 04 октября 2014 18:39
· Личное сообщение · #2

kifir4ik пишет:
Подскажите куда копать ?

Можно попробовать в "Поиск специалистов".
А лучше забить



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

Создано: 04 октября 2014 18:48 · Поправил: kifir4ik
· Личное сообщение · #3

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



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 04 октября 2014 19:31 · Поправил: ELF_7719116
· Личное сообщение · #4

Подожди не торопись, ты в курсе в ресурсах exe'шник и dll'ка лежат? exe'шник -.NETFramework 4.0, dll'ка чем то запакована.

тут расшифровщик http://event.myfabis.ru/launchertest/config/config
Code:
  1. 00477156  |.  8A4418 FF     MOV AL,BYTE PTR DS:[EBX+EAX-1]
  2. 0047715A  |.  33D2          XOR EDX,EDX
  3. 0047715C  |.  8AD0          MOV DL,AL
  4. 0047715E  |.  83FA 3D       CMP EDX,3D                               ; Switch (cases 2B..7A, 5 exits)
  5. 00477161  |.  7F 14         JG SHORT 00477177
  6. 00477163  |.  74 3B         JE SHORT 004771A0
  7. 00477165  |.  83EA 2B       SUB EDX,2B
  8. 00477168  |.  74 1F         JZ SHORT 00477189
  9. 0047716A  |.  83EA 04       SUB EDX,4
  10. 0047716D  |.  74 20         JZ SHORT 0047718F
  11. 0047716F  |.  4A            DEC EDX
  12. 00477170  |.  83EA 0A       SUB EDX,0A
  13. 00477173  |.  72 20         JB SHORT 00477195
  14. 00477175  |.  EB 44         JMP SHORT 004771BB
  15. 00477177  |>  83C2 BF       ADD EDX,-41
  16. 0047717A  |.  83EA 1A       SUB EDX,1A
  17. 0047717D  |.  72 26         JB SHORT 004771A5
  18. 0047717F  |.  83C2 FA       ADD EDX,-6
  19. 00477182  |.  83EA 1A       SUB EDX,1A
  20. 00477185  |.  72 29         JB SHORT 004771B0
  21. 00477187  |.  EB 32         JMP SHORT 004771BB
  22. 00477189  |>  66:B8 3E00    MOV AX,3E                                ; Case 2B ('+') of switch FABISDayZLauncher.47715E
  23. 0047718D  |.  EB 30         JMP SHORT 004771BF
  24. 0047718F  |>  66:B8 3F00    MOV AX,3F                                ; Case 2F ('/') of switch FABISDayZLauncher.47715E
  25. 00477193  |.  EB 2A         JMP SHORT 004771BF
  26. 00477195  |>  25 FF000000   AND EAX,000000FF
  27. 0047719A  |.  66:83E8 FC    SUB AX,0FFFC
  28. 0047719E  |.  EB 1F         JMP SHORT 004771BF
  29. 004771A0  |>  83C8 FF       OR EAX,FFFFFFFF                          ; Case 3D ('=') of switch FABISDayZLauncher.47715E
  30. 004771A3  |.  EB 1A         JMP SHORT 004771BF
  31. 004771A5  |>  25 FF000000   AND EAX,000000FF
  32. 004771AA  |.  66:83E8 41    SUB AX,41
  33. 004771AE  |.  EB 0F         JMP SHORT 004771BF
  34. 004771B0  |>  25 FF000000   AND EAX,000000FF
  35. 004771B5  |.  66:83E8 47    SUB AX,47
  36. 004771B9  |.  EB 04         JMP SHORT 004771BF
  37. 004771BB  |>  66:B8 FEFF    MOV AX,0FFFE                             ; Default case of switch FABISDayZLauncher.47715E
  38. 004771BF  |>  66:83F8 FE    CMP AX,0FFFE                             ; Cases 30 ('0'), 31 ('1'), 32 ('2'), 33 ('3'), 34 ('4'), 35 ('5'), 36 ('6'), 37 ('7'), 38 ('8'), 39 ('9'), 41 ('A'), 42 ('B'), 43 ('C'), 44 ('D'), 45 ('E'), 46 ('F'), 47 ('G'), 48 ('H'), 49 ('I'), 4A ('J'), 4B ('K'), 4C ('L'), 4D ('M'), 4E ('N'), 4F ('O...
  39. 004771C3  |.  74 09         JE SHORT 004771CE
  40. 004771C5  |.  0FB7D6        MOVZX EDX,SI
  41. 004771C8  |.  66:894455 F0  MOV WORD PTR SS:[EDX*2+EBP-10],AX
  42. 004771CD  |.  46            INC ESI
  43. 004771CE  |>  43            INC EBX
  44. 004771CF  |>  3BFB          /CMP EDI,EBX
  45. 004771D1  |.  7C 0A         |JL SHORT 004771DD
  46. 004771D3  |.  66:83FE 04    |CMP SI,4
  47. 004771D7  |.0F82 76FFFFFF |JB 00477153
  48. 004771DD  |>  66:83FE 04    |CMP SI,4
  49. 004771E1  |.  75 7F         |JNE SHORT 00477262
  50. 004771E3  |.  33F6          |XOR ESI,ESI
  51. 004771E5  |.  8D45 EC       |LEA EAX,[EBP-14]
  52. ...

расшифрованные данные прикреплены
f114_04.10.2014_EXELAB.rU.tgz - decrypt_data.txt

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

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

Создано: 04 октября 2014 19:57 · Поправил: kifir4ik
· Личное сообщение · #5

получается что сначала он скачивает код отсюда http://event.myfabis.ru/launchertest/config/config
и им расшифровывает dll ?
я думал там конфиг, снифал трафик он туда первым делом обращается.
По сниферу
Сначала обращается на http://event.myfabis.ru/launchertest/config/config
патом Get http://event.myfabis.ru/launchertest/auth/index.php с каким-то кодом думаю инфа о железе
далее получает форму авторизации http://event.myfabis.ru/launchertest/auth/pages/login.php
предполагаю далее сравнивает полученный код с кодом в базе и выдает ответ пропустить или нет



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 05 октября 2014 11:12 · Поправил: ELF_7719116
· Личное сообщение · #6

Во-первых, очевидно, что decrypt_data.txt это по сути скрипт. лаунчер сначала запрашивает данные с сервера, расшифровывает (алго вроде знаком, но назвать точно не смогу) и получает скрипт к действию (всякие сервера и порты, ПАРОЛИ (в открытом виде), откуда что качать и тд), потом разбирает скрипт:
Code:
  1. 0047DAE6  |.  BA A8E34700   MOV EDX,0047E3A8                         ; ASCII "main" //типа ID скрипта
  2. 0047DAEB  |.  E8 E00CFFFF   CALL 0046E7D0                            ; [FABISDayZLauncher.0046E7D0
  3. 0047DAF0  |.  8BD8          MOV EBX,EAX
  4. 0047DAF2  |.  85DB          TEST EBX,EBX
  5. 0047DAF4  |.  0F84 02010000 JZ 0047DBFC
  6. ... и ниже тоже самое с URLLauncher, URLBattleEye, LauncherRequiredVersion, LauncherVersion, VERIFY_CRC32,

кстати эти функция возвращает CRC32 и ложит его у себя
Code:
  1. 0047DBE0  |.  8B15 78FE4900 MOV EDX,DWORD PTR DS:[49FE78]
  2. 0047DBE6  |.  8902          MOV DWORD PTR DS:[EDX],EAX //сейв CRC32

CRC32 наверняка клиента. эт я намекаю на то, что если будешь патчить файло, не забудь за нее.

потом извлекает из ресурсов SEVENZIP-aka 7z.zip(архиватор) в ...\Application Data\FABIS\DayZLauncher\lib
Code:
  1. 00496F59  |.  A1 20FD4900   MOV EAX,DWORD PTR DS:[49FD20]
  2. 00496F5E  |.  C600 01       MOV BYTE PTR DS:[EAX],1
  3. 00496F61  |>  E8 8665FEFF   CALL 0047D4EC                         // тут SEVENZIP

следом идет ексешник (слово VERIFY должно настораживать), который ложиться в ...\Application Data\FABIS\DayZLauncher\temp, причем с ранд именем
Code:
  1. 0047D081  |.  B9 98D14700   MOV ECX,0047D198                         ; ASCII ".exe"
  2. 0047D086  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
  3. 0047D089  |.  E8 C679F8FF   CALL 00404A54
  4. 0047D08E  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-0C]
  5. 0047D091  |.  E8 86BDFFFF   CALL 00478E1C                            ; [FABISDayZLauncher.00478E1C
  6. 0047D096  |.  8945 EC       MOV DWORD PTR SS:[EBP-14],EAX
  7. 0047D099  |.  8B15 98FB4900 MOV EDX,DWORD PTR DS:[49FB98]
  8. 0047D09F  |.  8B12          MOV EDX,DWORD PTR DS:[EDX]
  9. 0047D0A1  |.  8D45 F8       LEA EAX,[EBP-8]
  10. 0047D0A4  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-0C]
  11. 0047D0A7  |.  E8 A879F8FF   CALL 00404A54
  12. 0047D0AC  |.  33C0          XOR EAX,EAX
  13. 0047D0AE  |.  55            PUSH EBP
  14. 0047D0AF  |.  68 41D14700   PUSH 0047D141
  15. 0047D0B4  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
  16. 0047D0B7  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP               ; Installs SE handler 47D141
  17. 0047D0BA  |.  68 A8D14700   PUSH 0047D1A8                            ; /Arg2 = ASCII "VERIFY"
  18. 0047D0BF  |.  68 B0D14700   PUSH 0047D1B0                            ; |Arg1 = ASCII "EXE"
  19. 0047D0C4  |.  8B0D 68064A00 MOV ECX,DWORD PTR DS:[4A0668]            ; |
  20. 0047D0CA  |.  B2 01         MOV DL,1                                 ; |
  21. 0047D0CC  |.  A1 786E4100   MOV EAX,DWORD PTR DS:[416E78]            ; |
  22. 0047D0D1  |.  E8 1EE1F9FF   CALL 0041B1F4                            ; \FABISDayZLauncher.0041B1F4
  23. ... CreateFile и тд и тп

для ексешника нужно что-то отличное от оледебагера-например "IL Дизассемблер" из комплекта Visual Studio. Забегая вперед, скажу что этих 6 килобайтах - класс AntiFreeze, который конечно не имеет ничего общего с антифризом для машины и переводится ... ?! и как я понял WinExec должен сработать когда CRC32 не было найдено:
Code:
  1. 0047D0F1  |.  8B15 78FE4900 MOV EDX,DWORD PTR DS:[49FE78] //ВСПОМИНАЕМ CRC32
  2. 0047D0F7  |.  3B02          CMP EAX,DWORD PTR DS:[EDX]  //у меня 0, винексек не срабатывает
  3. 0047D0F9  |.  75 3A         JNE SHORT 0047D135

ole32, работа с ieframe
потом вроде должна быть какая-то синхронизация с профилем http://event.myfabis.ru/launchertest/auth/pages/loginok.php?data=
в цикле формируются строки (ВШИТЫ в программу) из условий
Code:
  1. 00497A31  |> /8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]
  2. 00497A34  |. |E8 CFCFF6FF   |CALL 00404A08
  3. 00497A39  |. |85C0          |TEST EAX,EAX
  4. ... начинается

вроде тупо меняются места следования
которые шифруются
ну а потом уже http://event.myfabis.ru/launchertest/auth/index.php

дальше сам пробуй. непосредственно привязки к железу(HWID) я не наблюдаю.

71be_05.10.2014_EXELAB.rU.tgz - verify.zip

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

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

Создано: 05 октября 2014 14:16
· Личное сообщение · #7

Если они особо не заморачивались, то ставь бряк на чтение реестра (BIOS и что то подобное на централ процессор\0 должно быть при вызове) , если нет, то на GetValueInformation.Обычно так собирают инфу для привязки. А уж если вообще ничего не сработало, то читай про WMI.



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 05 октября 2014 15:47
· Личное сообщение · #8

vovanre пишет:
GetValueInformation

GetVolumeInformation
Code:
  1. BOOL WINAPI GetVolumeInformation(
  2.   _In_opt_   LPCTSTR lpRootPathName,
  3.   _Out_opt_  LPTSTR lpVolumeNameBuffer,
  4.   _In_       DWORD nVolumeNameSize,
  5.   _Out_opt_  LPDWORD lpVolumeSerialNumber,
  6.   _Out_opt_  LPDWORD lpMaximumComponentLength,
  7.   _Out_opt_  LPDWORD lpFileSystemFlags,
  8.   _Out_opt_  LPTSTR lpFileSystemNameBuffer,
  9.   _In_       DWORD nFileSystemNameSize
  10. );

vovanre пишет:
то читай про WMI.

не было там WMI.



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

Создано: 05 октября 2014 15:58 · Поправил: vovanre
· Личное сообщение · #9

ELF_7719116 пишет:
GetVolumeInformation

Звиняй, не заметил.

ELF_7719116 пишет:
 _Out_opt_  LPDWORD lpVolumeSerialNumber,


Если , что вот это интересует в первую очередь.



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

Создано: 06 октября 2014 01:10 · Поправил: kifir4ik
· Личное сообщение · #10

Не могу голова уже болит ((
декомпилировал verify, мне кажется не все

1f37_06.10.2014_EXELAB.rU.tgz - verify.rar



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

Создано: 08 октября 2014 18:07
· Личное сообщение · #11

Уже много дней мучаю, не могу разобраться откуда лаунчер берет информацию о железе.
Помогите пожалуйста сам не разберусь




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 08 октября 2014 18:13
· Личное сообщение · #12

Плохо мучаешь. И так топик ни о чём. Или наработки в студию. Или в запросы.



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 08 октября 2014 19:09
· Личное сообщение · #13

kifir4ik пишет:
Уже много дней мучаю, не могу разобраться откуда лаунчер берет информацию о железе.

kifir4ik пишет:
Думаю тут идет зашифрованная информация о железе(При перезапуске код разный).

я не видел, чтобы этот лаунчер обращался к CreateFile, DeviceIoControl, GetVolumeInformation. Последних двух WinAPI даже нет в импорте и адрес их процедур тоже вроде не брался. Есть какой-то замут с вшитыми строками - они местами меняются и шифруются и отправляются. и функция эт находится в каллбеке (где и http://event.myfabis.ru/launchertest/auth/index.php, только на 2 или 1 RETN выше), который срабатывает от SendMessage.
Собственно что она выдает, когда не удается зарегаться на сервере (из-за бана)?



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

Создано: 08 октября 2014 19:58 · Поправил: kifir4ik
· Личное сообщение · #14

уважаемый ELF_7719116
лаунчер пишет ваш компьютер забанен.
Суть этой программы активация зарегистрированных акк на сайте и запуск приложения с параметрами, я запускаю батником, программа нужна только для активации акк
Как я понял она собирает информацию и отправляет на сервер патом получает форму авторизации
отсюда --> http://event.myfabis.ru/launchertest/auth/pages/login.php <-- выходит, что авторизация обрабатывается на вебе. То что он отправил проверяется и записывается на аккаунтом.
экспериментальным путем выяснил, что добавление виртуального жестокого диска позволяет пройти активацию, но Админы банят за обход бана.
уважаемый Archer я только начинаю осваиваться в реверсе. Все что я накопал описано выше.
Я весь погружен в разбор этой программы, даже сны о реверсе.
Приснилось решение, надо найти откуда читается инфа и подменить, если подменить не возможно надо подменить уже в переменной, а дальше пусть шифрует и отправляет на сервер. Правда во сне я нашел это место ((

Добавлено спустя 2 часа 46 минут
собрал все обращения к реестру помогите проанализировать
--> Link <--

Добавлено спустя 5 часов
Вроде собирает инфу о видео карте
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\VEN_1002&DEV_6810&SUBSYS_E271174B&REV_00\4&137a63d&0&0010\HardwareID
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO

Добавлено спустя 19 часов 31 минуту
нашел вызов функции GetDiskFreeSpaceEx



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

Создано: 10 октября 2014 00:36 · Поправил: kifir4ik
· Личное сообщение · #15

Немного продвинулся.
обращение сюда HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\VEN_1002&DEV_6810&SUBSYS_E271174B&REV_00\4&137a63d&0&0010\HardwareID
Это скорее всего проверка на виртуальную машину.
В вызовах Api известных мне функций для привязки я не нашел
-->API<--
Единственное что заинтересовало это
GetUserNameExW
GetUserNameExA
RtlGetCurrentProcessorNumber
NtDeviceIoControlFile


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


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