Обойти обнаглевший античит, берущий скриншоты

Тема в разделе "WASM.WIN32", создана пользователем Son of God, 22 июл 2006.

  1. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Привет.
    Нужно обойти античит ssClient. Эта падла снимает скриншоты игры из экрана пользователя и отправляет их на сервер админу. Если бы на этом все заканчивалось, то пусть бы жило. Так этот гребаный античит еще и рабочий стол фиксирует, по крайней мере я видел на скриншоте фоновый рисунок, значки в трее, и даже окно аськи с ником пользователя и контакт листом! Админу игрового сервера это знать совсем ни к чему.
    Вызовы апи я еще не анализировал, т.к. это затруднено. Ни Logger из Debugging Tools, ни BoundsChecker не могут анализировать вызовы апи сетевых приложений. Вызов socket() под ними всегда возвращает -1, и, естественно, программа дальше не работает как надо.
    Я написал прогу, переводящую ssClient на неинтерактивную Window Station и другой Desktop. Ниже привожу код.
    Вопрос. Достаточно ли этого? Или античит все равно может каким-то образом снимать скриншоты?

    Код (Text):
    1. void main()
    2. {
    3.     HWINSTA hWinSta;
    4.     HDESK hDesk;
    5.     STARTUPINFO StartupInfo;
    6.     PROCESS_INFORMATION ProcessInfo;
    7.  
    8.     memset(&StartupInfo, 0, sizeof(STARTUPINFO));
    9.     memset(&ProcessInfo, 0, sizeof(PROCESS_INFORMATION));
    10.  
    11.     hWinSta = CreateWindowStation("FuckSSWindowStation", 0, GENERIC_ALL, NULL);
    12.  
    13.     if (hWinSta == NULL) printf("CreateWindowStation failed.\n");
    14.  
    15.     if (!SetProcessWindowStation(hWinSta)) printf("SetProcessWindowStation failed.\n");
    16.  
    17.     hDesk = CreateDesktop("FuckSSDesktop", NULL, NULL, 0, GENERIC_ALL, NULL);
    18.  
    19.     if (hDesk == NULL) printf("CreateDesktop failed.\n");
    20.  
    21.     StartupInfo.cb = sizeof(STARTUPINFO);
    22.     StartupInfo.lpDesktop = "FuckSSWindowStation\\FuckSSDesktop";
    23.  
    24.     if (!CreateProcess(NULL, "ssc.exe", NULL, NULL, FALSE, NULL, NULL, NULL, &StartupInfo, &ProcessInfo)) printf("CreateProcess failed.\n");
    25.  
    26.     WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    27.  
    28.     if (!CloseDesktop(hDesk)) printf("CloseDesktop failed.\n");
    29.  
    30.     if (!CloseWindowStation(hWinSta)) printf("CloseWindowStation failed.\n");
    31. }
     
  2. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Son of God
    Если он использует GDI в юзермоде, то этого будет достаточно. Другое дело, что админ сразу заподозрит неладно, вместо игры наблюдая чистый фон. Так, что надо параллельно будет иммитировать деятельность игры в другом десктопе.

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

    З.Ы. Вот против таких тупых методов защиты, и работают сетевые взломщики игр вроде моего и продвинутого CheatEngine...
     
  3. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    alpet

    Пусть лучше видит чистый фон, чем конфиденциальную информацию. Имитировать игру - имхо, геморрой.
    Взлому игры этот клиент не препятствует. Он только доставляет админу скриншоты, а тот визуально определяет наличие читов вроде Wallhack. Что есть свинство, я согласен.
    Расскажи про свой взломщик.
     
  4. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Son of God
    Простенький взломщик с открытыми кодами (Delphi 6). Разрабатывается медленно, но уверенно. Обладает очень быстрым поиском (основное достоинство). На сейчас поделен на клиентскую и серверную часть, которые можно на разных компах запускать (с небольшими переделками, можно серверную часть сделать скрытой). Более подробно на сайте wgc.ogl.ru
     
  5. xdf

    xdf New Member

    Публикаций:
    0
    Регистрация:
    14 июл 2006
    Сообщения:
    21
    ssclient, esl aequitas обходятся перехватом 3х функций CreateCompatibleBitmap, ReleaseDC
    и GetTickCount (чтоб не просекли временной простой античита от *очистки* экрана в игре)
    CreateCompatibleBitmap: флаг на отключение визуализации, сохранение текущего тика таймера, ожидание флага успешного отключения, вызов оригинальной функции
    ReleaseDC - флаг на включение визуализации
    GetTickCount: возвращать сохраненное в CreateCompatibleBitmap значение +(rand() % 50)
    в интервале от сохраненного, до вызова ReleaseDC + 1000 (1 сек)

    (c) mattdog
     
  6. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Вроде как прочитал что он скрипны отправляет на указанный ftp, если это правда - моно легко присеч канекты к 21 порту и все дела..
     
  7. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    xdf
    Значит ли это, что моей проги недостаточно? (Сорри, не силен в GDI)

    Flasher
    Если явно помешать соединению, то в принципе может и с сервера начать выкидывать, хотя я не проверял.
     
  8. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Son of God, я включил отслежку канектов к 21 и начал играть гдет 2 часа, потом выхожу - и некаких логов.
    Значит либо это гон что картинки идут на ftp, либо сам клиент не фотает через определённое время, а только по требования с сервера, значит если попытаются, и не получится, подумают что у них косяк :)
    Или моно тревогу подцепить на прогу, если попытаются, выйдешь на раб стол, отрубишь прогу, они сфотают, увидят тя мирно сидяшим на своём раб столе, успокоятся, ты опять врубишь и пойдёшь дальще читерить :))
     
  9. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Еще можно попробовать интересный вариант - установить игру и античит в виртуальную машину, сделать доступ виртуальной машине к реальной сети через NAT, сделать перенаправление портов TCP 27030 и UDP 27030 (стандартные порты ssClient'a) в виртуальную машину, а все остальное пусть идет в реальную. В виртуальной машине запускаем античит и игру без читов (создав локальную игру). А с реальной машины читим :)
     
  10. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Son of God
    Производительность вероятно пострадает...
     
  11. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Поставить приоритет Idle для виртуальной машины, а High - для игры и все ОК.
     
  12. Gideon Vi

    Gideon Vi New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    11
    виртуальные машины научились поддерживать directx игры?
     
  13. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Так в виртуальной машине не нужен DirectX. Режима Software достаточно. Играть ведь с реальной, а виртуальная только для отвода внимания.
     
  14. Gideon Vi

    Gideon Vi New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    11
    А много игор сейчас поддерживают софтварный режим?
    Мне этот вопрос просто интересен, так как недавно очень нужно было запустить одну он-лайн игру под виртуальной. оследнюю игру, которую я вспоминаю с софтом, это анреал.
     
  15. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Half-Life 1 поддерживает. Был успешно запущен под VMware 5 в режиме Software. Насчет остальных не знаю.
     
  16. Gideon Vi

    Gideon Vi New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    11
    Я было надеялся, что есть какой-то способ насильно переводить в софтовый режим =(
    Значит неактуально.
     
  17. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Может и есть. Поищи эмуляторы.