Гость podlivka Опубликовано 8 июля, 2018 Поделиться Опубликовано 8 июля, 2018 [Terraria] - Написал я скрипт телепорта вида Save/Teleport, попытался его активировать, но он не активируется, нажимал на активацию мышкой, биндил на клавишу, ничего не помогло. (Я новичок, поэтому извините за какие либо ошибки, если они будут). Код >> Спойлер [ENABLE] aobscan(teleport,CC 00 DD 9D 4C FF FF FF F2 0F 10 85 4C FF FF FF F2 0F 2C F8 CC) alloc(newmem,$1000) label(savepos_flag) // Сохранение точки label(loadpos_flag) // Телепорт на сохраненную точку label(clear_flag) // Очищение сохраненной точки телепорта label(posX) // Координата Х label(posY) // Координата У label(code) label(return) registersymbol(savepos_flag) registersymbol(clear_flag) registersymbol(loadpos_flag) newmem: push esi xor esi,esi // Обнуляю значение регистра esi cmp [savepos_flag],1 jne code mov esi,[eax+0020] // В eax+0020 координата x mov [posX], esi xor esi,esi // Обнуляю значение регистра esi X2 mov esi,[eax+0024] // В eax+0024 координата Y mov [posY],esi xor esi,esi // Обнуляю значение регистра esi X3 cmp [clear_flag],1 jne code mov [posX],esi // Пытаюсь обнулить значение posX. (Не знаю, сработает ли) mov [posY],esi // Пытаюсь обнулить значение posY. (Не знаю, сработает ли) pop esi cmp [loadpos_flag],1 jne code mov [eax+0020],posX mov [eax+0024],posY code: fld dword ptr [eax] fstp qword ptr [ebp-000000B4] jmp return posX: db 00 00 00 00 posY: db 00 00 00 00 clear_flag: db 00 savepos_flag: db 00 loadpos_flag: db 00 teleport: jmp newmem nop nop nop return: registersymbol(teleport) [DISABLE] teleport: db CC 00 DD 9D 4C FF FF FF unregistersymbol(savepos_flag) unregistersymbol(clear_flag) unregistersymbol(loadpos_flag) unregistersymbol(teleport) dealloc(newmem) [Dying Light] - Написал скрипт для бесконечных хп, он опять же не активируется. А из-за скриптов которые активировались игра вылетала, это означает что в нее встроена проверка целостности кода? Скрипты я писал правильные, просто вытаскивал значение максимальных жизней и копировал его в значение текущих жизней. Код >> Спойлер [ENABLE] aobscanmodule(Hp,gamedll_x64_rwdi.dll,CC 0F 10 81 2C 12 00 00) alloc(newmem,$1000,"gamedll_x64_rwdi.dll"+91EBF0) label(code) label(return) newmem: // Хп тут во флоате cmp [rcx+122C],240.0 // Сравниваю текущие хп с 240 ja code // Если выше 240 то перепрыгнуть на оригинальный код add [rcx+122C], #35.0 // Если не больше 240 добавить 35 code: movss xmm0,[rcx+0000122C] jmp return Hp: jmp newmem nop nop nop return: registersymbol(Hp) [DISABLE] Hp: db CC 0F 10 81 2C 12 00 00 unregistersymbol(Hp) dealloc(newmem) Когда я написал скрипт в автоассемблере, я спокойно смог добавить скрипт в таблицу, что говорило об отсутствии ошибок. Другая инфа: Игры все лицензионные Cheat Engine: 6.7 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 8 июля, 2018 Поделиться Опубликовано 8 июля, 2018 17 минут назад, podlivka сказал: add [rcx+122C], #35.0 // Если не больше 240 добавить 35 Код не правильный. А скрипты не активируются из-за того, что не могут найти сигнатуру, а сигнатуру ты делал во время отладки инструкции, поэтому первый байт CC 17 минут назад, podlivka сказал: CC 00 DD 9D 4C FF FF FF F2 0F 10 85 4C FF FF FF F2 0F 2C F8 CC) 17 минут назад, podlivka сказал: CC 0F 10 81 2C 12 00 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 июля, 2018 Поделиться Опубликовано 8 июля, 2018 2 часа назад, podlivka сказал: Написал я скрипт 1. Сигнатура не верна. 2. Если бы была верна, то скорее всего будет сразу вылет из игры из-за не правильного использования связки push/pop (сохранение регистра перед использованием в своём коде и восстановления регистра и стека после использования). pop esi // нужно спустить под метку code, т.к. у тебя после push esi, есть инструкция jne code // - стек нарушен (опущен вниз на 4 байта) - все значения которые юзаются игрой изменены - зкрах игры.) 3. Если все это поправишь, то телепорта у тебя все равно не будет, так как ты постоянно перезаписываешь значения координат в своих метка, как исправить: cmp [savepos_flag],1 jne code mov [savepos_flag],0 // сделать разовую запись нужных тебе координат И лучше после всей секции сохранения координат добавить jmp code. 4. xor esi,esi // Обнуляю значение регистра esi // Абсолютно не нужная инструкция в твоем случае 5. label(clear_flag) // Очищение сохраненной точки телепорта // Тоже не нужна и все что связано с clear_flag 6. Нет проверки от прыжка на нулевые координаты. 7. mov [eax+0020],posX mov [eax+0024],posY А это как ты вообще сумел скомпилировать в СЕ? А пишешь: 2 часа назад, podlivka сказал: Когда я написал скрипт в автоассемблере, я спокойно смог добавить скрипт в таблицу, что говорило об отсутствии ошибок. Ну скорее всего из-за того, что писал скрипт под отладкой, поэтому СЕ это и съело. Координаты у тебя не в posX. а в [posX] Нужно было бы так сделать: mov esi,[posX] mov [eax+0020],esi mov esi,[posY] mov [eax+0024],esi 8. Метки флагов объявлены не верно. Расписывать уже не буду. 9. Скрипт по здоровью тоже не верен - Расписывать не буду. Ну хотя бы, если у тебя значение во float, то так и нужно писать cmp [rcx+122C],(float)240,0 PS: Резюме - это не скрипты, а Ж............. Ты хотя бы не много посмотрел, почитал, прежде чем писать скрипты. Я по телепорту целую серию видосов снимал. Ссылки не даю -х сам найди. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость podlivka Опубликовано 8 июля, 2018 Поделиться Опубликовано 8 июля, 2018 3 часа назад, Garik66 сказал: PS: Резюме - это не скрипты, а Ж............. Ты хотя бы не много посмотрел, почитал, прежде чем писать скрипты. Я по телепорту целую серию видосов снимал. Ссылки не даю -х сам найди. Господи, как стыдно за столько ошибок, я полностью посмотрел плейлист "взлом игр от "А" до "Я"" на канале gamehacklab, про сигнатуры там вообще ничего сказано не было, но есть и моя вина, что я не внимательно смотрел выпуск про телепорт, спасибо большое за помощь Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость podlivka Опубликовано 8 июля, 2018 Поделиться Опубликовано 8 июля, 2018 5 часов назад, partoftheworlD сказал: Код не правильный. А скрипты не активируются из-за того, что не могут найти сигнатуру, а сигнатуру ты делал во время отладки инструкции, поэтому первый байт CC Спасибо за помощь Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения