ShaoShur Опубликовано 24 января, 2020 Поделиться Опубликовано 24 января, 2020 Комрады привет всем! Писал уже в дискорде, отправили создавать ветку на форуме. Проблема следующая: Пытаюсь сделать свободную камеру в игре DarkDevotion. Нашел нужные значения, заменил nop-ами инструкции записывающие по этим значениям. Игра вроде ломается - но камеру можно двигать. Возникла большая проблема с поиском "статических" значений - делал как по видосу, находит не то что нужно. Обе инструкции записывающие в нужное значение указывают на один и тот же адрес: Спойлер Прописал три указателя, на запись к ним никто не обращается. Спойлер На чтение по нижним двум инструкциям никто не обращается. На верхнюю, на чтение обращаются: Спойлер И это значнение уже не находится в поиске. Мне порекомендовали: "Пробуй искать инструкции, читающие верхний найденный указатель, есть вероятность, что на этой инструкции можно будет сделать инъекцию кода, в которой в свою какую-то переменную загонять этот указатель" Но не совсем понятно как это делать, что можно посмотреть, да и вообще это первая игрушка которую ломаю. Буду рад любым понятным для масленка советам! Игра ломается для нужд СНГ спидран комьюнити, в моем лице Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 В 24.01.2020 в 15:05, ShaoShur сказал: Комрады привет всем! Привет! видео (не свободная камера):} скрипт: Спойлер { Game : DarkDevotion.exe Version: Date : 2020-01-25 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(COORD,DarkDevotion.exe,8B 4F 4C 8B 77 58) // should be unique alloc(newmem,$1000) label(code) label(return) label(T_coord) label(T_flag) registersymbol(T_flag) registersymbol(COORD) newmem: cmp [T_flag],2 je @f mov ecx,[edi+4C] cmp [T_flag],1 jne code mov [T_flag],0 mov [T_coord],ecx jmp code @@: cmp [T_coord],0 je code mov ecx,[T_coord] mov [edi+4C],ecx mov [T_flag],0 code: mov esi,[edi+58] jmp return T_coord: dd 0 T_flag: dd 0 COORD: jmp newmem db 90 return: [DISABLE] COORD: db 8B 4F 4C 8B 77 58 unregistersymbol(T_flag) unregistersymbol(COORD) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "DarkDevotion.exe"+74824 "DarkDevotion.exe"+747FB: 89 88 EC 00 00 00 - mov [eax+000000EC],ecx "DarkDevotion.exe"+74801: 0F B7 47 18 - movzx eax,word ptr [edi+18] "DarkDevotion.exe"+74805: 0D 00 00 F5 FF - or eax,FFF50000 "DarkDevotion.exe"+7480A: 50 - push eax "DarkDevotion.exe"+7480B: 57 - push edi "DarkDevotion.exe"+7480C: E8 7F 08 00 00 - call DarkDevotion.exe+75090 "DarkDevotion.exe"+74811: A1 0C 3C 17 00 - mov eax,[DarkDevotion.exe+103C0C] "DarkDevotion.exe"+74816: 83 C4 08 - add esp,08 "DarkDevotion.exe"+74819: 89 B0 EC 00 00 00 - mov [eax+000000EC],esi "DarkDevotion.exe"+7481F: A1 0C 3C 17 00 - mov eax,[DarkDevotion.exe+103C0C] // ---------- INJECTING HERE ---------- "DarkDevotion.exe"+74824: 8B 4F 4C - mov ecx,[edi+4C] "DarkDevotion.exe"+74827: 8B 77 58 - mov esi,[edi+58] // ---------- DONE INJECTING ---------- "DarkDevotion.exe"+7482A: 8B 7F 5C - mov edi,[edi+5C] "DarkDevotion.exe"+7482D: 8B 90 A8 00 00 00 - mov edx,[eax+000000A8] "DarkDevotion.exe"+74833: 8B C1 - mov eax,ecx "DarkDevotion.exe"+74835: 2B C6 - sub eax,esi "DarkDevotion.exe"+74837: 89 4D F0 - mov [ebp-10],ecx "DarkDevotion.exe"+7483A: 33 C9 - xor ecx,ecx "DarkDevotion.exe"+7483C: 89 55 F8 - mov [ebp-08],edx "DarkDevotion.exe"+7483F: 3B C2 - cmp eax,edx "DarkDevotion.exe"+74841: 8B 45 FC - mov eax,[ebp-04] "DarkDevotion.exe"+74844: 0F 9D C1 - setge cl } табличку выложил - ТУТ Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) 1 час назад, Garik66 сказал: Привет! Фига! Круто! Сейчас буду разбираться) Спасибо! Может быть нашел героя, но данное значение отвечало за камеру. Т.е. если я эти две инструкции заменяю nop-ами то изменяя найденное значение - камера отвязывалась от персонажа и показывала другие области экрана Спойлер Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 2 минуты назад, ShaoShur сказал: камера отвязывалась от персонажа и показывала другие области экрана а как камерой управлял? a и d? Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) 2 минуты назад, Garik66 сказал: а как камерой управлял? a и d? Там прилепил картинку. Повесил на "стрелочки" горячие клавиши, увеличивающие и уменьшающие позицию на 150) Я пока даже не пытался в скрипты Если нужно - могу скинуть примерные значения камеры, для легкого поиска. Но ближайшие пару дней буду разбираться с тем что вы нашли) Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 1 минуту назад, ShaoShur сказал: Там прилепил картинку. Повесил на "стрелочки" горячие клавиши, увеличивающие и уменьшающие позицию на 150) Я пока даже не пытался в скрипты Понятно, просто нашел твою инструкцию, чтобы не искать координаты камеры, но она работает с Кило адресов, А как искал координаты камеры? Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 Только что, Garik66 сказал: Понятно, просто нашел твою инструкцию, чтобы не искать координаты камеры, но она работает с Кило адресов, А как искал координаты камеры? Долго и муторно. Мол изменилось/не изменилось. Получилось 1300 значений. Ну и по половине отсеивал "замораживая" адреса) Муторно Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 6 минут назад, ShaoShur сказал: Долго и муторно. Мол изменилось/не изменилось. Получилось 1300 значений. Ну и по половине отсеивал "замораживая" адреса) Муторно Как в CE это делается понятно, что в игре делал? Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) 20 минут назад, Garik66 сказал: Как в CE это делается понятно, что в игре делал? Сдвигал камеру в правую сторону персонажа, при переключении через alt+tab камера фиксировалась в этом положении. Искал увеличенное значение. Потом центрировал на персонаже, и сдвигал влево. Камера начинает "двигаться" если двигать мышку (право-лево), присесть - сдвигается в низ. Жать "W" - сдвигается вверх. Спойлер Это стартовая локация после "обучения". Если сидеть на лестнице, отцентировав камеру значение будет (по горизонтали) ~6990-7000. Максимальный сдвиг вправо (мышью) ~7329, влево ~6663. По веритикали - если стоять где персонаж на картинке - 4593. Смотреть вверх - 4449, в низ 4910. Как то так. Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 1 минуту назад, ShaoShur сказал: Сдвигал камеру в правую сторону персонажа, при переключении через alt+tab камера фиксировалась в этом положении. Искал увеличенное значение. Потом центрировал на персонаже, и сдвигал влево. Камера начинает "двигаться" если двигать мышку (право-лево), присесть - сдвигается в низ. Жать "W" - сдвигается вверх алт таб - понятно. Попробую помочь Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 черт долго Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) 19 минут назад, Garik66 сказал: черт долго Спойлер Это локация где вы телепортировались. Значение по горизонтали. Само значение очень близко к координатам (в плане адреса) да и по значению +- рядом. Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 1 минуту назад, ShaoShur сказал: Это Да нашел уже Все инструкции работают с большим количеством адресов = думаю пока как отделить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 5 минут назад, ShaoShur сказал: Это Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 В 24.01.2020 в 15:05, ShaoShur сказал: Пытаюсь сделать свободную камеру в игре DarkDevotion. Видео: Скрипт "камера": Спойлер { Game : DarkDevotion.exe Version: Date : 2020-01-25 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(COORD_CAM,DarkDevotion.exe,8B 50 4C 8B 81 2C 05 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(p_CAM) registersymbol(p_CAM) registersymbol(COORD_CAM) newmem: cmp [eax],80000091 jne code lea edx,[eax+4C] mov [p_CAM],edx code: mov edx,[eax+4C] mov eax,[ecx+0000052C] jmp return p_CAM: dd 0 COORD_CAM: jmp newmem db 90 90 90 90 return: [DISABLE] COORD_CAM: db 8B 50 4C 8B 81 2C 05 00 00 unregistersymbol(CAM_flag) unregistersymbol(COORD_CAM) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "DarkDevotion.exe"+23666 "DarkDevotion.exe"+23636: 8B 89 30 05 00 00 - mov ecx,[ecx+00000530] "DarkDevotion.exe"+2363C: E8 BF 44 05 00 - call DarkDevotion.exe+77B00 "DarkDevotion.exe"+23641: 8B 0D 0C 3C 17 00 - mov ecx,[DarkDevotion.exe+103C0C] "DarkDevotion.exe"+23647: 85 C0 - test eax,eax "DarkDevotion.exe"+23649: 75 1B - jne DarkDevotion.exe+23666 "DarkDevotion.exe"+2364B: 8B 81 2C 05 00 00 - mov eax,[ecx+0000052C] "DarkDevotion.exe"+23651: 8B 84 81 34 05 00 00 - mov eax,[ecx+eax*4+00000534] "DarkDevotion.exe"+23658: C7 40 08 00 00 00 00 - mov [eax+08],00000000 "DarkDevotion.exe"+2365F: C7 00 00 00 00 00 - mov [eax],00000000 "DarkDevotion.exe"+23665: C3 - ret // ---------- INJECTING HERE ---------- "DarkDevotion.exe"+23666: 8B 50 4C - mov edx,[eax+4C] "DarkDevotion.exe"+23669: 8B 81 2C 05 00 00 - mov eax,[ecx+0000052C] // ---------- DONE INJECTING ---------- "DarkDevotion.exe"+2366F: 8B 84 81 34 05 00 00 - mov eax,[ecx+eax*4+00000534] "DarkDevotion.exe"+23676: 89 50 08 - mov [eax+08],edx "DarkDevotion.exe"+23679: C7 00 00 00 00 00 - mov [eax],00000000 "DarkDevotion.exe"+2367F: C3 - ret "DarkDevotion.exe"+23680: 8B 0D 0C 3C 17 00 - mov ecx,[DarkDevotion.exe+103C0C] "DarkDevotion.exe"+23686: 8B 89 30 05 00 00 - mov ecx,[ecx+00000530] "DarkDevotion.exe"+2368C: E8 6F 44 05 00 - call DarkDevotion.exe+77B00 "DarkDevotion.exe"+23691: 8B 0D 0C 3C 17 00 - mov ecx,[DarkDevotion.exe+103C0C] "DarkDevotion.exe"+23697: 85 C0 - test eax,eax "DarkDevotion.exe"+23699: 75 1B - jne DarkDevotion.exe+236B6 } Скрипт "Привязка камеры к Герою": Спойлер { Game : DarkDevotion.exe Version: Date : 2020-01-25 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(CAM1,DarkDevotion.exe,89 7E 4C C7 86 6A 01 00 00 FF FF FF FF) // should be unique registersymbol(CAM1) CAM1: db 90 90 90 [DISABLE] CAM1: db 89 7E 4C unregistersymbol(CAM1) { // ORIGINAL CODE - INJECTION POINT: "DarkDevotion.exe"+1E4A2 "DarkDevotion.exe"+1E483: F2 0F 2C 78 08 - cvttsd2si edi,[eax+08] "DarkDevotion.exe"+1E488: EB 03 - jmp DarkDevotion.exe+1E48D "DarkDevotion.exe"+1E48A: 8B 78 08 - mov edi,[eax+08] "DarkDevotion.exe"+1E48D: 8B 86 CC 00 00 00 - mov eax,[esi+000000CC] "DarkDevotion.exe"+1E493: 83 F8 05 - cmp eax,05 "DarkDevotion.exe"+1E496: 74 64 - je DarkDevotion.exe+1E4FC "DarkDevotion.exe"+1E498: 83 F8 0E - cmp eax,0E "DarkDevotion.exe"+1E49B: 74 2B - je DarkDevotion.exe+1E4C8 "DarkDevotion.exe"+1E49D: 39 7E 4C - cmp [esi+4C],edi "DarkDevotion.exe"+1E4A0: 74 17 - je DarkDevotion.exe+1E4B9 // ---------- INJECTING HERE ---------- "DarkDevotion.exe"+1E4A2: 89 7E 4C - mov [esi+4C],edi "DarkDevotion.exe"+1E4A5: C7 86 6A 01 00 00 FF FF FF FF - mov [esi+0000016A],FFFFFFFF // ---------- DONE INJECTING ---------- "DarkDevotion.exe"+1E4AF: C7 86 FC 00 00 00 01 00 00 00 - mov [esi+000000FC],00000001 "DarkDevotion.exe"+1E4B9: 5F - pop edi "DarkDevotion.exe"+1E4BA: C7 86 00 01 00 00 01 00 00 00 - mov [esi+00000100],00000001 "DarkDevotion.exe"+1E4C4: 5E - pop esi "DarkDevotion.exe"+1E4C5: 5B - pop ebx "DarkDevotion.exe"+1E4C6: 5D - pop ebp "DarkDevotion.exe"+1E4C7: C3 - ret "DarkDevotion.exe"+1E4C8: 8B 8E D0 00 00 00 - mov ecx,[esi+000000D0] "DarkDevotion.exe"+1E4CE: 85 C9 - test ecx,ecx "DarkDevotion.exe"+1E4D0: 74 71 - je DarkDevotion.exe+1E543 } табличку выложил - ТУТ Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 9 минут назад, Garik66 сказал: Видео: Скрипт "камера": Скрипт "Привязка камеры к Герою": Офигенно! Кстати, скрипт с телепортом можно оставить (я себе уже скопировал, но для будущих поколений). Он очень полезен (там есть баг с камнем портала, нашил когда спидранили, при смещении по горизонтали в момент входа в портал возвращения домой - все твои вещи сохраняются). А можете в двух словах (если возможно)) описать как вы искали указатели статические? Я пока не совсем понимаю как у вас все это получилось. Выглядит очень круто, но как именно получилось выцепить статические указатель - не понятно. Т.е. я повторить такое сам не смогу) Только в скриптах покопаться Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 1 минуту назад, ShaoShur сказал: Офигенно! 1. Цитировать весь пост не нужно - на первый раз устное предупреждение - перечитай правила форума. 2. Я всю табличку выложил телепорт там есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 2 минуты назад, ShaoShur сказал: А можете в двух словах (если возможно)) описать как вы искали указатели статические? там нет статических указателей это на инструкциях скрипты - все это есть в видео уроках и статьях. Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 14 минут назад, Garik66 сказал: там нет статических указателей это на инструкциях скрипты - все это есть в видео уроках и статьях. Понял, буду разбираться, спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 3 минуты назад, ShaoShur сказал: Понял, буду разбираться, спасибо! А фильтр то у тебя работает? Скрипт на камеру? Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) 50 минут назад, Garik66 сказал: А фильтр то у тебя работает? Скрипт на камеру? Камера фиксируется при клике на привязку. Немного ломается интерфейс и управление. Так выглядит указатель. Влево/право тоже не работеат. Спойлер Ну мне чтобы разобраться что происходит необходимо куча времени)) p.s. Кстати, каким то образом "привязка камеры к герою" убирает темный экран. Зону, которая делает все мрачным. Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 (изменено) Так, удалил, повтор Изменено 25 января, 2020 пользователем ShaoShur Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 3 минуты назад, ShaoShur сказал: Камера Нашел четыре указателя (с самым меньшим количеством уровней): Проверь - у тебя работают? DarkDevotion.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
ShaoShur Опубликовано 25 января, 2020 Автор Поделиться Опубликовано 25 января, 2020 5 минут назад, Garik66 сказал: Проверь - у тебя работают? Не а, все так же. А вы на какой версии запускаете? М.б. версию игру поменять, проверить Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 января, 2020 Поделиться Опубликовано 25 января, 2020 2 минуты назад, ShaoShur сказал: А вы на какой версии запускаете? Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения