TheErel Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 Посмотрел видео и захотелось сделать телепорт в игре Роял Квест, по видео сделал код, но мне кажется из-за того что нет свободных регистров координаты ни куда не сохраняются. Скрытый текст [ENABLE] aobscanmodule(Teleport,gaxomofy.dll,89 0B 89 E1 89 8F 98 6C 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(coord) label(tflag) registersymbol(tflag) newmem: cmp byte ptr [tflag],0 je code cmp byte ptr [tflag],1 jne @F push eax mov eax,[ebx] mov [coord],eax mov eax,[ebx+4] mov [coord+4],eax pop eax mov byte ptr [tflag],0 jmp code @@: cmp byte ptr [tflag],2 jne code push eax mov eax,[coord] mov [ebx],eax mov eax,[coord+4] mov [ebx+4],eax pop eax mov byte ptr [tflag],0 code: mov [ebx],ecx mov ecx,esp mov [edi+00006C98],ecx jmp return tflag: db 00 coord: db 00 00 00 00 00 00 00 00 Teleport: jmp newmem nop nop nop nop nop return: registersymbol(Teleport) [DISABLE] //code from here till the end of the code will be used to disable the cheat Teleport: db 89 0B 89 E1 89 8F 98 6C 00 00 unregistersymbol(Teleport) unregistersymbol(tflag) dealloc(newmem) Или что-то не так делаю? По EBX находится одна координата без смещения, на +4 вторая координата, третей нет, пробовал в ручную вписать коорды, возвращался куда нужно, но когда пользуюсь скриптом ничего не происходит, я взял левый регистр и подумал что если пушнуть то он очиститься и там запишутся корды для сохранения нет? Исправление: Посмотрел коорды записываются в этот регистр, почему телепорт не срабатывает, не вписывается что ли? // Для читабельности пользуемся тегом кода. Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 Скрытый текст { Game : rqmain.exe Version: Date : 2017-08-12 Author : User This script does blah blah blah } [ENABLE] aobscanmodule(INJECT3,rqmain.exe,8B 96 68 0B 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(savemem) label(loadmem) label(coordone) label(coordtwo) label(teleport) label(savecoord) registersymbol(coordone) registersymbol(coordtwo) registersymbol(teleport) registersymbol(savecoord) newmem: cmp [savecoord],1 je savemem cmp [teleport],1 je loadmem jmp code savemem: push [esi+00000B64] pop [coordone] push [esi+00000B68] pop [coordtwo] mov [savecoord],0 jmp code loadmem: cmp [coordone],0 je code push [coordone] pop [esi+00000B64] push [coordtwo] pop [esi+00000B68] mov [teleport],0 jmp code code: mov edx,[esi+00000B68] jmp return coordone: dd 0 coordtwo: dd 0 teleport: dd 0 savecoord: dd 0 INJECT3: jmp newmem nop return: registersymbol(INJECT3) [DISABLE] INJECT3: db 8B 96 68 0B 00 00 unregistersymbol(INJECT3) unregistersymbol(coordone) unregistersymbol(coordtwo) unregistersymbol(teleport) unregistersymbol(savecoord) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "rqmain.exe"+CB97B "rqmain.exe"+CB964: 53 - push ebx "rqmain.exe"+CB965: 56 - push esi "rqmain.exe"+CB966: 8B F1 - mov esi,ecx "rqmain.exe"+CB968: 8B 08 - mov ecx,[eax] "rqmain.exe"+CB96A: 8B 40 08 - mov eax,[eax+08] "rqmain.exe"+CB96D: 57 - push edi "rqmain.exe"+CB96E: 89 4C 24 24 - mov [esp+24],ecx "rqmain.exe"+CB972: 8D 4C 24 1C - lea ecx,[esp+1C] "rqmain.exe"+CB976: 51 - push ecx "rqmain.exe"+CB977: 89 54 24 2C - mov [esp+2C],edx // ---------- INJECTING HERE ---------- "rqmain.exe"+CB97B: 8B 96 68 0B 00 00 - mov edx,[esi+00000B68] // ---------- DONE INJECTING ---------- "rqmain.exe"+CB981: 6A 00 - push 00 "rqmain.exe"+CB983: 52 - push edx "rqmain.exe"+CB984: 89 44 24 38 - mov [esp+38],eax "rqmain.exe"+CB988: E8 15 9A 2E 00 - call rqmain.exe+3B53A2 "rqmain.exe"+CB98D: 8B 8E 64 0B 00 00 - mov ecx,[esi+00000B64] "rqmain.exe"+CB993: F3 0F 10 44 24 1C - movss xmm0,[esp+1C] "rqmain.exe"+CB999: 8D 44 24 10 - lea eax,[esp+10] "rqmain.exe"+CB99D: 50 - push eax "rqmain.exe"+CB99E: 6A 00 - push 00 "rqmain.exe"+CB9A0: 51 - push ecx } Вынеси в таблицу [ teleport ] и [ savecoord ] после сначала установи в адресе [ savecoord ] 1 и после чего можешь в адресе [ teleport ] установить 1 и переместишься в сохраненные координаты. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 (изменено) 2 часа назад, what228 сказал: Показать содержимое Вынеси в таблицу [ teleport ] и [ savecoord ] после сначала установи в адресе [ savecoord ] 1 и после чего можешь в адресе [ teleport ] установить 1 и переместишься в сохраненные координаты. А зачем так делать если флаг сохраняет и вроде должен записывать как по видео. + не понимаю как. когда я жму клавишу (для себя поставил нумпад+) во флаге байт меняется на 1 срабатывает на флаге и сохраняются координаты в регистре, нажимаю нумад - 2 по идеи должно записаться. Как на видео Изменено 12 августа, 2017 пользователем TheErel Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 1 минуту назад, TheErel сказал: А зачем так делать если флаг сохраняет и вроде должен записывать как по видео. + непонимаю как. Ты хочешь сделать телепорт но откуда ты будешь брать координату для телепорта? По этому ты сохраняешь сначала координаты а после делаешь туда телепорт. Не понимаешь что? Как добавить адрес в таблицу? Нажми "Add Address Manually" и в строке "Address" напиши "teleport" и нажми "OK" Потом еще один адрес "savecoord" добавь так же. После меняешь число в адресе с 0 на 1 и все. И можешь назначать горячие клавиши на них. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 (изменено) 2 минуты назад, what228 сказал: Ты хочешь сделать телепорт но откуда ты будешь брать координату для телепорта? ebx ebx+4 а флаг тогда зачем? Флаг же делает 1 и 2 , 1 сохраняет, 2 телепортирует, трижды смотрел видео, я что-то не понимаю? Изменено 12 августа, 2017 пользователем TheErel Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 Только что, TheErel сказал: Я дал тебе скрипт который я уже проверил в игре. Используй его. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 1 минуту назад, what228 сказал: Я дал тебе скрипт который я уже проверил в игре. Используй его. Я не понимаю, как сработает savecord и teleport если этих символов нет у меня в скрипте? Мне тяжело далось это видео я просто не понимаю это получаеться мне нужно сделать флаг teleport и флаг savecord ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 3 часа назад, TheErel сказал: Посмотрел коорды записываются в этот регистр, почему телепорт не срабатывает, не вписывается что ли? Скрипт у тебя верный (я бы конечно убрал из него много лишнего), дело думаю в инструкции, скорее всего она работает не только с координатами твоего героя ()нужен фильтр) и ты случайным образом телепортируешь кого-то ещё. Проверь с какими адресами работает твоя инструкция. ПКМ в отладчике по инструкции. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 Только что, TheErel сказал: Я не понимаю, как сработает savecord и teleport если этих символов нет у меня в скрипте? Мне тяжело далось это видео я просто не понимаю это получаеться мне нужно сделать флаг teleport и флаг savecord ? Нажми сюда: И будет мой скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 3 минуты назад, TheErel сказал: мне нужно сделать флаг teleport и флаг savecord ? Для скрипта @what228 да нужно два флага. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 2 минуты назад, Garik66 сказал: Скрипт у тебя верный (я бы конечно убрал из него много лишнего), дело думаю в инструкции, скорее всего она работает не только с координатами твоего героя ()нужен фильтр) и ты случайным образом телепортируешь кого-то ещё. Проверь с какими адресами работает твоя инструкция. ПКМ в отладчике по инструкции. Благодарю, не заметил, работает еще с 8 чем-то. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 3 минуты назад, Garik66 сказал: Скрипт у тебя верный (я бы конечно убрал из него много лишнего), дело думаю в инструкции, скорее всего она работает не только с координатами твоего героя ()нужен фильтр) и ты случайным образом телепортируешь кого-то ещё. В инструкции ТС только 3 адреса и они связанные с героем. 1. Координата 1 2. Координата 2 3. Координата 3 ( скорее всего ) В его адресе идет запись из ecx в [ebx] и если делать скрипт на той инструкции то могут быть проблемы ( возможно только я столкнулся с ними ). Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 2 минуты назад, TheErel сказал: Благодарю, не заметил, работает еще с 8 чем-то. У @what228 скрипт основан на другой инструкции (раскрой спойлер), которая работает только с координатами ГГ. И фильтр соответственно он не использует. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 4 минуты назад, what228 сказал: В инструкции ТС только 3 адреса и они связанные с героем. 1. Координата 1 2. Координата 2 3. Координата 3 ( скорее всего ) В его адресе идет запись из ecx в [ebx] и если делать скрипт на той инструкции то могут быть проблемы ( возможно только я столкнулся с ними ). Не заметил что ты работал с другой инструкцией, у тебя в коде меньше надписей чем у меня, я думал что бы зарегистрировать коорды нужен регистр вообще не понятно как но у тебя проще код выглядит, ууу. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 20 минут назад, Garik66 сказал: Скрипт у тебя верный (я бы конечно убрал из него много лишнего) А имено? Я смотрел по видео так что я не знал как можно упростить. Да если использую его скрипт игра вылетает. Но я уже понял что не с тем работаю ну или сделаю фильтр Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 4 минуты назад, TheErel сказал: Да если использую его скрипт игра вылетает. Мой скрипт? Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 2 минуты назад, what228 сказал: Мой скрипт? Да. может мои где-то срабатывают еще, по новой сделаю по твоему примеру, у тебя так упрощено. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 27 минут назад, TheErel сказал: А имено? Если бы выложил скрипт с ЛОГАМИ было бы проще, а так: Скрытый текст [ENABLE] aobscanmodule(Teleport,gaxomofy.dll,89 0B 89 E1 89 8F 98 6C 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(coord) label(tflag) registersymbol(tflag) registersymbol(Teleport) newmem: cmp [tflag],1 jne @F push eax mov eax,[ebx] mov [coord],eax mov eax,[ebx+4] mov [coord+4],eax pop eax mov [tflag],0 jmp code @@: cmp [coord],0 je code cmp [tflag],2 jne code push eax mov eax,[coord] mov [ebx],eax mov eax,[coord+4] mov [ebx+4],eax pop eax mov [tflag],0 code: mov [ebx],ecx mov ecx,esp mov [edi+00006C98],ecx jmp return tflag: dd 00 coord: db 00 00 00 00 00 00 00 00 Teleport: jmp newmem db 90 90 90 90 90 return: [DISABLE] //code from here till the end of the code will be used to disable the cheat Teleport: db 89 0B 89 E1 89 8F 98 6C 00 00 unregistersymbol(Teleport) unregistersymbol(tflag) dealloc(newmem) Зы ну и само собой нужно добавить фильтр в скрипт. // Поправил 49 строку кода у тебя там было "ви" а не "db" // what228 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 12 августа, 2017 Поделиться Опубликовано 12 августа, 2017 18 минут назад, TheErel сказал: Да. может мои где-то срабатывают еще, по новой сделаю по твоему примеру, у тебя так упрощено. Ты явно ошибку допускаешь где-то. Возможно метка INJECT3 у тебя уже есть. // Сенк за правку. Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 12 августа, 2017 Автор Поделиться Опубликовано 12 августа, 2017 6 минут назад, what228 сказал: Ты явно ошибку допускаешь где-то. Возможно метка INJECT3 у тебя уже есть. Все вышло, благодарю. Удобный у тебя код) Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 13 августа, 2017 Автор Поделиться Опубликовано 13 августа, 2017 Как найти туман, он находится в той же структуре что и макс кол-во зума камеры? Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 20 августа, 2017 Автор Поделиться Опубликовано 20 августа, 2017 Скажи что не так делаю какой раз вникаю уже кровь с ушей голова болит а я бьюсь с этой дрянью Мне нужно что бы сохранять не одну позиции а две. Скрытый текст [ENABLE] aobscanmodule(TeleportHack,rqmain.exe,8B 96 68 0B 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(savemem) label(loadmem) label(coordone) label(coordtwo) label(teleport) label(savecoord) registersymbol(coordone) registersymbol(coordtwo) registersymbol(teleport) registersymbol(savecoord) label(savemem1) label(loadmem1) label(coordone1) label(coordtwo1) label(teleport1) label(savecoord1) registersymbol(coordone1) registersymbol(coordtwo1) registersymbol(teleport1) registersymbol(savecoord1) newmem: cmp [savecoord],1 je savemem cmp [teleport],1 je loadmem cmp [savecoord1],1 je savemem1 cmp [teleport1],1 je loadmem1 jmp code savemem: push [esi+00000B64] pop [coordone] push [esi+00000B68] pop [coordtwo] mov [savecoord],0 jmp code savemem1: push [esi+00000B64] pop [coordone1] push [esi+00000B68] pop [coordtwo1] mov [savecoord1],0 jmp code loadmem: cmp [coordone],0 je code push [coordone] pop [esi+00000B64] push [coordtwo] pop [esi+00000B68] mov [teleport],0 jmp code loadmem1: cmp [coordone1],0 je code push [coordone1] pop [esi+00000B64] push [coordtwo1] pop [esi+00000B68] mov [teleport1],0 jmp code code: mov edx,[esi+00000B68] jmp return coordone: dd 0 coordtwo: dd 0 teleport: dd 0 savecoord: dd 0 coordone1: dd 0 coordtwo1: dd 0 teleport1: dd 0 savecoord1: dd 0 TeleportHack: jmp newmem nop return: registersymbol(TeleportHack) [DISABLE] TeleportHack: db 8B 96 68 0B 00 00 unregistersymbol(TeleportHack) unregistersymbol(coordone) unregistersymbol(coordtwo) unregistersymbol(teleport) unregistersymbol(savecoord) unregistersymbol(coordone1) unregistersymbol(coordtwo1) unregistersymbol(teleport1) unregistersymbol(savecoord1) dealloc(newmem) // Используй именно тег кода, а не симплета. Garik66 ЗЫ: @TheErel Если не знаешь как это делать, вот посмотри видео. Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 августа, 2017 Поделиться Опубликовано 20 августа, 2017 49 минут назад, TheErel сказал: Скажи что не так делаю какой раз вникаю уже кровь с ушей голова болит а я бьюсь с этой дрянью Все так у тебя. Только что проверил. Выносишь savecoord1 и teleport1 в таблицу и все. Ссылка на комментарий Поделиться на другие сайты Поделиться
TheErel Опубликовано 20 августа, 2017 Автор Поделиться Опубликовано 20 августа, 2017 18 минут назад, what228 сказал: Все так у тебя. Только что проверил. Выносишь savecoord1 и teleport1 в таблицу и все. Я так и делал, но в итоге там ставится значение 1 и все и не обнуляется Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 20 августа, 2017 Поделиться Опубликовано 20 августа, 2017 Только что, TheErel сказал: Я так и делал, но в итоге там ставится значение 1 и все и не обнуляется Я только что проверил. Все работает. Скорее всего ошибка на твоей стороне ( я взял твой скрипт а не свой делал ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения