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

 eXeL@B —› Основной форум —› Проблема с Direct3D-wrapper'ом для GTA San Andreas Multiplayer
Посл.ответ Сообщение

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

Создано: 13 июля 2007 14:15
· Личное сообщение · #1

San Andreas Multiplayer (SA-MP) — это довольно сложная программа, запускающая gta_sa.exe как дочерний процесс и манипулирующая им для организации многопользовательской игры по сети. Возникла необходимость перехватить некоторые вызовы Direct3D из gta_sa.exe, запущенного клиентом SA-MP.

Я пробовал два метода: подсовывание фейковой d3d9.dll (враппера к оригинальной dll) в каталог с игрой и dll-иньекцию в память процесса gta_sa.exe.

Проблема: на оба метода SA-MP реагирует одинаково — отображает окно с сообщением о некой "Internal Error" и завершает процесс. На ихнем форуме сказали, что это, типа, так работает их "anti-cheat"-защита. Кстати, перехват Direct3D работает нормально для GTA без SA-MP и для всех пробных D3D9-приложений (я проверял пробным рендерингом прямоугольника в углу экрана).

Вопрос: в каком направлении мне можно покопать? Может, кто-то заинтересуется и немного поможет с обходом этой защиты от D3D-враппинга?

Клиент SA-MP можно скачать здесь: www.sa-mp.com/download.cml
Он устанавливается на саму игру GTA San Andreas. Для проверки подключение к игровому серверу не обязательно, защита срабатывает ещё до подключения к серверу.

D3D9-wrapper с исходниками: scary-zet.fatal.ru/proxydll_9.zip
D3D9-injector с исходниками: scary-zet.fatal.ru/D3D_Starterkit_v3.0b.zip



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

Создано: 13 июля 2007 17:27 · Поправил: Rustem
· Личное сообщение · #2

попробуй враппер сделать не заменой таблицы, а сплайсингом функций
Или остается только дизассемблер и отладчик. Либо пиши в личку, разберемся



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 14 июля 2007 23:46
· Личное сообщение · #3

Античит возможно похукал функции вроде WriteProcessMemory и проверяет список загруженных модулей. Надо посмотреть список перехваченных функций (используя AVZ или RkU). В таком случае решением будет инжект не учтенным в античите методом (либо из драйвера).




Ранг: 116.9 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 15 июля 2007 11:01
· Личное сообщение · #4

не знаю что ты конкретно собрался перехватывать, но возможно это тебе поможет:
www.deep-shadows.com/hax/3DRipperDX.htm

-----
Nothing just happens. You choose it to happen.




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

Создано: 15 июля 2007 12:19 · Поправил: Scary Zet
· Личное сообщение · #5

Огромное спасибо за наводку на доселе незнакомую мне вещь, как сплайсинг функций. Поиск в интернете привнёс в мою голову свежие идеи, благодаря которым враппинг D3D удалось-таки заставить работать.


 eXeL@B —› Основной форум —› Проблема с Direct3D-wrapper'ом для GTA San Andreas Multiplayer
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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