Desmos Опубликовано 17 июня, 2020 Поделиться Опубликовано 17 июня, 2020 (изменено) Почему этот код работает без вылетов Спойлер [ENABLE] aobscan(INJECT,F3 0F 7E 4E 20 8B 77) alloc(newmem,$1000) alloc(coords,$1000) label(code) label(return) registersymbol(coords) coords: db 00 00 00 00 newmem: mov [coords],100 jmp code code: movq xmm1,[esi+20] jmp return INJECT: jmp newmem return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 7E 4E 20 unregistersymbol(INJECT) unregistersymbol(coords) dealloc(newmem) А если в коде вместо alloc(coords, $1000) в 6-й строке поставить label(coords), то по какой причине игра вылетает? Как тогда в других скриптах достаточно для инициализации метки указать label(...) и объявить её через db? Вот собственно код, который не работает (игра вылетает). Как раз здесь заменена строка alloc(coords, $1000) на label(coords) Спойлер [ENABLE] aobscan(INJECT,F3 0F 7E 4E 20 8B 77) alloc(newmem,$1000) label(coords) label(code) label(return) registersymbol(coords) coords: db 00 00 00 00 newmem: mov [coords],100 jmp code code: movq xmm1,[esi+20] jmp return INJECT: jmp newmem return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 7E 4E 20 unregistersymbol(INJECT) unregistersymbol(coords) dealloc(newmem) Изменено 17 июня, 2020 пользователем Desmos Ссылка на комментарий Поделиться на другие сайты Поделиться
Hack Опубликовано 17 июня, 2020 Поделиться Опубликовано 17 июня, 2020 newmem: mov [coords],100 jmp code code: movq xmm1,[esi+20] jmp return coords: db 00 00 00 00 INJECT: jmp newmem Ссылка на комментарий Поделиться на другие сайты Поделиться
Desmos Опубликовано 17 июня, 2020 Автор Поделиться Опубликовано 17 июня, 2020 (изменено) 2 часа назад, Hack сказал: newmem: mov [coords],100 jmp code code: movq xmm1,[esi+20] jmp return coords: db 00 00 00 00 INJECT: jmp newmem Спасибо, заработало, чтобы тема не пропадала зря, выложу свой код. Думаю, это неплохой пример слияния (совмещения, объединения) двух скриптов в один. Первый скрипт (inject1) ищет сигнатуру, которая обращается к координатам персонажа. Секция newmem1 записывает координаты нашего персонажа в глобальную метку coords (координаты тип double). Второй скрипт (inject2) ищет сигнатуру, обращающуюся к координатам выпадающего дропа на карте. В итоге, второй скрипт в newmem2 записывает значения координат персонажа, которые добыл нам первый скрипт, в координаты дропа. В итоге, все выпадающие припасы телепортируются к персонажу, и он подбирает их. Вот код Спойлер [ENABLE] aobscan(INJECT1,F3 0F 7E 4E 20 8B 77) aobscan(INJECT2,74 XX F3 0F 7E 42 20 XX XX 74 XX 66 0F D6 41 78 8B 4D F0) alloc(newmem1,$1000) label(newmem2) label(code1) label(code2) label(return1) label(return2) label(coords) registersymbol(coords) newmem1: fld qword ptr [esi+10] fstp qword ptr [coords] fld qword ptr [esi+18] fstp qword ptr [coords+08] fld qword ptr [esi+20] fstp qword ptr [coords+10] jmp code1 code1: movq xmm1,[esi+20] jmp return1 newmem2: fld qword ptr [coords] fstp qword ptr [edx+10] fld qword ptr [coords+08] fstp qword ptr [edx+18] fld qword ptr [coords+10] fstp qword ptr [edx+20] jmp code2 code2: movq xmm0,[edx+20] jmp return2 coords: db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 INJECT1: jmp newmem1 return1: registersymbol(INJECT1) INJECT2+02: jmp newmem2 return2: registersymbol(INJECT2) [DISABLE] INJECT1: db F3 0F 7E 4E 20 INJECT2+02: db F3 0F 7E 42 20 unregistersymbol(INJECT1) unregistersymbol(INJECT2) unregistersymbol(coords) dealloc(newmem1) Изменено 17 июня, 2020 пользователем Desmos 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 июня, 2020 Поделиться Опубликовано 17 июня, 2020 1 час назад, Desmos сказал: В итоге, все выпадающие припасы телепортируются к персонажу, и он подбирает их. Ты бы хоть название и версию игры указал, что ли... Ссылка на комментарий Поделиться на другие сайты Поделиться
Desmos Опубликовано 17 июня, 2020 Автор Поделиться Опубликовано 17 июня, 2020 Только что, Xipho сказал: Ты бы хоть название и версию игры указал, что ли... Да, извини, я что-то пожадничал) Это браузерная игра Gtanks или старые танки онлайн. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 июня, 2020 Поделиться Опубликовано 17 июня, 2020 5 минут назад, Desmos сказал: Да, извини, я что-то пожадничал Бывает ) В целом, я думаю, можно оформить отдельной темой в разделе "Наши релизы - Скрипты", если хочешь поделиться со всеми желающими. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения