Gnosis Опубликовано 16 октября, 2017 Поделиться Опубликовано 16 октября, 2017 Всем хао! Впервые пишу на форуме, так что тему можно легко переместить в правильном направлении. Дело, собственно, вот в чем, есть в игре такая фича - "свободное перемещение оружия", из-за которого затрудняется стрельба "от бедра". Нашёл с помощью CE адреса, отвечающее за это. Адреса эти динамические (меняются только две цифры в середине), указателей на них нет или я не могу их найти. В инструкции эти адреса являются значениями edx. Если присвоить в скрипте СЕ, например, [edx+10],#0, то позиция оружия замораживается, но при обращении в игре к какой-нить UI-функции, к примеру, "счет", игра крашится. Однако, если присвоить, в том же скрипте, конкретно этим адресам ноль, то все работает как надо, но грезы разбиваются об динамизм)) Ноп инструкции блокирует также и движение мыши, что не есть гут. Помогите советом, как победить енту страсть. Может, кто встречался с подобным. ЗЫ: Не пинайте сильно, я токмо учусь. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 16 октября, 2017 Поделиться Опубликовано 16 октября, 2017 2 часа назад, Gnosis сказал: Помогите советом, как победить енту страсть. Может, кто встречался с подобным. Игра же на UE или не что подобное ему.. Там на этой edx+10 висит с сотенку-другую адресов. Конечно игра отпадет если затереть её, а засовывать туда 0 - это писать в кучу левых адресов 0 - по этому и игра вылетает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 16 октября, 2017 Автор Поделиться Опубликовано 16 октября, 2017 2 минуты назад, LIRW сказал: Игра же на UE или не что подобное ему.. Ну да, это я понимаю, но как вычленить нужный указатель на конкретно создаваемые адреса. Вот в чем вопрос. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 16 октября, 2017 Поделиться Опубликовано 16 октября, 2017 2 минуты назад, Gnosis сказал: Вот в чем вопрос. 1. Фильтры Скрытый текст но лучше посидеть подольше может чо найдешь. 2. Цитируем правильно Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 16 октября, 2017 Автор Поделиться Опубликовано 16 октября, 2017 14 минуты назад, ReWanet сказал: 1. Фильтры Я смотрел это видео. И многие другие. Так ничего не находится. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 16 октября, 2017 Поделиться Опубликовано 16 октября, 2017 9 минут назад, Gnosis сказал: Я смотрел это видео. И многие другие. Так ничего не находится. Ну значит плохо искал.. Смотри \ читай и пытайся. Можешь для начала предоставить: 1. Скрин окна дизассемблера 2. Скрин структуры парочки адресов Адрес который тебе нужен помести в первую группу а парочку других во вторую. ( CTRL + G в окне структур ). 3. Скрин регистров адресов. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 16 октября, 2017 Автор Поделиться Опубликовано 16 октября, 2017 Хорошо, запилю все по феншую)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 16 октября, 2017 Автор Поделиться Опубликовано 16 октября, 2017 Не вставляются по феншую у меня скрины (возможно прав не хватает), только так: Скрытый текст http://c2n.me/3OCBCaw http://c2n.me/3OCBGM0 http://c2n.me/3OCBLzG http://c2n.me/3OCBO7c Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 16 октября, 2017 Поделиться Опубликовано 16 октября, 2017 2 часа назад, Gnosis сказал: Не вставляются по феншую у меня скрины (возможно прав не хватает) Эта игра платная? Если ли возможность где-то пиратку получить ( Ссылки на пиратский контент исключительно в ЛС )? Мог бы позже глянуть если не усну Чертовы аниме. P.S. за споры буду наказывать по этому если видишь что намечается спор то сразу забывай о нем. Наказываются обе стороны и не важно кто был зачинщиком. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 17 октября, 2017 Поделиться Опубликовано 17 октября, 2017 Такс сделал [ No Recoil ] твой..То как искал: Скрытый текст Там где зависло. Заморозил каждое значение отдельно и выявил что 2128 ( или какое там ) нужный адрес. При его заморозки дуло уводит быстрее. Поставил бряк и после открыл структуру адреса. И что получилось: Скрытый текст 1. Бесконечные патроны 2. Без отдачи 3. Быстрая стрельба 4. Отдаление рукТаблица: RedOrchestra.CT 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 17 октября, 2017 Поделиться Опубликовано 17 октября, 2017 В 17.10.2017 в 21:54, ReWanet сказал: 4. Отдаление рук Да уж. У нас длинные руки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 18 октября, 2017 Автор Поделиться Опубликовано 18 октября, 2017 (изменено) В 17.10.2017 в 22:54, ReWanet сказал: 4. Отдаление рук Болшое и человеческое тебе за труд! Завтра роспись у меня с одной девачкай, а после постараюсь во всем разобраться. Но уверен, что ты молодец! (как в репку тебе дать, не нашел, но плюсую духовно ) ЗЫ: Глянул табличку, все хорошо, отдачи нет и рапид-файер, но основная задача все же не решена. движения ружжа так и осталось произвольным. Может, у тебя все норм было, просто разница клиентов? Изменено 19 октября, 2017 пользователем Gnosis Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 5 часов назад, Gnosis сказал: Завтра роспись у меня с одной девачкай, а после постараюсь во всем разобраться. Это выглядит как похвалился Ну тогда поздравляем, а по репе Rewanet'_у давать не надо, моделировать то у нас кто тогда будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 3 часа назад, LIRW сказал: Ну тогда поздравляем Спасибо, но не с чем особо. Простая формальность ну и повод выпить))) Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 9 часов назад, Gnosis сказал: но основная задача все же не решена (Отдача от оружия)Движение рук -> NoRecoil Разброс пуль -> NoSpread Думаю NoSpread и сам уже сделаешь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 (изменено) 1 час назад, ReWanet сказал: Думаю NoSpread и сам уже сделаешь. РеВанет, ты, может быть, не понял, что я имел в виду. Смотри, это не разброс, ты движешь мышку и ствол уходит от центра, т.е. в центр не стреляет. Я не знаю, как это называется по-английски. Сам попробуй и увидишь, как это действует (поверни мышь до упора влево и вправо). В любом случае, спасибо тебе за труды. Сейчас у меня пройдут веселые дни и я сам поковыряюсь на основе твоих изысканий) За это отвечает два адреса по оси координат х и у, об этом я писал выше и на скринах их выделил. Изменено 19 октября, 2017 пользователем Gnosis Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 8 минут назад, Gnosis сказал: ты движешь мышку и ствол уходит от центра, т.е. в центр не стреляет. Я понял тебя.. Посмотрю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 4 часа назад, ReWanet сказал: Я понял тебя. Буду ждать с нетерпением. Спасибо еще раз, камрад! Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 1 час назад, Gnosis сказал: Буду ждать с нетерпением. Демонстрация: Скрытый текст https://i.imgur.com/0acxgps.gifv Код: Скрытый текст [ENABLE] aobscan(HandMove,8bxxxxxxxxxxc1xxxxf7xx83xxxx89xxxx8dxxxxxxxxxxe8) alloc(newmem,$1000,D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5114) label(code) label(return) newmem: code: mov [edx+0000057C],0 mov [edx+00000580],0 mov esi,[edx+00000590] jmp return HandMove: jmp newmem nop return: registersymbol(HandMove) [DISABLE] HandMove: mov esi,[edx+00000590] unregistersymbol(HandMove) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5114 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+50EF: 5D - pop ebp D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+50F0: C2 1000 - ret 0010 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+50F3: 8B 83 0CCA0200 - mov eax,[ebx+0002CA0C] D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+50F9: 83 B8 DC010000 00 - cmp dword ptr [eax+000001DC],00 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5100: 74 0C - je 08C69C1E D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5102: 8B CB - mov ecx,ebx D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5104: E8 F7BFFEFF - call 08C55C10 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5109: E9 C4020000 - jmp 08C69EE2 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+510E: 8B 4B 08 - mov ecx,[ebx+08] D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5111: 8B 51 34 - mov edx,[ecx+34] // ---------- INJECTING HERE ----------- D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5114: 8B B2 90050000 - mov esi,[edx+00000590] // ---------- DONE INJECTING ---------- D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+511A: C1 EE 1E - shr esi,1E D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+511D: F7 D6 - not esi D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+511F: 83 E6 01 - and esi,01 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5122: 89 75 E8 - mov [ebp-18],esi D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5125: 8D 8D 50FFFFFF - lea ecx,[ebp-000000B0] D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+512B: E8 60BBFEFF - call 08C557A0 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5130: 8B 07 - mov eax,[edi] D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5132: 8B CF - mov ecx,edi D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5134: C6 45 FC 03 - mov byte ptr [ebp-04],03 D3D9Drv.UD3D9RenderDevice::UD3D9RenderDevice+5138: FF 90 98000000 - call dword ptr [eax+00000098] } Таблица: RedOrchestra.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 (изменено) Так я и делал, но после перезагрузки уровня, все слетает. Щас табличку попробую, но по коду - то же, что и я делал. ЗЫ: Да, код не работает(( Я ж говорил, что он динамический, так и есть. Ругается при смене левла. Ты так же, как и я, просто присвоил нули динамическим адресам. Изменено 19 октября, 2017 пользователем Gnosis Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 20 минут назад, Gnosis сказал: Так я и делал, но после перезагрузки уровня, все слетает. Какие "левла"? У меня все работает.. Какие динамические адреса? Скинь свой скрипт.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 я не имею прав прикреплять файлы(( Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 5 минут назад, Gnosis сказал: я не имею прав прикреплять файлы(( А залить на другой источник не? И да я спросил не только про скрипт. Ты мне скажи что за "смена левела" и "динамические адреса". У меня скрипт работает на ура на любой карте. Ссылка на комментарий Поделиться на другие сайты Поделиться
Gnosis Опубликовано 19 октября, 2017 Автор Поделиться Опубликовано 19 октября, 2017 (изменено) 5 минут назад, ReWanet сказал: У меня скрипт работает на ура ну ты же в сингл играешь, а я в мульт. В сингле, возможно, и работает, но при смене сессии в мульте, адреса обнуляются. Регистр тот же, но имена адресов меняются. Остается и инструкция. Вот как вычислить смену адресов? По какому принципу они меняются? Ведь должен быть статик. Скрытый текст { Game : RedOrchestra.exe Version: Date : 2017-10-15 Author : hp This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,Core.dll,03 C2 89 03 8B D8 8B 44 24 14) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: cmp [ebx],eax je code code: mov [0DB60580],#0 mov [0DB6057C],#0 mov [ebx],eax mov ebx,eax mov eax,[esp+14] jmp return INJECT+02: jmp newmem nop nop nop return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT+02: db 89 03 8B D8 8B 44 24 14 unregistersymbol(INJECT) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Core.dll"+26B6E "Core.dll"+26B54: 75 10 - jne Core.dll+26B66 "Core.dll"+26B56: 8B 4E 08 - mov ecx,[esi+08] "Core.dll"+26B59: 6A 00 - push 00 "Core.dll"+26B5B: 40 - inc eax "Core.dll"+26B5C: 56 - push esi "Core.dll"+26B5D: 89 46 0C - mov [esi+0C],eax "Core.dll"+26B60: FF 15 F8 68 1D 10 - call dword ptr [Core.dll+D68F8] "Core.dll"+26B66: 8B 03 - mov eax,[ebx] "Core.dll"+26B68: 8B 54 24 10 - mov edx,[esp+10] "Core.dll"+26B6C: 03 C2 - add eax,edx // ---------- INJECTING HERE ---------- "Core.dll"+26B6E: 89 03 - mov [ebx],eax "Core.dll"+26B70: 8B D8 - mov ebx,eax "Core.dll"+26B72: 8B 44 24 14 - mov eax,[esp+14] // ---------- DONE INJECTING ---------- "Core.dll"+26B76: 5E - pop esi "Core.dll"+26B77: 89 18 - mov [eax],ebx "Core.dll"+26B79: 5B - pop ebx "Core.dll"+26B7A: 59 - pop ecx "Core.dll"+26B7B: C2 08 00 - ret 0008 "Core.dll"+26B7E: CC - int 3 "Core.dll"+26B7F: CC - int 3 "Core.dll"+26B80: 51 - push ecx "Core.dll"+26B81: 53 - push ebx "Core.dll"+26B82: 56 - push esi } Изменено 19 октября, 2017 пользователем Gnosis Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 октября, 2017 Поделиться Опубликовано 19 октября, 2017 Проверил через TW все работает. ТС просто не проверял мой скрипт выше ( Который на руки ). Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения