Partizan Опубликовано 18 марта, 2021 Поделиться Опубликовано 18 марта, 2021 Скрипт на жизни и ману Спойлер [ENABLE] aobscanmodule(hp_mp,Hero_Siege.exe,ff 76 ? 8d 46 ? 50 e8 ? ? ? ? 83 c4 ? f7 46 2c ? ? ? ? 74 ? 8d 46 ? c7 86 78 0c 00 00) alloc(newmem,$1000) label(return) label(val) registersymbol(val) registersymbol(hp_mp) newmem: push ebx mov ebx,[esi+08] fld qword ptr [val] fstp qword ptr [ebx] fld qword ptr [val] fstp qword ptr [ebx+10] fld qword ptr [val] fstp qword ptr [ebx+20] fld qword ptr [val] fstp qword ptr [ebx+30] pop ebx push [esi+08] lea eax,[esi+20] jmp return val: dq (double)1000000 hp_mp: jmp newmem nop return: [DISABLE] hp_mp: db FF 76 08 8D 46 20 unregistersymbol(val) unregistersymbol(hp_mp) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Hero_Siege.exe+701355 Hero_Siege.exe+70132D: 68 00 00 3F 40 - push 403F0000 Hero_Siege.exe+701332: 6A 00 - push 00 Hero_Siege.exe+701334: 50 - push eax Hero_Siege.exe+701335: 8D 86 B0 00 00 00 - lea eax,[esi+000000B0] Hero_Siege.exe+70133B: 50 - push eax Hero_Siege.exe+70133C: E8 DF 56 B1 FF - call Hero_Siege.exe+216A20 Hero_Siege.exe+701341: 83 C4 10 - add esp,10 Hero_Siege.exe+701344: 8D 86 B0 00 00 00 - lea eax,[esi+000000B0] Hero_Siege.exe+70134A: C7 86 78 0C 00 00 52 02 00 00 - mov [esi+00000C78],00000252 Hero_Siege.exe+701354: 50 - push eax // ---------- INJECTING HERE ---------- Hero_Siege.exe+701355: FF 76 08 - push [esi+08] // ---------- DONE INJECTING ---------- Hero_Siege.exe+701358: 8D 46 20 - lea eax,[esi+20] Hero_Siege.exe+70135B: 50 - push eax Hero_Siege.exe+70135C: E8 9F 75 99 FF - call Hero_Siege.exe+98900 Hero_Siege.exe+701361: 83 C4 0C - add esp,0C Hero_Siege.exe+701364: F7 46 2C FF FF FF 00 - test [esi+2C],00FFFFFF Hero_Siege.exe+70136B: 74 7B - je Hero_Siege.exe+7013E8 Hero_Siege.exe+70136D: 8D 46 20 - lea eax,[esi+20] Hero_Siege.exe+701370: C7 86 78 0C 00 00 53 02 00 00 - mov [esi+00000C78],00000253 Hero_Siege.exe+70137A: 50 - push eax Hero_Siege.exe+70137B: E8 90 C5 FD 06 - call Hero_Siege.exe+76DD910 } Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 марта, 2021 Поделиться Опубликовано 19 марта, 2021 fld qword ptr [val] fstp qword ptr [ebx] fld qword ptr [val] fstp qword ptr [ebx+10] fld qword ptr [val] fstp qword ptr [ebx+20] fld qword ptr [val] fstp qword ptr [ebx+30] Зачем так нагородил? Идиотизм... Один раз загрузил на FPU стек, и один раз в конце вытолкнул. fld qword ptr [val] fst qword ptr [ebx] fst qword ptr [ebx+10] fst qword ptr [ebx+20] fstp qword ptr [ebx+30] 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 19 марта, 2021 Автор Поделиться Опубликовано 19 марта, 2021 (изменено) Мдаааа чтот я тупонул FLD src TOPSWR-=1; ST(0)=src; Загрузка операнда в вершину стека FST dst dst=ST(0); Сохранение вершины стека в память FSTP dst dst=ST(0); TOPSWR+=1; Сохранение вершины стека в память с выталкиванием Спойлер [ENABLE] aobscanmodule(hp_mp,Hero_Siege.exe,ff 76 ? 8d 46 ? 50 e8 ? ? ? ? 83 c4 ? f7 46 2c ? ? ? ? 74 ? 8d 46 ? c7 86 78 0c 00 00) alloc(newmem,$1000) label(return) label(val) registersymbol(val) registersymbol(hp_mp) newmem: push ebx mov ebx,[esi+08] fld qword ptr [val] fst qword ptr [ebx] fst qword ptr [ebx+10] fst qword ptr [ebx+20] fstp qword ptr [ebx+30] pop ebx push [esi+08] lea eax,[esi+20] jmp return val: dq (double)1000000 hp_mp: jmp newmem nop return: [DISABLE] hp_mp: db FF 76 08 8D 46 20 unregistersymbol(val) unregistersymbol(hp_mp) dealloc(newmem) Изменено 19 марта, 2021 пользователем Partizan Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 марта, 2021 Поделиться Опубликовано 19 марта, 2021 2 часа назад, Partizan сказал: я тупонул Да там если разобраться и не раз... и так работать будет не плохо.. Спойлер newmem: mov eax,[esi+08] fld qword [val] fst qword [eax] fst qword [eax+10] fst qword [eax+20] fstp qword [eax+30] push [esi+08] lea eax,[esi+20] jmp return Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 19 марта, 2021 Автор Поделиться Опубликовано 19 марта, 2021 (изменено) 1 час назад, LIRW сказал: Да там если разобраться и не раз... и так работать будет не плохо.. Показать контент newmem: mov eax,[esi+08] fld qword [val] fst qword [eax] fst qword [eax+10] fst qword [eax+20] fstp qword [eax+30] push [esi+08] lea eax,[esi+20] jmp return А разница? Просто я не стал трогать регистр который в оригинальном коде используется Изменено 19 марта, 2021 пользователем Partizan Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 марта, 2021 Поделиться Опубликовано 19 марта, 2021 1 час назад, Partizan сказал: Просто я не стал трогать регистр который в оригинальном коде используется Открою не большой секрет (только не кому не рассказывай об этом) но умеет перезаписываться Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 19 марта, 2021 Автор Поделиться Опубликовано 19 марта, 2021 3 часа назад, LIRW сказал: Открою не большой секрет (только не кому не рассказывай об этом) но умеет перезаписываться Ну раз Вы такой умный и придирчивый. То с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx Хотяб на примере той же medieval dynasty. Уж очень интересна данная тема. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 марта, 2021 Поделиться Опубликовано 19 марта, 2021 28 минут назад, Partizan сказал: с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx А чего там умничать? Берешь и ломаешь. Как и другие движки. 29 минут назад, Partizan сказал: на примере той же medieval dynasty Самому слабо? Ты же вроде как в разрабы метишь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 19 марта, 2021 Автор Поделиться Опубликовано 19 марта, 2021 Странная игра после нескольких перезапусков (3-4) меняет смещения и после создания нового перса. Рабочее остается только нулевое смещение а остальные переезжают. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 20 марта, 2021 Поделиться Опубликовано 20 марта, 2021 23 часа назад, Partizan сказал: Ну раз Вы такой умный и придирчивый. То с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx Хотяб на примере той же medieval dynasty. Уж очень интересна данная тема. У него проблем с движком нет. К слову, это @LIRW Значит не от движка зависит. Говорят же, плохому танцору ***** мешают. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 21 марта, 2021 Автор Поделиться Опубликовано 21 марта, 2021 (изменено) Ох зря Вы начали про танцоров и то чего им мешает.(меня бомбануло) 1. Начнём с версии движков Hatred и Medieval Dynasty Как можно заметить по скрину. Разные версии. 2. С Hatred нет ни каких проблем. На адрессе патронов сработала инструкция которая работает ТОЛЬКО с адрессом патронов Поэтому отсеивать как во многих современных играх ни чего не надо Спойлер [ENABLE] aobscanmodule(No_Reload,Hatred-Win64-Shipping.exe,8bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx48xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0fb6xxxxxxxxxxxxxxxxxxxxxxxxxxxx48xxxxxxxxxx48xxxxxx49) alloc(newmem,$1000,No_Reload) label(return) registersymbol(No_Reload) newmem: push [rcx+00000384] pop [rcx+00000354] mov eax,[rcx+00000354] jmp return No_Reload: jmp newmem nop return: [DISABLE] No_Reload: db 8B 81 54 03 00 00 unregistersymbol(No_Reload) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Hatred-Win64-Shipping.exe+1A4860 Hatred-Win64-Shipping.exe+1A4844: F3 0F 11 0F - movss [rdi],xmm1 Hatred-Win64-Shipping.exe+1A4848: F3 0F 10 4C 24 44 - movss xmm1,[rsp+44] Hatred-Win64-Shipping.exe+1A484E: F3 0F 5E C8 - divss xmm1,xmm0 Hatred-Win64-Shipping.exe+1A4852: F3 0F 11 4F 04 - movss [rdi+04],xmm1 Hatred-Win64-Shipping.exe+1A4857: 48 83 C4 30 - add rsp,30 Hatred-Win64-Shipping.exe+1A485B: 5F - pop rdi Hatred-Win64-Shipping.exe+1A485C: C3 - ret Hatred-Win64-Shipping.exe+1A485D: CC - int 3 Hatred-Win64-Shipping.exe+1A485E: CC - int 3 Hatred-Win64-Shipping.exe+1A485F: CC - int 3 // ---------- INJECTING HERE ---------- Hatred-Win64-Shipping.exe+1A4860: 8B 81 54 03 00 00 - mov eax,[rcx+00000354] // ---------- DONE INJECTING ---------- Hatred-Win64-Shipping.exe+1A4866: C3 - ret Hatred-Win64-Shipping.exe+1A4867: CC - int 3 Hatred-Win64-Shipping.exe+1A4868: CC - int 3 Hatred-Win64-Shipping.exe+1A4869: CC - int 3 Hatred-Win64-Shipping.exe+1A486A: CC - int 3 Hatred-Win64-Shipping.exe+1A486B: CC - int 3 Hatred-Win64-Shipping.exe+1A486C: CC - int 3 Hatred-Win64-Shipping.exe+1A486D: CC - int 3 Hatred-Win64-Shipping.exe+1A486E: CC - int 3 Hatred-Win64-Shipping.exe+1A486F: CC - int 3 } 3. Medieval Dynasty Возьмём к примеру туже выносливость. Это полоска Float шкала пустая это 0 шкала целая это 1 Поставив бряк на адрессе можно увидеть следущие Как видно со скрина с инструкцией работает куча адрессов и надо отсеивать.(схожа ситуация на движок GameMaker) Но как можно заметить в регистрах R12 и R13 хранится начало структуры.(но так не везде и не во всех случаях) Посмотрим структуру. Смещение 490 и есть выносливость ГГ 4. Как отсеить? С отсеивание у меня ни чего не вышло. Ни по структуре (это вообще бред её смотреть) ни по стеку. Но если посмотреть на начало структуры то будет указатель. Ставлю на него бряк. И да. Нашласть инструкция которая работает только с нашей структурой. Дальше всё просто. Пишем такой скрипт чтоб можно было добовлять указатели. Спойлер [ENABLE] aobscanmodule(Struct,Medieval_Dynasty-Win64-Shipping.exe,48 8B ? F3 0F ? ? ? ? E8 ? ? ? ? 48 8B ? 4C 8D ? ? ? 48 8B ? FF 93 ? ? ? ? 48 8B ? ? ? 48 83 C4 ? 5F C3 CC CC 48 8B) alloc(newmem,$1000,Struct) label(return) label(_StrPl) registersymbol(_StrPl) registersymbol(Struct) newmem: mov [_StrPl],rcx mov rbx,[rcx] movss [rsp+38],xmm1 jmp return _StrPl: dd 00 Struct: jmp newmem nop 4 return: [DISABLE] Struct: db 48 8B 19 F3 0F 11 4C 24 38 unregistersymbol(_StrPl) unregistersymbol(Struct) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Medieval_Dynasty-Win64-Shipping.exe+2917074 Medieval_Dynasty-Win64-Shipping.exe+291705B: C3 - ret Medieval_Dynasty-Win64-Shipping.exe+291705C: CC - int 3 Medieval_Dynasty-Win64-Shipping.exe+291705D: CC - int 3 Medieval_Dynasty-Win64-Shipping.exe+291705E: CC - int 3 Medieval_Dynasty-Win64-Shipping.exe+291705F: CC - int 3 Medieval_Dynasty-Win64-Shipping.exe+2917060: 48 89 5C 24 08 - mov [rsp+08],rbx Medieval_Dynasty-Win64-Shipping.exe+2917065: 57 - push rdi Medieval_Dynasty-Win64-Shipping.exe+2917066: 48 83 EC 20 - sub rsp,20 Medieval_Dynasty-Win64-Shipping.exe+291706A: 48 8B 15 67 EA C0 01 - mov rdx,[Medieval_Dynasty-Win64-Shipping.exe+4525AD8] Medieval_Dynasty-Win64-Shipping.exe+2917071: 48 8B F9 - mov rdi,rcx // ---------- INJECTING HERE ---------- Medieval_Dynasty-Win64-Shipping.exe+2917074: 48 8B 19 - mov rbx,[rcx] // ---------- DONE INJECTING ---------- Medieval_Dynasty-Win64-Shipping.exe+2917077: F3 0F 11 4C 24 38 - movss [rsp+38],xmm1 Medieval_Dynasty-Win64-Shipping.exe+291707D: E8 9E F7 73 FE - call Medieval_Dynasty-Win64-Shipping.exe+1056820 Medieval_Dynasty-Win64-Shipping.exe+2917082: 48 8B D0 - mov rdx,rax Medieval_Dynasty-Win64-Shipping.exe+2917085: 4C 8D 44 24 38 - lea r8,[rsp+38] Medieval_Dynasty-Win64-Shipping.exe+291708A: 48 8B CF - mov rcx,rdi Medieval_Dynasty-Win64-Shipping.exe+291708D: FF 93 18 02 00 00 - call qword ptr [rbx+00000218] Medieval_Dynasty-Win64-Shipping.exe+2917093: 48 8B 5C 24 30 - mov rbx,[rsp+30] Medieval_Dynasty-Win64-Shipping.exe+2917098: 48 83 C4 20 - add rsp,20 Medieval_Dynasty-Win64-Shipping.exe+291709C: 5F - pop rdi Medieval_Dynasty-Win64-Shipping.exe+291709D: C3 - ret } И добавляем указатели. _StrPl+474=Еда _StrPl+488=Вода _StrPl+490=Выносливость P.S. Не надо не разобравшись в ситуации начинать говорить про танцоров и то чего им мешает Меня это задело (практически оскарбило) P.S.2 Этот способ работает не на всех играх с современным UE Поэтому я писал ранее. Запилите урок по этому движку. P.S.3 Kvazimado Вам ни чего не мешает??? Изменено 21 марта, 2021 пользователем Partizan Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 21 марта, 2021 Поделиться Опубликовано 21 марта, 2021 Ух, прям как будто в Херасиме при бомбардировке побывал. Благо свинцовые трусы я не забыл надеть. Столько написал, но ничего не сделал. Не надо так! Сам же сказал, у тебя проблема с игрой на движке UE 4.****. Никаких уточнений. PS Не надо не разобравшись в ситуации начинать бомбить. Меня это не задело (практически пофиг). PS 2 Всем макарошек с котлетками! PS 3 @Partizan Очень мешает. Поэтому девушки меня и любят) 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 30 марта, 2021 Поделиться Опубликовано 30 марта, 2021 Ну чо как? Поддалась игра али бросил, так и не начав? @Partizan Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 30 марта, 2021 Автор Поделиться Опубликовано 30 марта, 2021 Ее очень часто обновляют. Запаришся каждый раз переделывать Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 31 марта, 2021 Поделиться Опубликовано 31 марта, 2021 9 часов назад, Partizan сказал: Ее очень часто обновляют. Запаришся каждый раз переделывать Сделай универсально, чтобы не приходилось переделывать при каждом обновлении. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения