TimaS Опубликовано 14 ноября, 2018 Поделиться Опубликовано 14 ноября, 2018 Доброго времени суток уважаемые, Недавно ломал игру Deadpool, на здоровье, увы не получилось. сделал фильтр, опять же проблема с nop'ами, буду так же благодарен за инструкцию с nop'ами (видео или статья) заранее спасибо! Вот код: Спойлер { Game : DP.exe Version: Date : 2018-11-14 Author : numat This script does blah blah blah } [ENABLE] aobscanmodule(health,DP.exe,5C 8B 92 C4 01 00 00 50 51 8B CE F3 0F 11 04 24 FF D2 8B D8 8B 06) // should be unique health+10: nop return: registersymbol(health) [DISABLE] health+10: db FF D2 8B unregistersymbol(health) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "DP.exe"+456BC6 "DP.exe"+456BA1: E9 BD 00 00 00 - jmp DP.exe+456C63 "DP.exe"+456BA6: 8B 44 24 60 - mov eax,[esp+60] "DP.exe"+456BAA: 8B 16 - mov edx,[esi] "DP.exe"+456BAC: F3 0F 10 46 68 - movss xmm0,[esi+68] "DP.exe"+456BB1: F3 0F 59 44 24 5C - mulss xmm0,[esp+5C] "DP.exe"+456BB7: 8B 92 C4 01 00 00 - mov edx,[edx+000001C4] "DP.exe"+456BBD: 50 - push eax "DP.exe"+456BBE: 51 - push ecx "DP.exe"+456BBF: 8B CE - mov ecx,esi "DP.exe"+456BC1: F3 0F 11 04 24 - movss [esp],xmm0 // ---------- INJECTING HERE ---------- "DP.exe"+456BC6: FF D2 - call edx "DP.exe"+456BC8: 8B D8 - mov ebx,eax "DP.exe"+456BCA: 8B 06 - mov eax,[esi] // ---------- DONE INJECTING ---------- "DP.exe"+456BCC: 8B 50 40 - mov edx,[eax+40] "DP.exe"+456BCF: 8B CE - mov ecx,esi "DP.exe"+456BD1: FF D2 - call edx "DP.exe"+456BD3: 85 C0 - test eax,eax "DP.exe"+456BD5: 75 4B - jne DP.exe+456C22 "DP.exe"+456BD7: 80 7E 6C 0A - cmp byte ptr [esi+6C],0A "DP.exe"+456BDB: 75 45 - jne DP.exe+456C22 "DP.exe"+456BDD: 39 86 68 01 00 00 - cmp [esi+00000168],eax "DP.exe"+456BE3: 74 3D - je DP.exe+456C22 "DP.exe"+456BE5: A1 7C 53 ED 01 - mov eax,[DP.exe+125537C] } Вот полный db Спойлер db FF D2 8B D8 8B 06 Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 14 ноября, 2018 Поделиться Опубликовано 14 ноября, 2018 (изменено) Твой скрипт у меня не заработал похоже разные версии или таблетки У меня реп от механиков Изменено 14 ноября, 2018 пользователем JIeXA Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 15 ноября, 2018 Поделиться Опубликовано 15 ноября, 2018 забыл вывалить скрипт на HP Спойлер [ENABLE] aobscanmodule(INJECT,DP.exe+418909,f3xxxxxxxxxxxxxxf3xxxxxxxxxxxxxx83xxxxd9xxxxxxxxxxd9xxxxxxf3xxxxxxxxe8xxxxxxxx83xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx68) alloc(newmem,$1000) label(return) registersymbol(INJECT) newmem: mov [eax+00000350],(float)5000 mov [eax+00000354],(float)5000 movss xmm0,[eax+00000350] jmp return INJECT: jmp newmem db 90 90 90 return: [DISABLE] INJECT: movss xmm0,[eax+00000350] unregistersymbol(INJECT) dealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
TimaS Опубликовано 15 ноября, 2018 Автор Поделиться Опубликовано 15 ноября, 2018 11 часов назад, JIeXA сказал: Твой скрипт у меня не заработал похоже разные версии или таблетки У меня реп от механиков Тип издания: RePack Таблетка: Вшита [Reloaded/Fixed] спасибо за помощь!. шяс попробую. Таблетка: Вшита [Reloaded/FIxed] Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 ноября, 2018 Поделиться Опубликовано 15 ноября, 2018 Как то так это будет выглядеть... таблицы нет - из старого исхода выписал. Спойлер [ENABLE] aobscanmodule(pointerplayerlive,DP.exe,D9 41 54 F3 0F 10 80 50 03 00 00 F3 0F 5C 80 * * * * * * * D9 5C 24 08) aobscanmodule(baseplayerlive,DP.exe,F3 0F 11 86 40 03 00 00 0F * * 51 8D 4C 24 * F3) alloc(hackmem,$1000) label(pointer) label(pointerplayerliveback) label(pointerliveid) label(exitbaseplayerlive) label(baseplayerliveback) label(base) hackmem: pointer: mov [pointerliveid],eax movss xmm0,[eax+350] jmp pointerplayerliveback pointerliveid: dd 0 base: push eax lea eax,[esi-10] cmp [pointerliveid],eax pop eax jne exitbaseplayerlive movss xmm0,[esi+344] exitbaseplayerlive: movss [esi+340],xmm0 jmp baseplayerliveback pointerplayerlive+03: jmp pointer db 90 90 90 pointerplayerliveback: baseplayerlive: jmp base db 90 90 90 baseplayerliveback: registersymbol(pointerplayerlive) registersymbol(pointerliveid) registersymbol(baseplayerlive) [DISABLE] pointerplayerlive+03: db F3 0F 10 80 50 03 00 00 BasePlayerLive: db F3 0F 11 86 40 03 00 00 unregistersymbol(pointerliveid) unregistersymbol(pointerplayerlive) unregistersymbol(baseplayerlive) dealloc(hackmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
TimaS Опубликовано 15 ноября, 2018 Автор Поделиться Опубликовано 15 ноября, 2018 6 часов назад, LIRW сказал: Как то так это будет выглядеть... таблицы нет - из старого исхода выписал. Показать контент [ENABLE] aobscanmodule(pointerplayerlive,DP.exe,D9 41 54 F3 0F 10 80 50 03 00 00 F3 0F 5C 80 * * * * * * * D9 5C 24 08) aobscanmodule(baseplayerlive,DP.exe,F3 0F 11 86 40 03 00 00 0F * * 51 8D 4C 24 * F3) alloc(hackmem,$1000) label(pointer) label(pointerplayerliveback) label(pointerliveid) label(exitbaseplayerlive) label(baseplayerliveback) label(base) hackmem: pointer: mov [pointerliveid],eax movss xmm0,[eax+350] jmp pointerplayerliveback pointerliveid: dd 0 base: push eax lea eax,[esi-10] cmp [pointerliveid],eax pop eax jne exitbaseplayerlive movss xmm0,[esi+344] exitbaseplayerlive: movss [esi+340],xmm0 jmp baseplayerliveback pointerplayerlive+03: jmp pointer db 90 90 90 pointerplayerliveback: baseplayerlive: jmp base db 90 90 90 baseplayerliveback: registersymbol(pointerplayerlive) registersymbol(pointerliveid) registersymbol(baseplayerlive) [DISABLE] pointerplayerlive+03: db F3 0F 10 80 50 03 00 00 BasePlayerLive: db F3 0F 11 86 40 03 00 00 unregistersymbol(pointerliveid) unregistersymbol(pointerplayerlive) unregistersymbol(baseplayerlive) dealloc(hackmem) Да огромное спасибо за код, но мне бы хотелось научится либо понять и сделать этот код сам, но не знаю что делать ведь официальный канал GameHacklab[Ru] заблокировали а идти не куда. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 ноября, 2018 Поделиться Опубликовано 15 ноября, 2018 18 минут назад, TimaS сказал: но мне бы хотелось научится либо понять и сделать этот код сам Так если сам... то тогда! Выбираешь инструкцию (которая работает только с тобой) а это у нас вот эта ниже... вот по этой строчке. D9 41 54 F3 0F 10 80 50 03 00 00 F3 0F 5C 80 * * * * * * * D9 5C 24 08 pointer: mov [pointerliveid],eax <----- вот сюда. Там как бы будет базовый адрес. movss xmm0,[eax+350] <---------- берем от сюда данные с eax и загружаем их выше в метку... jmp pointerplayerliveback Поинтер у нас готов на фильтр. Теперь берем инструкцию с вычитанием из здоровья персонажа... А это у нас Начинаем с фильтра. push eax <----- берем eax lea eax,[esi-10] <---- загружаем в него данные с регистра esi c иснтрукции записи и вычитаем 10h что бы выровнить их. Зачем спросишь ? Так в поинтере у нас + 350.. а в инструкции записи 340 cmp [pointerliveid],eax <--------- сравниваем их... pop eax jne exitbaseplayerlive <------- если не равно, то прыжок на ориганал.. если ровно то записываем макс hp с + 344 movss xmm0,[esi+344] <----------------- максимальное здоровте персонажа. exitbaseplayerlive: movss [esi+340],xmm0 <----- инструкция записи hp персонажа. можно конечно было и push eax mov eax,esi sub eax,10 cmp [xxxxxxxx],eax jne pop eax но тот вариант будет как то по лучше... Ps: Ну вроде бы и всё.. Тут и без видео можно разобраться, главное вникнуть и понять, как это всё работает. Игра ведь есть ? пример есть. Осталось не много подумать и всё получится. А в обще, есть много способов как это всё реализовать и в другом виде.. Это просто один из многих. Вариантов реализации подобного - много! Ссылка на комментарий Поделиться на другие сайты Поделиться
TimaS Опубликовано 15 ноября, 2018 Автор Поделиться Опубликовано 15 ноября, 2018 спасибо! хотя ничего не понял пойду посмотрю видео урок. Ps: Не надо меня цитировать полностью. Достаточно одного слова. Ссылка на комментарий Поделиться на другие сайты Поделиться
vagingameh Опубликовано 22 ноября, 2018 Поделиться Опубликовано 22 ноября, 2018 В 15.11.2018 в 19:11, TimaS сказал: пойду посмотрю видео урок уже не посмотришь( ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения