Garik66 Опубликовано 12 января, 2019 Поделиться Опубликовано 12 января, 2019 зы1: можно будет попробовать вот так фильтрануть: Спойлер cmp [esp],00626973 jne code но это, если в игре адреса инструкций постоянные. 4 минуты назад, Alex2411 сказал: не получаеться сделать фильтр Ты наверное пропустил мое сообщение. Адреса инструкций постоянные в игре или меняются после перезагрузки игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 12 января, 2019 Автор Поделиться Опубликовано 12 января, 2019 15 минут назад, Garik66 сказал: вот так фильтрануть вылет через нескольо секунд. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 января, 2019 Поделиться Опубликовано 12 января, 2019 Только что, Alex2411 сказал: вылет через нескольо секунд. Ты не ответил. 17 минут назад, Garik66 сказал: Адреса инструкций постоянные в игре или меняются после перезагрузки игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 12 января, 2019 Поделиться Опубликовано 12 января, 2019 Если все совсем плохо с игрой, можно попробовать извращения, сравнить стек вызовов у игрока и противника и если они отличаются(например из разных мест вызывается функция нанесение урона), то фильтровать по адресу возврата. Например, cmp [esp+размер кадра стека + количество положеных в стек регистров в прологе], адрес возврата (адрес в какую функцию вернуть выполнение кода, уникальный вызов дяя игрока) je code //ohk для противников code: //бессмертие Если с адресами, то есть несколько инструкций, которые вызывают одну функцию из разных мест для игрока и NPC, значит адрес возврата будет уникальный для игрока. Возьмем к примеру адрес возврата игрока 0xDEADF00D, для NPC 0xDEADFACE, внутри вызываемой функции они будут иметь одинаковое смещение по стеку к примеру 0x44(размер кадра стека) + 4 байта на сохраненный адрес кадра стека функции откуда происходил вызов + 4 байта на адрес куда вернуть выполнение кода, после вызова функции. //cmp [esp+0x44+4+4], 0xDEADF00D cmp [esp+0x4C], 0xDEADF00D je code //ohk для противников code: //бессмертие Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 25 сентября, 2019 Поделиться Опубликовано 25 сентября, 2019 как мне объединить два скрипта в оден? вот 1 скрипт Спойлер [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: mov dword ptr [edi+0000052C],(float)0 originalcode: mulss xmm0,[edi+0000052C] exit: jmp returnhere "xrGame.dll"+1D672E: jmp newmem nop nop nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] //Alt: db F3 0F 59 87 2C 05 00 00 и 2 скрипт [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: mov dword ptr [edi+00000528],(float)0 originalcode: addss xmm0,[edi+00000528] exit: jmp returnhere "xrGame.dll"+1D6736: jmp newmem nop nop nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] //Alt: db F3 0F 58 87 28 05 00 00 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 25 сентября, 2019 Поделиться Опубликовано 25 сентября, 2019 1 час назад, ЛАГАРИУМ сказал: как мне объединить два скрипта в оден? Даже в этом топике давал ссылки на видео, где делал объединение. Пока сам не попробуешь - не отложится. А способов много. Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 (изменено) Спойлер ENABLE] alloc(newmem,2048) label(newmem1) label(returnhere) label(returnhere1) newmem: mov dword ptr [edi+0000052C],(float)0 jmp returnhere newmem1: mov dword ptr [edi+00000528],(float)0 jmp returnhere1 "xrGame.dll"+1D672E: jmp newmem nop nop nop returnhere: "xrGame.dll"+1D6736: jmp newmem1 nop nop nop returnhere1: [DISABLE] "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] dealloc(newmem) Спойлер почему у меня скрипт работает только при выключение а вк нет ? 16 часов назад, Garik66 сказал: Даже в этом топике давал ссылки на видео, где делал объединение. Пока сам не попробуешь - не отложится. А способов много. Изменено 26 сентября, 2019 пользователем ЛАГАРИУМ Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 42 минуты назад, ЛАГАРИУМ сказал: почему у меня скрипт работает только при выключение а вк нет ? А где оригинальный код. originalcode: mulss xmm0,[edi+0000052C] и первого и второго скриптов нужно делать внимательно Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 8 минут назад, Garik66 сказал: А где оригинальный код. originalcode: mulss xmm0,[edi+0000052C] и первого и второго скриптов нужно делать внимательно я просто скопировал своё в етот скрипт с форума Спойлер [ENABLE] alloc(newmem,2048) label(newmem1) label(returnhere) label(returnhere1) newmem: mov [ecx],#99 mov eax,edx pop esi jmp returnhere newmem1: mov [esi+00000830],#99 jmp returnhere1 "conviction_game.exe"+13E2B2: jmp newmem returnhere: "conviction_game.exe"+1430BE: jmp newmem1 nop returnhere1: [DISABLE] "conviction_game.exe"+13E2B2: mov [ecx],eax mov eax,edx pop esi "conviction_game.exe"+1430BE: mov [esi+00000830],edi dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 45 минут назад, ЛАГАРИУМ сказал: я просто скопировал Нужно не просто скопировать, а посмотреть видос, понять и потом сделать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 28 минут назад, Garik66 сказал: Нужно не просто скопировать, а посмотреть видос, понять и потом сделать. уже заработало добавил label(code) label(code1) вот что получилось Спойлер [ENABLE] alloc(Norecoil,2048) label(Norecoil1) label(returnhere) label(code) label(code1) label(returnhere1) Norecoil: mov dword ptr [edi+0000052C],(float)0 code: mulss xmm0,[edi+0000052C] jmp returnhere Norecoil1: mov dword ptr [edi+00000528],(float)0 code1: addss xmm0,[edi+00000528] jmp returnhere1 "xrGame.dll"+1D672E: jmp Norecoil nop nop nop returnhere: "xrGame.dll"+1D6736: jmp Norecoil1 nop nop nop returnhere1: [DISABLE] "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 31 минуту назад, Garik66 сказал: Нужно не просто скопировать, а посмотреть видос, понять и потом сделать. а видос я смотрел и не один раз я еты метки или как они там називаются не понимаю их типа етих label(returnhere) label(code) label(code1) label(returnhere1) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 1 час назад, ЛАГАРИУМ сказал: уже заработало добавил label(code) а как ты назад восстановишь значение в адресе ? функцию выключишь, а отдачи то всё равно нет... А если по твоему делать.. то хотя бы так накати... в первую и во вторую. originalcode: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] - перемножит на 0 и выйдет 0 exit: originalcode: addss xmm0,[edi+00000528] xorps xmm0,xmm0 // тут обнулит exit: jmp returnhere так хоть оригинал восстановишь если хуком делать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 как то так получилось, теперь отключается скрипт все работает спасибо . Спойлер [ENABLE] alloc(Norecoil,2048) label(Norecoil1) label(returnhere) label(code) label(code1) label(returnhere1) Norecoil: code: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] jmp returnhere Norecoil1: code1: addss xmm0,[edi+00000528] xorps xmm0,xmm0 // тут обнулит jmp returnhere1 "xrGame.dll"+1D672E: jmp Norecoil nop nop nop returnhere: "xrGame.dll"+1D6736: jmp Norecoil1 nop nop nop returnhere1: [DISABLE] "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 13 минут назад, ЛАГАРИУМ сказал: как то так получилось Как то так должно получаться то... Спойлер [ENABLE] alloc(newmem,1048) label(_recoil_1_) label(_recoil_2_) label(_1_back_) label(_2_back_) newmem: _recoil_1_: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] jmp _1_back_ _recoil_2_: addss xmm0,[edi+00000528] xorps xmm0,xmm0 jmp _2_back_ "xrGame.dll"+1D672E: jmp _recoil_1_ db 90 90 90 _1_back_: "xrGame.dll"+1D6736: jmp _recoil_2_ db 90 90 90 _2_back_: [DISABLE] "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] dealloc(newmem) и aobscan желательно... Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 20 минут назад, LIRW сказал: Как то так должно получаться то... Показать контент [ENABLE] alloc(newmem,1048) label(_recoil_1_) label(_recoil_2_) label(_1_back_) label(_2_back_) newmem: _recoil_1_: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] jmp _1_back_ _recoil_2_: addss xmm0,[edi+00000528] xorps xmm0,xmm0 jmp _2_back_ "xrGame.dll"+1D672E: jmp _recoil_1_ db 90 90 90 _1_back_: "xrGame.dll"+1D6736: jmp _recoil_2_ db 90 90 90 _2_back_: [DISABLE] "xrGame.dll"+1D672E: mulss xmm0,[edi+0000052C] "xrGame.dll"+1D6736: addss xmm0,[edi+00000528] dealloc(newmem) и aobscan желательно... чот не получается вставить правельно aobscan вот ето нужно Спойлер aobscan(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) aobscan(Norecoil1,xrGame.dll,F3 0F 58 87 28 05 00 00 51) Ссылка на комментарий Поделиться на другие сайты Поделиться
Hippan Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 aobscanmodule(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 11 минут назад, ЛАГАРИУМ сказал: чот не получается вставить правельно aobscan Модуль указывать не над... а с модулем.. пишется по другому.. как то так.. Если что то не так.. подправишь. Спойлер [ENABLE] aobscanmodule(_recoil_1_,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) aobscanmodule(_recoil_2_,xrGame.dll,F3 0F 58 87 20 05 00 00 51) alloc(newmem,1048) label(_recoil_1) label(_recoil_2) label(_1_back_) label(_2_back_) newmem: _recoil_1: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] jmp _1_back_ _recoil_2: addss xmm0,[edi+00000528] xorps xmm0,xmm0 jmp _2_back_ _recoil_1_: jmp _recoil_1 db 90 90 90 _1_back_: _recoil_2_: jmp _recoil_2 db 90 90 90 _2_back_: [DISABLE] _recoil_1_: db F3 0F 59 87 2C 05 00 00 _recoil_2_: db F3 0F 58 87 20 05 00 00 dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 5 минут назад, Hippan сказал: aobscanmodule(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) я так делаю Спойлер [ENABLE] aobscanmodule(Norecoil,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) aobscanmodule(Norecoil1,xrGame.dll,F3 0F 58 87 28 05 00 00 51) alloc(Norecoil$1000) label(Norecoil1) label(returnhere) label(code) label(code1) label(returnhere1) и пишет ошибку не весь код пригоден к иньекции ошибка в строке 4 alloc(00000000$1000) и так дале Ссылка на комментарий Поделиться на другие сайты Поделиться
Hippan Опубликовано 26 сентября, 2019 Поделиться Опубликовано 26 сентября, 2019 а запятые где? alloc(Norecoil,$1000) Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 4 ноября, 2019 Автор Поделиться Опубликовано 4 ноября, 2019 когда я соединяю два скрипта инжекции в один скрипт как правильно выделить память для 64 бит игры ? нужно для каждого скрипта выделить память отдельно типа newmem1 newmem2 ? а если не отдельно , тогда что написать в скобках после alloc? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 ноября, 2019 Поделиться Опубликовано 4 ноября, 2019 49 минут назад, Alex2411 сказал: когда я соединяю два скрипта инжекции в один скрипт как правильно выделить память для 64 бит игры ? нужно для каждого скрипта выделить память отдельно типа newmem1 newmem2 ? а если не отдельно , тогда что написать в скобках после alloc? Я в своих уроках неоднократно об этом рассказывал, При объединении, выделяешь память один раз, а второй скрипт, как обычная метка и в этой теме. есть тоже пример: alloc(newmem,2048) label(newmem1) Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 4 ноября, 2019 Автор Поделиться Опубликовано 4 ноября, 2019 9 минут назад, Garik66 сказал: При объединении, выделяешь память один раз, а второй скрипт, как обычная метка для 64 бит так же делать ? если так же , тогда что писать в скобках alloc после 2048 ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 6 ноября, 2019 Автор Поделиться Опубликовано 6 ноября, 2019 не кто не подскажет ? Ссылка на комментарий Поделиться на другие сайты Поделиться
ЛАГАРИУМ Опубликовано 6 ноября, 2019 Поделиться Опубликовано 6 ноября, 2019 15 минут назад, Alex2411 сказал: не кто не подскажет ? вот поменяеш на своы сигнатури и код Спойлер [ENABLE] aobscanmodule(recoil_1,xrGame.dll,F3 0F 59 87 2C 05 00 00 F3 0F 58 87 28 05 00 00 51) aobscanmodule(recoil_2,xrGame.dll,F3 0F 58 87 28 05 00 00 51) alloc(newmem,$1000) label(newmem_2) label(code) label(code_2) label(return) label(return_2) registersymbol(recoil_1) registersymbol(recoil_2) newmem: code: xorps xmm0,xmm0 mulss xmm0,[edi+0000052C] jmp return newmem_2: code_2: addss xmm0,[edi+00000528] xorps xmm0,xmm0 jmp return_2 recoil_1: jmp newmem nop nop nop return: recoil_2: jmp newmem_2 nop nop nop return_2: [DISABLE] recoil_1: db F3 0F 59 87 2C 05 00 00 recoil_2: db F3 0F 58 87 28 05 00 00 unregistersymbol(recoil_1) unregistersymbol(recoil_2) dealloc(newmem) dealloc(newmem_2) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения