| 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 Не слышал о таком, но обязательно попробую.   6b33_22.04.2011_EXELAB.rU.tgz - client_orig.7z
![]()  | 
| 
 | 
Создано: 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 Спасибо за помощь)   ead6_22.04.2011_EXELAB.rU.tgz - lua5.1.7z
![]()  | 
| 
 | 
Создано: 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)   6eee_23.04.2011_EXELAB.rU.tgz - client.7z
![]()  | 
| 
 | 
Создано: 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 -- И так только что всё прекрасно скомпилировалось! Прикрепляю журнал построения.   43e1_23.04.2011_EXELAB.rU.tgz - BuildLog.htm
![]()  | 
| 
 | 
Создано: 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" - прост о незаменимая вещь для новичка!   | Сообщение посчитали полезным: NRG-500 | 
| 
 | 
Создано: 25 апреля 2011 00:31  · Личное сообщение · #20  | 
| 
 | 
Создано: 25 апреля 2011 09:17  · Личное сообщение · #21  | 
| eXeL@B —› Вопросы новичков —› Multi Theft Auto: San Andreas - отключение проверки клиентских ресурсов | 
| Эта тема закрыта. Ответы больше не принимаются. | 





 И заодно приложи Client.dll оригинальную.

 
 
 Если пробовал и у тебя получилось - выложи архив для компиляции client.dll иначе помочь ни чем не смогу 
 Может в понедельник попробую найти новую.


 Для печати