![]() |
eXeL@B —› Вопросы новичков —› Multi Theft Auto: San Andreas - отключение проверки клиентских ресурсов |
Посл.ответ | Сообщение |
|
Создано: 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 коды ![]() ![]() |
|
Создано: 23 апреля 2011 01:13 · Личное сообщение · #2 |
|
Создано: 23 апреля 2011 06:04 · Поправил: Usulgurt · Личное сообщение · #3 |
|
Создано: 23 апреля 2011 09:41 · Поправил: kostay_scr · Личное сообщение · #4 Сверху ссылка только на дополнение(10 МБ), там все файлы. netc.dll не зашифрован(ну по крайней мере в иде открывается). В архиве прилагаю client.dll. 2Usulgurt Не слышал о таком, но обязательно попробую. ![]() ![]() |
|
Создано: 23 апреля 2011 09:43 · Поправил: kostay_scr · Личное сообщение · #5 |
|
Создано: 23 апреля 2011 09:51 · Поправил: inffo · Личное сообщение · #6 |
|
Создано: 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 Спасибо за помощь) ![]() ![]() |
|
Создано: 23 апреля 2011 10:54 · Личное сообщение · #8 |
|
Создано: 23 апреля 2011 11:22 · Поправил: kostay_scr · Личное сообщение · #9 Ошибок не возникает, Entering the game выдает, потом, через секунд 10, вместо загрузки игры - Connection timed out Прикрепляю код client.dll - по моему лучше его посмотреть ![]() Смотрите CClientGame::StartGame и CPacketHandler Насколько я понял в перекомпилированной(как похоже и в патченой) dll перестают вызываться события обработки входящих пакетов(CPacketHandler) ![]() ![]() |
|
Создано: 23 апреля 2011 13:14 · Личное сообщение · #10 Положи перекомпилированную версию client.dll, т.к. скомпилировать не удалось многих файлов не хватает для компиляции первый это SharedUtil.h (остальные перечислены в StdInc.h). kostay_scr пишет: при замене файла Client.dll (в нём осуществляется проверка ресурсов) на свой войти на сервер не удаётся. Т.е. с оригинальным все в порядке (удается зайти на сервер)? ![]() |
|
Создано: 23 апреля 2011 13:36 · Поправил: kostay_scr · Личное сообщение · #11 Да конечно с оригинальным всё в порядке - работает как часы. Выкладываю весь код(кстати на всё что я выкладываю есть ссылки в 1 посте): http://rghost.ru/5296153 В папке MTA10\mods\deathmatch\ - исходники client.dll, млжете еще покапаться в других исходниках - вдруг там где то защита зарыта ![]() P.S. Адрес функции сравнения чек сумм ресурсов(ту которую нужно поменять) - .10019730 (в оригинальном client.dll) - в коде она CChecksum::CompareWithLegacy "на свой войти на сервер не удаётся" - похоже лучше ночью не печатать ![]() ![]() ![]() |
|
Создано: 23 апреля 2011 18:14 · Личное сообщение · #12 |
|
Создано: 23 апреля 2011 19:08 · Поправил: kostay_scr · Личное сообщение · #13 Я успешно компилировал неоднократно. Вот архив mta105orig - с ним всё прекрасно компилируется в msvc 2008 . Какие ошибки? В архиве все сурсы в папке mta10\mods\deathmatch\_Deathmatch 2008.sln - компилируется на ура, не знаю в чём проблема - я такого не ожидал. Вы из этой папки компилируете?Там просто ссылки на каталоги повыше. Ещё можно попробовать в папке shared\Core 2008.sln Спасибо хоть что пытаетесь помочь)) //Сейчас пробу скомпилировать именно то что положил в архив Кстати попробуйте компилировать в release -- И так только что всё прекрасно скомпилировалось! Прикрепляю журнал построения. ![]() ![]() |
|
Создано: 23 апреля 2011 20:44 · Личное сообщение · #14 |
|
Создано: 23 апреля 2011 21:14 · Личное сообщение · #15 |
|
Создано: 24 апреля 2011 02:19 · Личное сообщение · #16 |
|
Создано: 24 апреля 2011 07:10 · Личное сообщение · #17 |
|
Создано: 24 апреля 2011 13:08 · Личное сообщение · #18 |
|
Создано: 24 апреля 2011 15:11 · Личное сообщение · #19 ПООЛУУУЧЛОСЬ!!!!!!!1 Тупой античит не провреял msvcr90.dll!!! Пропатчив rand я успешно выйграл кучу денег делая ставки на 18 в казино! Всем спасибо за помощь! И большое спасибо всем кто помогал в создании "Введение в крэкинг с помощью OllyDbg" - прост о незаменимая вещь для новичка! ![]() |
|
Создано: 25 апреля 2011 00:31 · Личное сообщение · #20 |
|
Создано: 25 апреля 2011 09:17 · Личное сообщение · #21 |
![]() |
eXeL@B —› Вопросы новичков —› Multi Theft Auto: San Andreas - отключение проверки клиентских ресурсов |
Эта тема закрыта. Ответы больше не принимаются. |