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

 eXeL@B —› Вопросы новичков —› Multi Theft Auto: San Andreas - отключение проверки клиентских ресурсов
Посл.ответ Сообщение

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

Создано: 23 апреля 2011 00:14 · Поправил: kostay_scr
· Личное сообщение · #1

MTA: SA 1.0.5 [ http://zebra.og-servers.net/mta/mtasa-1.0.5.exe ] (для работы требутся установленная копия игры Grand Theft Auto: San Andreas)
Open-source модификация добавляющая мультиплеер к игре GTA: San Andreas. (код можно найти здесь- [ http://code.google.com/p/mtasa-blue/source/browse/#svn%2Fbranches%2F1.0.5 ])
Цель:
Отключить проверку подлинности файлов клиентских ресурсов(компилированные LUA скрипты) с целью их подмены.

Опишу мои действия по порядку:
Казалось бы что ломать тут нечего - ведь программа open-source, но не тут то было - при замене файла Client.dll (в нём осуществляется проверка ресурсов) войти на сервер не удаётся.
Сначала через перехват пакетов было обнаружено что серверу не понравилась передаваемая dll версия (вероятно дело разработчиков) - версия было подсмотрена и заменена в файле version.h. После чего сервер принял версию dll.
Но к сожалению это не сработало поскольку dll по неизвестной причине после своей рекомпиляции(даже без изменений) или изменения, например через Hiew (попытки чего предпринимались неоднократно), как я понял перестаёт обрабатывать входищие пакеты.НО если изменить в dll строку выводимого текста - то всё проходит на ура - это исключает проверку по чек сумме. Но при изменении инструкции ассемблера, даже до которой выполнение никогда не дойдёт - приводит к потере работоспособности dll.
Никакой защиты или проверки dll нигде в исходных нодах я не обнаружил, но сильно подозреваю что дело в библиотеке netc.dll - исходный код для которой закрыт и именно она отвечает за оброаботку входящих пакетов.Опыта взлома у меня нет, навыки работы с IDA минимальные,знаю C++,Delphi,ассемблер на достаточном уровне. Отлаживать dll я даже и не пытался, так как не знаю как (она подгружается только при необходимости и потом сразу выгружается).
Всё это я пытаюсь взломать уже почти неделю - поэтому и обращаюсь к вам - свои идеи окончательно закончиолись, последней возможностью было пропатчить dll в Hiew, но и она провалилась(dll загружается нормально, но потом то же самое что и с компилированной - похоже что просто перестаёт обрабатывать пакеты).
Надеюсь на любые советы, помощь или наовдки.
Заранее благодарю.
P.S. Я думаю я тут первый кто пытается взломать онлайн-игру на деньги патченьем .dll в Hiew
P.P.S Все другие методы я перепробовал - память защищена, любое редактирование не возможно - сразу выкидывает сервер(к тому же деньги обрабатываются на стороне сервера - так что изменить их можно только из скрипта).
P.P.P.S Я так и непонял почему не работают BB коды




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

Создано: 23 апреля 2011 01:13
· Личное сообщение · #2

kostay_scr выкладывай зашифрованную библиотеку netc.dll посмотрим, что можно будет сделать, а то игру чет неохота качать И заодно приложи Client.dll оригинальную.



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

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

А ты пробовал checkcrc для dll через PETOOLS(PE Editor) делать? Ну или 0 выставить в поле CRC dll



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

Создано: 23 апреля 2011 09:41 · Поправил: kostay_scr
· Личное сообщение · #4

Сверху ссылка только на дополнение(10 МБ), там все файлы.
netc.dll не зашифрован(ну по крайней мере в иде открывается).
В архиве прилагаю client.dll.

2Usulgurt
Не слышал о таком, но обязательно попробую.

6b33_22.04.2011_EXELAB.rU.tgz - client_orig.7z



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

Создано: 23 апреля 2011 09:43 · Поправил: kostay_scr
· Личное сообщение · #5

И вот netc.dll
P.S. Быстро вы, я даже и не ожидал

d04a_22.04.2011_EXELAB.rU.tgz - netc.7z




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

Создано: 23 апреля 2011 09:51 · Поправил: inffo
· Личное сообщение · #6

kostay_scr при загрузке client_orig.dll в ольку требует lua5.1.dll и не загружается, и еще одна дллка нужна будет irrKlang.dll
netc.dll ни чем не запакована и не зашифрована чистый С++, но при загрузке в ольке также требует библиотеку, но уже другую - libcurl.dll.



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

Создано: 23 апреля 2011 10:06
· Личное сообщение · #7

Сейчас всё выложу.
Здесь:
http://zebra.og-servers.net/mta/mtasa-1.0.5.exe - полный дистрибутив со всеми dll.
Если лень качать 10 мегов выкладываю необходимое для netc в 7z:
http://rghost.ru/5294456
В приложении lu5.1.dll
Спасибо за помощь)

ead6_22.04.2011_EXELAB.rU.tgz - lua5.1.7z




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

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

kostay_scr после чего возникает ошибка? Соединение с сервером идет и потом возникает или как?

Нашел такие строки:

Entering the game ...
CONNECTING

Есть такие надписи при входе на сервер?
И напиши какая ошибка возникает, можно скрин.



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

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

Ошибок не возникает, Entering the game выдает, потом, через секунд 10, вместо загрузки игры - Connection timed out
Прикрепляю код client.dll - по моему лучше его посмотреть
Смотрите CClientGame::StartGame и CPacketHandler
Насколько я понял в перекомпилированной(как похоже и в патченой) dll перестают вызываться события обработки входящих пакетов(CPacketHandler)

6eee_23.04.2011_EXELAB.rU.tgz - client.7z




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

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

Положи перекомпилированную версию client.dll, т.к. скомпилировать не удалось многих файлов не хватает для компиляции первый это SharedUtil.h (остальные перечислены в StdInc.h).

kostay_scr пишет:
при замене файла Client.dll (в нём осуществляется проверка ресурсов) на свой войти на сервер не удаётся.


Т.е. с оригинальным все в порядке (удается зайти на сервер)?



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

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

Да конечно с оригинальным всё в порядке - работает как часы.
Выкладываю весь код(кстати на всё что я выкладываю есть ссылки в 1 посте):
http://rghost.ru/5296153
В папке MTA10\mods\deathmatch\ - исходники client.dll, млжете еще покапаться в других исходниках - вдруг там где то защита зарыта
P.S. Адрес функции сравнения чек сумм ресурсов(ту которую нужно поменять) - .10019730 (в оригинальном client.dll) - в коде она CChecksum::CompareWithLegacy
"на свой войти на сервер не удаётся" - похоже лучше ночью не печатать




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

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

kostay_scr чет ошибок при компиляции целая куча, ты сам хоть пробовал компилировать, то что ты положил в архив mta105orig.7z (исправляешь одну появляется еще десять) Если пробовал и у тебя получилось - выложи архив для компиляции client.dll иначе помочь ни чем не смогу



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

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

Я успешно компилировал неоднократно.
Вот архив mta105orig - с ним всё прекрасно компилируется в msvc 2008 .
Какие ошибки?
В архиве все сурсы в папке mta10\mods\deathmatch\_Deathmatch 2008.sln - компилируется на ура, не знаю в чём проблема - я такого не ожидал.
Вы из этой папки компилируете?Там просто ссылки на каталоги повыше.
Ещё можно попробовать в папке shared\Core 2008.sln
Спасибо хоть что пытаетесь помочь))
//Сейчас пробу скомпилировать именно то что положил в архив
Кстати попробуйте компилировать в release
--
И так только что всё прекрасно скомпилировалось!
Прикрепляю журнал построения.

43e1_23.04.2011_EXELAB.rU.tgz - BuildLog.htm




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

Создано: 23 апреля 2011 20:44
· Личное сообщение · #14

kostay_scr пишет:
всё прекрасно компилируется в msvc 2008


Мой косяк, компилировал в старой версии, новой нет Может в понедельник попробую найти новую.



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

Создано: 23 апреля 2011 21:14
· Личное сообщение · #15

Плохо
Но там же есть и для более старых - 2005 и 7.1 - соответствующие файлы.



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

Создано: 24 апреля 2011 02:19
· Личное сообщение · #16

Обнаружил наводку:
CAntiCheat в shared_logic\CAntiCheat.cpp
Реализация отсутствует, но похоже он срабатывал когда я пытался через ольку подправить память игры - сразу lost connection to server.



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

Создано: 24 апреля 2011 07:10
· Личное сообщение · #17

А ты в курсе, что если ты в всю память клиента залить 0xFFFFFFFF, то на сервере даже 0xFF образоваться нигде не сможет? Такой факт ты учитываешь?



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

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

Что вы имеете в виду?
Причём тут "образование на сервере"?
Тут определённо защита от изменения памяти - даже если менять команды до которых не дойдёт выполнение.
Никто не подскажет как это можно обойти?



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

Создано: 24 апреля 2011 15:11
· Личное сообщение · #19

ПООЛУУУЧЛОСЬ!!!!!!!1
Тупой античит не провреял msvcr90.dll!!!
Пропатчив rand я успешно выйграл кучу денег делая ставки на 18 в казино!
Всем спасибо за помощь!
И большое спасибо всем кто помогал в создании "Введение в крэкинг с помощью OllyDbg" - прост о незаменимая вещь для новичка!

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


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

Создано: 25 апреля 2011 00:31
· Личное сообщение · #20

kostay_scr так закрывай тему если помогли




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

Создано: 25 апреля 2011 09:17
· Личное сообщение · #21

Закрою тогда, раз всё получилось.


 eXeL@B —› Вопросы новичков —› Multi Theft Auto: San Andreas - отключение проверки клиентских ресурсов
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати