MasterGH Опубликовано 11 марта, 2011 Поделиться Опубликовано 11 марта, 2011 Я написал ДаркБайту предложение добавления LUA-скриптов в таблицу CE (также как и автоассемблерных скрипты)... также чтобы можно было вешать горячие клавиши на скрипт LUA. Так что ждём реакции автора CE. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 26 июня, 2011 Поделиться Опубликовано 26 июня, 2011 Может сделает кто тренер для русской 1С версии?Вот кому интересно можете опробовать мои наработки для 1С-версии 1.1.0.1 с отключенным LIVE. Тестировалось на TLAD, на TBOGT не проверял.Здоровье, деньги, звёзды розыска вроде нашёл. Адреса патронов сбиваются после смены оружия, правильной цепочки указателей до них не нашёл. Полноценных скриптов тоже сделать не смог, т.к. все игровые значения обрабатываются одной функцией LiveGetDWORD или LiveSetDWORD, фильтр пока не получилось написать. В качестве бонуса скрипт заморозки скоростей по осям XYZ (морозятся ГГ, все пешеходы и некоторые (не знаю почему не все) машины) и возможность летать.EFLC.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 26 июня, 2011 Поделиться Опубликовано 26 июня, 2011 По поводу указателей на адреса патронов... Ты не читал мою статью, там даже скрипты есть. Только сейчас увидел версии игр разные... Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 26 июня, 2011 Поделиться Опубликовано 26 июня, 2011 aliast для какой версии CE данная таблица? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 26 июня, 2011 Поделиться Опубликовано 26 июня, 2011 aliast для какой версии CE данная таблица?6.1 Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 6 июля, 2011 Поделиться Опубликовано 6 июля, 2011 Проблему с олей решил, скрипты хексоровского тренера добыл. Вообще всё должно быть несложно, но пока туплю... Итак, функция _XLivePBufferGetDWORD@12 как её окрестил олли работает с неким буфером. В начале этого буфера всегда стоит magic dword DEADDEAD. Далее к этому адресу добавляется смещение 10 и получается исходный адрес патронов, здоровья и всего остального (под каждый параметр отводится свой отдельный буфер). Смещение помоему всегда 10, хотя есть доп. регистр, всегда равный нулю. т.е. получается нужно копать в сторону нахождения инструкции, работающей не с найденным адресом, а с найденным адресом - 10h. Ищем патроны отнимаем 10h от найденного адреса и.. нет, бряк ставить бесполезно, окажемся во всё той же злосчастной _XLivePBufferGetDWORD@12. Бряк нужно ставить на все вызовы этой функции и искать участок кода, в котором через стек передавался бы наш адрес. Причём должен найтись такой код, который передавал бы ТОЛЬКО указатель на адрес буфера с патронами (pBugger+10h = [адрес_патронов]) как то так. Но пока никак... есть у меня эта инструкция для англ. версии игры, но как её найти, если бы её не было ума не приложу)) Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 7 июля, 2011 Поделиться Опубликовано 7 июля, 2011 Кое-что становится ясно. Функции _XLivePBufferGetDWORD@12 через стек передаётся 3 параметра: указатель на буфер с данными, смещение до нужного значения в буфере, которое нужно прочесть (оно всегда равно нулю и ложится в стек командой push 00, а 10h добавляется дальше в теле функции), и переменная, в которую запишется результат выполнения функции. Другими словами нужно поставить условный бряк в олли с условием bp _XLivePBufferGetDWORD@12, [ESP+04]==00B8CE90 где 00B8CE90 - наш буфер ([патроны]-10h), а [ESP+04] - первый аргумент функции в стеке, т.е. указатель. Прерываемся, идём вверх по коду и видим, что в ESP+04 ложится push ecx содержимое регистра ecx. Ещё выше видим что именно представляет собой ecx. А представлять он может либо MOV ECX,DWORD PTR DS:[ECX] (на первом улосвном бряке), либо MOV ECX,DWORD PTR DS:[ECX+60] (на одном из последующих условных бряков). Первая инструкция обрабатывает кучу адресов, зато вторая обрабатывает ТОЛЬКО указатель на буфер с патронами! Вот в неё то и делается инъекция на чит "бесконечные патроны". Точнее не в неё, а в следующую инструкцию, чтобы ecx принял нужное значение указателя на буфер. mov [ecx+10],#999 и готово - _XLivePBufferGetDWORD@12 останется только проглотить уже изменённые данные В исследованном мной тренере дополнительно проводятся проверки cmp ebx,0 и cmp edi,ffffffff неизвестно с какой целью, и без них всё работает. Подозреваю, что все прочие читы делаются схожими методами. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 xlive patcher v1.2. Сразу сюда, быстро, надёжно, не удалят xlive_patcher_v1.2.tar Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 Для GTA он кажется не подходит, хоть и пишет что нашёл live, но патроны не ищутся. При использовании Xliveless всё ищется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 Залей пожалуйста сюда Xliveless Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 (изменено) Xliveless прикрепилВот скрипт для бессмертия, отключения розыска, 1000000 денег (броню пока не делал, да и не нужна она с бессмертием) для версии EFLC от 1С://code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(GM1)label(GM2)label(nocops)label(returnhere)label(originalcode)//label(pBuffer)label(money)label(god)label(armor)label(cops)//registersymbol(pBuffer)registersymbol(money)registersymbol(god)registersymbol(armor)registersymbol(cops)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code herecmp ebx,0 //первый фильтр на буфер с розыскомjne originalcodecmp edx,2000 //второй фильтр на буфер с розыскомjne originalcode//mov [pBuffer],ecxcmp esi,3 //третий фильтр на буфер с розыскомjne originalcodecmp [money],01 //+1000000$?jne GM1mov [ecx+90],#100000GM1:cmp [god],01 //беск. здоровье вкл.?jne GM2//mov [ecx+22D0],(float)10000 //столько здоровья хватит, чтобы не взрываться в машинахmov [ecx+510],(float)10000GM2:cmp [armor],01 //беск. броня вкл.?jne nocops//mov [ecx+2290],(float)1000nocops:cmp [cops],01 //убрать звезды розыска вкл.?jne originalcodemov [ecx+10],00 //нет звёздoriginalcode:lea eax,[esp]push eaxpush 00exit:jmp returnhere//pBuffer://dd 0money:dd 0god:dd 0armor:dd 0cops:dd 0"EFLC.exe"+8F1E3:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)//unregistersymbol(pBuffer)unregistersymbol(money)unregistersymbol(god)unregistersymbol(armor)unregistersymbol(cops)"EFLC.exe"+8F1E3:lea eax,[esp]push eaxpush 00//Alt: db 8D 04 24 50 6A 00[ENABLE]Upd: скрипт обновлен, теперь работает. Правда сравнение cmp edx,2000 (и другие) требует доп. проверки.xliveless-0.999a71.rar Изменено 9 июля, 2011 пользователем aliast Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 Спасибо, можешь помочь мне тут:http://forum.gamehacklab.ru/topic/579-фильтры/page__st__20 и http://forum.gamehacklab.ru/topic/596-unreal-tournament/P.s по твоему вопросу. Может попробовать разделить это всё и сделать как отдельные ф-ции Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 8 июля, 2011 Поделиться Опубликовано 8 июля, 2011 aliast, замени там где надо db на dd или поставь тип данных байта в сравнении. По умолчанию в 32-разрядных приложениях сравниваются значения типа dword-а. Поэтому такой эффект. Ссылка на комментарий Поделиться на другие сайты Поделиться
VoLT Опубликовано 9 июля, 2011 Поделиться Опубликовано 9 июля, 2011 а ведь можно было использовать стандартные процедуры которые от скриптов если интересно могу подсказатьСорцы трейнера от 1с версии кажется 1031 не важно всё равно надо многое переписывать http://www.datafilehost.com/download-adf0f799.htmlИ да он не может выполнять некоторые скриптовые функцииещё информации http://gtamodding.ru/w/index.php?title=Scripting.pasи ещёpush offset loc_C04290 push 62E319C6h // имя процедуры (в ранних версиях текстовое имя процедуры) ((call sub_4CDF70[00C05563]идём туда и находим процедуру получения ID игрока mov eax, dword_F1B4A4cmp eax, 0FFFFFFFFhjnz short loc_C02BA4xor eax, eaxmovsx eax, byte ptr [eax+4DAh]retn[00C02B90] void GetPlayerId()ну и так дальше да в качестве бонуса )00C01650 - mov eax, [esp+arg_0]00C01654 - push esi00C01655 - push eax00C01656 - call sub_87096000C0165B - mov esi, eax00C0165D - mov eax, [esi+58Ch]00C01663 - mov eax, [eax+228h]00C01669 - add esp, 400C0166C - test eax, eax00C0166E - jz short loc_C0167500C01670 - lea ecx, [eax+60h]00C01673 - jmp short loc_C0167700C01675 - xor ecx, ecx00C01677 - call sub_992BB000C0167C - mov ecx, [esp+4+arg_4]00C01680 - cmp ecx, eax00C01682 - jge short loc_C016AE00C01684 - push 000C01686 - push ecx00C01687 - mov ecx, [esi+58Ch]00C0168D - call sub_A158B000C01692 - mov ecx, offset unk_15E326000C01697 - call sub_A6F50000C0169C - cmp byte_182199E, 000C016A3 - jz short loc_C016BF00C016A5 - mov byte_182199E, 000C016AC - pop esi00C016AD - retn00C016AE - push 2710h00C016B3 - push ecx00C016B4 - mov ecx, [esi+58Ch]00C016BA - call sub_A158B000C016BF - pop esi00C016C0 - retn[00C01650] void AlterWantedLevel(Player, unsigned int)После AlterWantedLevel не всегда изменяется уровень разыскиваемости сразу для того что бы применить незамедлительно необходимо так же выполнить [00C01700] ApplyWantedLevelChangeNow(Player)EXE взят с http://www.nodvd.net/850-gta-episodes-from-liberty-city-v11-ru-nodvd.html 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 9 июля, 2011 Поделиться Опубликовано 9 июля, 2011 aliast, замени там где надо db на dd или поставь тип данных байта в сравнении. По умолчанию в 32-разрядных приложениях сравниваются значения типа dword-а. Поэтому такой эффект.Да-да, ошибка была именно в этом) сейчас обновлю скрипт сверху на рабочий.VoLT, спасибо, сейчас гляну. Может чего и пойму) Ссылка на комментарий Поделиться на другие сайты Поделиться
VoLT Опубликовано 9 июля, 2011 Поделиться Опубликовано 9 июля, 2011 aliast собственно разобрал довольно быстро сравнивая в IDA похожие участки кода используя базу от listener'a и свежий дамп с exe эпизодов ... без него и неё ничего бы не вышло PS И да Шефы плохо отозвались об этом методе Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 9 июля, 2011 Поделиться Опубликовано 9 июля, 2011 Лучше меня и Xipho Шефами не величать, а использовать никнеймы. Мы будем рады если называть нас по никнеймам По поводу способа ничего против не имею так как я с ним не работал и тонкостей не узнавал. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 12 августа, 2011 Поделиться Опубликовано 12 августа, 2011 Вот что получилось: +10 тренер для EFLC 1.1.0.1 (1C-версия)http://www.megaupload.com/?d=P2LGA747Исходники прилагаются. Размер архива 9 МБ, сюда не прикрепился, поэтому на файлообменнике... Опции:NUMPAD1: БессмертиеNUMPAD2:Получить бронюNUMPAD3: Стрельба без перезарядкиNUMPAD4: Отключить полициюNUMPAD5: Получить 999999$NUMPAD6: Неубиваемая тачкаNUMPAD7: Телепорт к точке на картеNUMPAD8: Телепорт к цели миссии (работает не всегда)NUMPAD9: Заморозка машин + езда сквозь машины на дорогеNUMPAD0: Режим полёта. Кнопки управления полётом: I, K, J, L, Y, H Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 30 сентября, 2013 Поделиться Опубликовано 30 сентября, 2013 У кого-нибудь есть инфа по указателям с офсетами до всяких там здоровья, брони, координат и проч для гта4? У меня такое ощущение что в ГТА5 движок особо не меняли и офссеты могли приблизительно остаться теми же +- парочка байт. Хочу проверить, но не знаю где офсеты надыбать. Ссылка на комментарий Поделиться на другие сайты Поделиться
cosmaty Опубликовано 1 октября, 2013 Поделиться Опубликовано 1 октября, 2013 У кого-нибудь есть инфа по указателям с офсетами до всяких там здоровья, брони, координат и проч для гта4? У меня такое ощущение что в ГТА5 движок особо не меняли и офсеты могли приблизительно остаться теми же +- парочка байт. Хочу проверить, но не знаю где офсеты надыбать.Даже если и так, то на чем вы собрались проверить, РС версия еще не вышла. Если на PS3, то не прокатит, там совершенно другое распределение памяти.И вычитая офсеты из адреса здоровья вы придете в лучшем случае (если эти офсеты совпадают) к началу блока виртуальной DMA памяти, адрес которого будет меняться после каждого перезапуска игры. И вам надо будет найти инструкцию, которая этот адрес рассчитывает. Если вы и найдете инструкцию, то адрес в который игра запишет начало блока - это стек - регион памяти используемый консолью для просчета, который в GTA5 точно динамический (был бы статика, не пришлось мне искать в структуре игрока и врагов различия для создания фильтра в трейнере). Поэтому тяжело будет снять этот начальный адрес. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 1 октября, 2013 Поделиться Опубликовано 1 октября, 2013 Немного не понял. т.е. цепочки вида [[pLayer+0x14]+0x30] где pPlayer некий статический адрес для PS3 неприменимы? Ну этого не может быть. Я же нашёл цепочки указателей:PlayerHealth = [[0x01BBC58C]+0xC0]PlayerXCoord = [[[0x01BBC58C]+0x1C]+0x40] (+0x44 = Y; +0x48 = Z)Car Engine Health = [[0x01ECCB38]+0x44C]Вроде цепочки рабочие, ни разу не слетали. И ведь есть же читы для девайса usercheat в формате3 pointer_adr offset2 00000000 offset...прочие оффсеты...2 00000000 valueА так да, врядли оффсеты совпадают. Жаль Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения