NickSpirit Опубликовано 5 ноября, 2016 Поделиться Опубликовано 5 ноября, 2016 Доброго времени суток всем! Решил тут я поломать малость симулятор тенниса Vitrual Tennis Pro 4. Нашел нужный мне адрес - пытаюсь посмотреть какие инструкции с ним работают - и только я цепляю отладчик к процессу игры - как игра вылетает. Подскажите пожалуйста как быть в такой ситуации??? P.S. когда морозишь адрес и ставишь нужное значение - игра не вылетает. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 5 ноября, 2016 Поделиться Опубликовано 5 ноября, 2016 В 05.11.2016 в 14:57, NickSpirit сказал: и только я цепляю отладчик Показать Это уже 155 раз обсуждалось. В настройках отладчика ставить надо Veh и использовать int 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 5 ноября, 2016 Автор Поделиться Опубликовано 5 ноября, 2016 Спасибо за ответ! Буду знать теперь что делать. По поводу "155 раз обсуждалось" - ну не нашел я нигде это. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 5 ноября, 2016 Автор Поделиться Опубликовано 5 ноября, 2016 В 05.11.2016 в 15:05, LIRW сказал: Это уже 155 раз обсуждалось. В настройках отладчика ставить надо Veh и использовать int Показать А не подскажете что сделать если опция выбора отладчика не доступна??? Показать контент http://prntscr.com/d3fkxa Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 ноября, 2016 Поделиться Опубликовано 5 ноября, 2016 CE перезапусти, не подключая к процессу поменяй отладчик. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 5 ноября, 2016 Автор Поделиться Опубликовано 5 ноября, 2016 Спасибо! попробую. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 5 ноября, 2016 Поделиться Опубликовано 5 ноября, 2016 В 05.11.2016 в 15:20, NickSpirit сказал: По поводу "155 раз обсуждалось" - ну не нашел я нигде это. Показать Ну это я уж преувеличил ну раза 3 точно обсуждалось и не сказать что так давно прям. Можно было бы и Google в поиске написать и показало бы результаты. А возможно даже и форум с подобным вопросом. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 (изменено) Вообщем нашел я нужные инструкции. Написал кучу скриптов...более менее работают два. Вообщем суть такая - пока ограничился тем что хочу найти просто два нужных мне адреса. И все вроде бы работает НО - игра через некоторое время вылетает. Хотя вроде бы толком то скрипт ничего криминального с игрой не делает..не понимаю вообщем из-за чего вылеты. Кстати и после отладчика через некоторое время вылетает. Даже с нужными настройками. Вот скрипт который использую. Подскажите - может байты не выровнял где нить..или чего еще не так... Показать контент { Game : VT4.exe Version: Date : 2016-11-10 Author : GravaPC This script does blah blah blah } { Game : VT4.exe Version: Date : 2016-11-09 Author : GravaPC This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(SUPERFOUR,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique alloc(newmem,$1000) registersymbol(SUPERFOUR) registersymbol(pointer) label(code) label(return) label(pointer) newmem: cmp [edi+20],0 jne code push eax lea eax,[edi+04] mov [pointer],eax pop eax movss [edi+04],xmm0 jmp return code: movss [edi+04],xmm0 jmp return pointer: db 0 SUPERFOUR: jmp newmem return: aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01) // should be unique alloc(newmem2,$1000) registersymbol(SUPERTHREE) registersymbol(pointer1) label(code2) label(return2) label(pointer1) newmem2: cmp [eax+0B],0 jne code2 push ebx lea ebx,[eax] mov [pointer1],ebx pop ebx movss [eax],xmm0 mov byte ptr [eax+08],01 jmp return2 code2: movss [eax],xmm0 mov byte ptr [eax+08],01 jmp return2 pointer1: db 0 SUPERTHREE: jmp newmem2 nop nop nop return2: [DISABLE] //code from here till the end of the code will be used to disable the cheat SUPERFOUR: db F3 0F 11 47 04 unregistersymbol(SUPERFOUR) unregistersymbol(pointer) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2 "VT4.exe"+143473: F3 0F 10 43 04 - movss xmm0,[ebx+04] "VT4.exe"+143478: F3 0F 10 4C 24 24 - movss xmm1,[esp+24] "VT4.exe"+14347E: D9 5C 24 20 - fstp dword ptr [esp+20] "VT4.exe"+143482: F3 0F 10 54 24 20 - movss xmm2,[esp+20] "VT4.exe"+143488: E9 1E FC FF FF - jmp VT4.exe+1430AB "VT4.exe"+14348D: 0F 2F C8 - comiss xmm1,xmm0 "VT4.exe"+143490: 72 10 - jb VT4.exe+1434A2 "VT4.exe"+143492: 0F 28 C1 - movaps xmm0,xmm1 "VT4.exe"+143495: C7 47 48 00 00 00 00 - mov [edi+48],00000000 "VT4.exe"+14349C: F3 0F 11 44 24 1C - movss [esp+1C],xmm0 // ---------- INJECTING HERE ---------- "VT4.exe"+1434A2: F3 0F 11 47 04 - movss [edi+04],xmm0 // ---------- DONE INJECTING ---------- "VT4.exe"+1434A7: 8B 0D 78 68 83 00 - mov ecx,[VT4.exe+436878] "VT4.exe"+1434AD: 85 C9 - test ecx,ecx "VT4.exe"+1434AF: 74 2E - je VT4.exe+1434DF "VT4.exe"+1434B1: D9 44 24 1C - fld dword ptr [esp+1C] "VT4.exe"+1434B5: 8B 57 38 - mov edx,[edi+38] "VT4.exe"+1434B8: 6A 00 - push 00 "VT4.exe"+1434BA: 51 - push ecx "VT4.exe"+1434BB: D9 1C 24 - fstp dword ptr [esp] "VT4.exe"+1434BE: 52 - push edx "VT4.exe"+1434BF: E8 BC DB 0A 00 - call VT4.exe+1F1080 } SUPERTHREE: db F3 0F 11 00 C6 40 08 01 unregistersymbol(SUPERTHREE) unregistersymbol(pointer1) dealloc(newmem2) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9 "VT4.exe"+1F10BA: F2 0F 5C CA - subsd xmm1,xmm2 "VT4.exe"+1F10BE: 66 0F 5A C9 - cvtpd2ps xmm1,xmm1 "VT4.exe"+1F10C2: F3 0F 11 4C 24 0C - movss [esp+0C],xmm1 "VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F - and [esp+0C],7FFFFFFF "VT4.exe"+1F10D0: F3 0F 10 4C 24 0C - movss xmm1,[esp+0C] "VT4.exe"+1F10D6: 0F 5A C9 - cvtps2pd xmm1,xmm1 "VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00 - comisd xmm1,[VT4.exe+38FB68] "VT4.exe"+1F10E1: 5E - pop esi "VT4.exe"+1F10E2: 76 1E - jna VT4.exe+1F1102 "VT4.exe"+1F10E4: 80 7C 24 0C 00 - cmp byte ptr [esp+0C],00 // ---------- INJECTING HERE ---------- "VT4.exe"+1F10E9: F3 0F 11 00 - movss [eax],xmm0 "VT4.exe"+1F10ED: C6 40 08 01 - mov byte ptr [eax+08],01 // ---------- DONE INJECTING ---------- "VT4.exe"+1F10F1: C7 40 0C 00 00 00 00 - mov [eax+0C],00000000 "VT4.exe"+1F10F8: 74 08 - je VT4.exe+1F1102 "VT4.exe"+1F10FA: 6A 00 - push 00 "VT4.exe"+1F10FC: 52 - push edx "VT4.exe"+1F10FD: E8 6E FC FF FF - call VT4.exe+1F0D70 "VT4.exe"+1F1102: C2 0C 00 - ret 000C "VT4.exe"+1F1105: CC - int 3 "VT4.exe"+1F1106: CC - int 3 "VT4.exe"+1F1107: CC - int 3 "VT4.exe"+1F1108: CC - int 3 } Изменено 11 ноября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 11 ноября, 2016 Поделиться Опубликовано 11 ноября, 2016 В 11.11.2016 в 16:34, NickSpirit сказал: Вообщем нашел я нужные инструкции. Написал кучу скриптов...более менее работают два. Вообщем суть такая - пока ограничился тем что хочу найти просто два нужных мне адреса. Показать Суть в чем? В том чтобы найти два нужных тебе адреса?Почему два , а не три или один ? Зачем тебе их нужно найти? Что подразумевается под словом "нужные"? В 11.11.2016 в 16:34, NickSpirit сказал: И все вроде бы работает НО - игра через некоторое время вылетает. Хотя вроде бы толком то скрипт ничего криминального с игрой не делает..не понимаю вообщем из-за чего вылеты. Показать Работает что? Поиск адресов? Вылетает из-за чего? Из-за поиска адресов? В 11.11.2016 в 16:34, NickSpirit сказал: Кстати и после отладчика через некоторое время вылетает. Даже с нужными настройками. Вот скрипт который использую. Подскажите - может байты не выровнял где нить..или чего еще не так... Показать Вылетает после установки breakpoint или после N-го количества step'ов ? Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 В 11.11.2016 в 16:56, Dino сказал: Суть в чем? В том чтобы найти два нужных тебе адреса?Почему два , а не три или один ? Зачем тебе их нужно найти? Что подразумевается под словом "нужные"? Работает что? Поиск адресов? Вылетает из-за чего? Из-за поиска адресов? Вылетает после установки breakpoint или после N-го количества step'ов ? Показать 1. Пока просто найти именно два адреса и показать их. Найти нужно чтобы поменять значение затем - либо руками либо (когда будет стабильность скрипта - в самом скрипте). Два - потому что ДВА. - И он находит и показывает именно нужные адреса. просто через минуту-две игра вылетает. 2+3. Работает поиск адресов - все отображает верно. Вылетает - сама по себе (по Вашему говоря - после нескольких шагов (времени работы скрипта я так понимаю)). Крашится то есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 11 ноября, 2016 Поделиться Опубликовано 11 ноября, 2016 (изменено) Ты понимаешь что вопрос задан не корректно? И тебе никто из присутствующий здесь не даст корректного ответа, потому что попросту не поймут чего ты хочешь сделать. Но хорошо хоть скрипт привел, так бы и сказал что пишешь фильтр объектов. Задача в принципе тривиальная, на ютубе этой информации пруд пруди. Если не получается сразу два объекта отфильтровать, то пиши сначала для одного Изменено 11 ноября, 2016 пользователем Dino Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 В 11.11.2016 в 17:30, Dino сказал: Ты понимаешь что вопрос задан не корректно? И тебе никто из присутствующий здесь не даст корректного ответа, потому что попросту не поймут чего ты хочешь сделать. Но хорошо хоть скрипт привел, так бы и сказал что пишешь фильтр объектов. Показать Ну тут проблема то не в том что я пишу...проблема в том что данный скрипт или что-то еще вызывает вылет игры.... причем как в режиме просто отладчика..так и в режиме работы скрипта. Вот я и хочу понять почему игра крашится. И для начала задал вопрос - а верен ли мой скрипт...на вскидку. Иногда бывает что сразу бросается в глаза ошибка грубая в скрипте. А фильтр да- фильтр тут присутствует. Но он не главная цель вопроса Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 11 ноября, 2016 Поделиться Опубликовано 11 ноября, 2016 В 11.11.2016 в 17:34, NickSpirit сказал: Ну тут проблема то не в том что я пишу...проблема в том что данный скрипт или что-то еще вызывает вылет игры.... причем как в режиме просто отладчика..так и в режиме работы скрипта. Вот я и хочу понять почему игра крашится. И для начала задал вопрос - а верен ли мой скрипт...на вскидку. Иногда бывает что сразу бросается в глаза ошибка грубая в скрипте. А фильтр да- фильтр тут присутствует. Но он не главная цель вопроса Показать Скрипт - это и есть то что ты пишешь, так что вылет происходит именно с твоей подачи. Что касается отладчика, это вообще отдельный разговор , наивно верить, что все проблемы сопровождаются одной причиной. кинь ссылку на игру Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 (изменено) В 11.11.2016 в 17:50, Dino сказал: кинь ссылку на игру Показать http://maintracker.org/forum/viewtopic.php?t=4286369 Что пытаюсь сделать - при ударе у игрока заполняется полоска суперудара (Вот пытаюсь ее всегда заполнять до 100). За нее отвечают по моим догадкам три адреса..две инструкции нашел. третий адрес находится рядом с одним по смещению 14. Тип float. Изменено 11 ноября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 ноября, 2016 Поделиться Опубликовано 11 ноября, 2016 В 11.11.2016 в 16:34, NickSpirit сказал: Подскажите - может байты не выровнял где нить..или чего еще не так... Показать NickSpirit, а оба скрипта (до объединения в один) как работали? был ли вылет? (мне кажется не очень корректно обединил скрипты). Если не проверял напиши отдельно оба скрипта по новой и проверь вначале по отдельности включая, а потом и вместе активируй их. Если будут работать при совместном включении и вылета не будет, то соответственно ошибка в объединении скриптов в один. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 (изменено) По отдельности тож вылетали. Вообще..предполагаю что игра имеет какую то защиту..но как ее найти пока понять не могу. Да и живет игра при подцеплении отладчика (с разными настройками - как верными так и не оч) не особо долго..от вылета сразу до вылета через 3-4 минуты. Изменено 11 ноября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 ноября, 2016 Поделиться Опубликовано 11 ноября, 2016 (изменено) В 11.11.2016 в 18:54, NickSpirit сказал: По отдельности тож вылетали. Показать Понятно. Тогда нужно смотреть в другом. - После фильтра какие адреса проскакивают - только нужный?. Но объединение тоже важно, я бы например объединил твои скрипты так: Показать контент { Game : VT4.exe Version: Date : 2016-11-10 Author : GravaPC This script does blah blah blah } [ENABLE] aobscanmodule(SUPERFOUR,VT4.exe,F3 0F 11 47 04 8B 0D) aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01) alloc(newmem,$1000) label(newmem2) label(code) label(code2) label(return) label(return2) label(pointer) registersymbol(pointer) label(pointer1) registersymbol(pointer1) registersymbol(SUPERFOUR) registersymbol(SUPERTHREE) newmem: cmp [edi+20],0 jne code push eax lea eax,[edi+04] mov [pointer],eax pop eax code: movss [edi+04],xmm0 jmp return newmem2: cmp [eax+0B],0 jne code2 push ebx lea ebx,[eax] mov [pointer1],ebx pop ebx code2: movss [eax],xmm0 mov byte ptr [eax+08],01 jmp return2 pointer: dd 0 pointer1: dd 0 SUPERFOUR: jmp newmem return: SUPERTHREE: jmp newmem2 db 90 90 90 return2: [DISABLE] SUPERFOUR: db F3 0F 11 47 04 SUPERTHREE: db F3 0F 11 00 C6 40 08 01 unregistersymbol(pointer) unregistersymbol(pointer1) unregistersymbol(SUPERFOUR) unregistersymbol(SUPERTHREE) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2 "VT4.exe"+143473: F3 0F 10 43 04 - movss xmm0,[ebx+04] "VT4.exe"+143478: F3 0F 10 4C 24 24 - movss xmm1,[esp+24] "VT4.exe"+14347E: D9 5C 24 20 - fstp dword ptr [esp+20] "VT4.exe"+143482: F3 0F 10 54 24 20 - movss xmm2,[esp+20] "VT4.exe"+143488: E9 1E FC FF FF - jmp VT4.exe+1430AB "VT4.exe"+14348D: 0F 2F C8 - comiss xmm1,xmm0 "VT4.exe"+143490: 72 10 - jb VT4.exe+1434A2 "VT4.exe"+143492: 0F 28 C1 - movaps xmm0,xmm1 "VT4.exe"+143495: C7 47 48 00 00 00 00 - mov [edi+48],00000000 "VT4.exe"+14349C: F3 0F 11 44 24 1C - movss [esp+1C],xmm0 // ---------- INJECTING HERE ---------- "VT4.exe"+1434A2: F3 0F 11 47 04 - movss [edi+04],xmm0 // ---------- DONE INJECTING ---------- "VT4.exe"+1434A7: 8B 0D 78 68 83 00 - mov ecx,[VT4.exe+436878] "VT4.exe"+1434AD: 85 C9 - test ecx,ecx "VT4.exe"+1434AF: 74 2E - je VT4.exe+1434DF "VT4.exe"+1434B1: D9 44 24 1C - fld dword ptr [esp+1C] "VT4.exe"+1434B5: 8B 57 38 - mov edx,[edi+38] "VT4.exe"+1434B8: 6A 00 - push 00 "VT4.exe"+1434BA: 51 - push ecx "VT4.exe"+1434BB: D9 1C 24 - fstp dword ptr [esp] "VT4.exe"+1434BE: 52 - push edx "VT4.exe"+1434BF: E8 BC DB 0A 00 - call VT4.exe+1F1080 } { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9 "VT4.exe"+1F10BA: F2 0F 5C CA - subsd xmm1,xmm2 "VT4.exe"+1F10BE: 66 0F 5A C9 - cvtpd2ps xmm1,xmm1 "VT4.exe"+1F10C2: F3 0F 11 4C 24 0C - movss [esp+0C],xmm1 "VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F - and [esp+0C],7FFFFFFF "VT4.exe"+1F10D0: F3 0F 10 4C 24 0C - movss xmm1,[esp+0C] "VT4.exe"+1F10D6: 0F 5A C9 - cvtps2pd xmm1,xmm1 "VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00 - comisd xmm1,[VT4.exe+38FB68] "VT4.exe"+1F10E1: 5E - pop esi "VT4.exe"+1F10E2: 76 1E - jna VT4.exe+1F1102 "VT4.exe"+1F10E4: 80 7C 24 0C 00 - cmp byte ptr [esp+0C],00 // ---------- INJECTING HERE ---------- "VT4.exe"+1F10E9: F3 0F 11 00 - movss [eax],xmm0 "VT4.exe"+1F10ED: C6 40 08 01 - mov byte ptr [eax+08],01 // ---------- DONE INJECTING ---------- "VT4.exe"+1F10F1: C7 40 0C 00 00 00 00 - mov [eax+0C],00000000 "VT4.exe"+1F10F8: 74 08 - je VT4.exe+1F1102 "VT4.exe"+1F10FA: 6A 00 - push 00 "VT4.exe"+1F10FC: 52 - push edx "VT4.exe"+1F10FD: E8 6E FC FF FF - call VT4.exe+1F0D70 "VT4.exe"+1F1102: C2 0C 00 - ret 000C "VT4.exe"+1F1105: CC - int 3 "VT4.exe"+1F1106: CC - int 3 "VT4.exe"+1F1107: CC - int 3 "VT4.exe"+1F1108: CC - int 3 } Изменено 12 ноября, 2016 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 ммм..спасибо попробую так. Отпишусь позже как и чего будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 ноября, 2016 Автор Поделиться Опубликовано 11 ноября, 2016 Вообщем вот так лучше - так все работает! Щас буду пытаться не просто читать но и менять значения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 ноября, 2016 Поделиться Опубликовано 12 ноября, 2016 В 11.11.2016 в 20:53, NickSpirit сказал: Вообщем вот так лучше - так все работает! Щас буду пытаться не просто читать но и менять значения. Показать При внимательном рассмотрении скрипта, обнаружил у тебя ещё одну ошибку: pointer: db 0 // нужно dd 0 pointer1: db 0 // нужно dd 0 поправил свой скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 12 ноября, 2016 Автор Поделиться Опубликовано 12 ноября, 2016 Поправил у себя, оценю работу. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 13 ноября, 2016 Автор Поделиться Опубликовано 13 ноября, 2016 (изменено) Вообщем тестил почти сутки - ситуация такая - сделал два скрипта которые задают в 3 адреса нужное значение 1. Вообщем запускал скрипты совместно - вылет игры по разному - то 5 минут..то 25... но в принципе нужный эффект достигнут. Показать контент { Game : VT4.exe Version: Date : 2016-11-09 Author : GravaPC This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(SUPERTHREE,VT4.exe,F3 0F 11 00 C6 40 08 01) // should be unique alloc(newmem,$1000) registersymbol(SUPERTHREE) label(code) label(return) newmem: cmp [eax+3C],0 jne code movss [eax],xmm0 mov [eax],(float)1 mov [eax+04],(float)1 mov byte ptr [eax+08],01 jmp return code: movss [eax],xmm0 mov byte ptr [eax+08],01 jmp return SUPERTHREE: jmp newmem nop nop nop return: [DISABLE] //code from here till the end of the code will be used to disable the cheat SUPERTHREE: db F3 0F 11 00 C6 40 08 01 unregistersymbol(SUPERTHREE) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1F10E9 "VT4.exe"+1F10BA: F2 0F 5C CA - subsd xmm1,xmm2 "VT4.exe"+1F10BE: 66 0F 5A C9 - cvtpd2ps xmm1,xmm1 "VT4.exe"+1F10C2: F3 0F 11 4C 24 0C - movss [esp+0C],xmm1 "VT4.exe"+1F10C8: 81 64 24 0C FF FF FF 7F - and [esp+0C],7FFFFFFF "VT4.exe"+1F10D0: F3 0F 10 4C 24 0C - movss xmm1,[esp+0C] "VT4.exe"+1F10D6: 0F 5A C9 - cvtps2pd xmm1,xmm1 "VT4.exe"+1F10D9: 66 0F 2F 0D 68 FB 78 00 - comisd xmm1,[VT4.exe+38FB68] "VT4.exe"+1F10E1: 5E - pop esi "VT4.exe"+1F10E2: 76 1E - jna VT4.exe+1F1102 "VT4.exe"+1F10E4: 80 7C 24 0C 00 - cmp byte ptr [esp+0C],00 // ---------- INJECTING HERE ---------- "VT4.exe"+1F10E9: F3 0F 11 00 - movss [eax],xmm0 "VT4.exe"+1F10ED: C6 40 08 01 - mov byte ptr [eax+08],01 // ---------- DONE INJECTING ---------- "VT4.exe"+1F10F1: C7 40 0C 00 00 00 00 - mov [eax+0C],00000000 "VT4.exe"+1F10F8: 74 08 - je VT4.exe+1F1102 "VT4.exe"+1F10FA: 6A 00 - push 00 "VT4.exe"+1F10FC: 52 - push edx "VT4.exe"+1F10FD: E8 6E FC FF FF - call VT4.exe+1F0D70 "VT4.exe"+1F1102: C2 0C 00 - ret 000C "VT4.exe"+1F1105: CC - int 3 "VT4.exe"+1F1106: CC - int 3 "VT4.exe"+1F1107: CC - int 3 "VT4.exe"+1F1108: CC - int 3 } Второй: { Game : VT4.exe Version: Date : 2016-11-11 Author : GravaPC This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(SUPNEW,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique alloc(newmem,$1000) registersymbol(SUPNEW) label(code) label(return) newmem: cmp [edi+04+34],0 jne code movss [edi+04],xmm0 mov [edi+04],(float)1 jmp return code: movss [edi+04],xmm0 jmp return SUPNEW: jmp newmem return: [DISABLE] //code from here till the end of the code will be used to disable the cheat SUPNEW: db F3 0F 11 47 04 unregistersymbol(SUPNEW) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2 "VT4.exe"+143473: F3 0F 10 43 04 - movss xmm0,[ebx+04] "VT4.exe"+143478: F3 0F 10 4C 24 24 - movss xmm1,[esp+24] "VT4.exe"+14347E: D9 5C 24 20 - fstp dword ptr [esp+20] "VT4.exe"+143482: F3 0F 10 54 24 20 - movss xmm2,[esp+20] "VT4.exe"+143488: E9 1E FC FF FF - jmp VT4.exe+1430AB "VT4.exe"+14348D: 0F 2F C8 - comiss xmm1,xmm0 "VT4.exe"+143490: 72 10 - jb VT4.exe+1434A2 "VT4.exe"+143492: 0F 28 C1 - movaps xmm0,xmm1 "VT4.exe"+143495: C7 47 48 00 00 00 00 - mov [edi+48],00000000 "VT4.exe"+14349C: F3 0F 11 44 24 1C - movss [esp+1C],xmm0 // ---------- INJECTING HERE ---------- "VT4.exe"+1434A2: F3 0F 11 47 04 - movss [edi+04],xmm0 // ---------- DONE INJECTING ---------- "VT4.exe"+1434A7: 8B 0D 78 68 83 00 - mov ecx,[VT4.exe+436878] "VT4.exe"+1434AD: 85 C9 - test ecx,ecx "VT4.exe"+1434AF: 74 2E - je VT4.exe+1434DF "VT4.exe"+1434B1: D9 44 24 1C - fld dword ptr [esp+1C] "VT4.exe"+1434B5: 8B 57 38 - mov edx,[edi+38] "VT4.exe"+1434B8: 6A 00 - push 00 "VT4.exe"+1434BA: 51 - push ecx "VT4.exe"+1434BB: D9 1C 24 - fstp dword ptr [esp] "VT4.exe"+1434BE: 52 - push edx "VT4.exe"+1434BF: E8 BC DB 0A 00 - call VT4.exe+1F1080 } Изменено 13 ноября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Dino Опубликовано 13 ноября, 2016 Поделиться Опубликовано 13 ноября, 2016 Предположу что там установлена защита целостности памяти. Попробуй пустой хук поставить( без внесения свое кода) Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 13 ноября, 2016 Автор Поделиться Опубликовано 13 ноября, 2016 В 13.11.2016 в 16:04, Dino сказал: Предположу что там установлена защита целостности памяти. Попробуй пустой хук поставить( без внесения свое кода) Показать Это я так понимаю примерно так? Показать контент { Game : VT4.exe Version: Date : 2016-11-11 Author : GravaPC This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(SUPNEW,VT4.exe,F3 0F 11 47 04 8B 0D) // should be unique alloc(newmem,$1000) registersymbol(SUPNEW) label(code) label(return) newmem: code: movss [edi+04],xmm0 jmp return SUPNEW: jmp code return: [DISABLE] //code from here till the end of the code will be used to disable the cheat SUPNEW: db F3 0F 11 47 04 unregistersymbol(SUPNEW) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "VT4.exe"+1434A2 "VT4.exe"+143473: F3 0F 10 43 04 - movss xmm0,[ebx+04] "VT4.exe"+143478: F3 0F 10 4C 24 24 - movss xmm1,[esp+24] "VT4.exe"+14347E: D9 5C 24 20 - fstp dword ptr [esp+20] "VT4.exe"+143482: F3 0F 10 54 24 20 - movss xmm2,[esp+20] "VT4.exe"+143488: E9 1E FC FF FF - jmp VT4.exe+1430AB "VT4.exe"+14348D: 0F 2F C8 - comiss xmm1,xmm0 "VT4.exe"+143490: 72 10 - jb VT4.exe+1434A2 "VT4.exe"+143492: 0F 28 C1 - movaps xmm0,xmm1 "VT4.exe"+143495: C7 47 48 00 00 00 00 - mov [edi+48],00000000 "VT4.exe"+14349C: F3 0F 11 44 24 1C - movss [esp+1C],xmm0 // ---------- INJECTING HERE ---------- "VT4.exe"+1434A2: F3 0F 11 47 04 - movss [edi+04],xmm0 // ---------- DONE INJECTING ---------- "VT4.exe"+1434A7: 8B 0D 78 68 83 00 - mov ecx,[VT4.exe+436878] "VT4.exe"+1434AD: 85 C9 - test ecx,ecx "VT4.exe"+1434AF: 74 2E - je VT4.exe+1434DF "VT4.exe"+1434B1: D9 44 24 1C - fld dword ptr [esp+1C] "VT4.exe"+1434B5: 8B 57 38 - mov edx,[edi+38] "VT4.exe"+1434B8: 6A 00 - push 00 "VT4.exe"+1434BA: 51 - push ecx "VT4.exe"+1434BB: D9 1C 24 - fstp dword ptr [esp] "VT4.exe"+1434BE: 52 - push edx "VT4.exe"+1434BF: E8 BC DB 0A 00 - call VT4.exe+1F1080 } то есть AobScan присутствует но прыжок не на newmem а обратно в code Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 13 ноября, 2016 Автор Поделиться Опубликовано 13 ноября, 2016 (изменено) С вариантом который я привел выше - получил вылет после 7 минут игры. Ну и как дальше быть?) Изменено 13 ноября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения