MasterGH Опубликовано 1 июля, 2017 Поделиться Опубликовано 1 июля, 2017 Могу дать сырое решение 1. Нажимаем на "H" - снимаются по 10-ке плохие параметры (усталость, голод и прочее) 2. Нажимаем на "J" - добавляется 1 очко способностей Много раз нажимаем на H и J и параметры обновляются у всех персонажей. При установке указать правильный путь до Cheat.dll в таблице .CT. Фрагмент testdllpath: // Путь до dll db 'D:\Cheat.dll',0 Я сделал dll с двумя классами. Подгружается через Cheat Engine через CT таблицу Скрытый текст using System; using UnityEngine; namespace NamespaceCheats { public class Cheats { public static void Main() { GameObject go = new GameObject(); go.name = "CheatsActionsKey"; go.AddComponent<ActionsKey>(); } } } Скрытый текст using UnityEngine; namespace NamespaceCheats { public class ActionsKey: MonoBehaviour { void Update() { if (Input.GetKey(KeyCode.H)) { foreach (CharacterEntity character in CharacterEntity.__Characters) { character.AddToDepressionStateValue(-10, false); character.AddToFatigueStateValue(-10, false); character.AddToHungerStateValue(-10, false); character.AddToInjuryStateValue(-10, false); character.AddToSicknessStateValue(-1, false); } } if (Input.GetKey(KeyCode.J)) { foreach (CharacterEntity character in CharacterEntity.__Characters) { character.AddToTraitXp(1); character.AddToXpAndLevelUp(1); } } } } } Cheat.dll Dead In Bermuda.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Strajder Опубликовано 2 июля, 2017 Автор Поделиться Опубликовано 2 июля, 2017 (изменено) Привет Всем. Времени было мало, но кое - что все же изменил. Ссылка на таблицу: https://yadi.sk/d/NfpXJ9v13KgMUV Заранее извиняюсь за то, что увы не знаю как загрузить таблицу на сайт. Тыкался - тыкался и ничего не нашел. Может так искал. Основные/Дополнительные Параметры Группы: Скрытый текст { Game : Dead In Bermuda.exe Version: Date : 2017-06-27 Author : ALEXSP This script does blah blah blah } [ENABLE] aobscan(Psyho,D9 40 08 D9 5D F4 D9 45 F4 D9 5D F4 D9 45 F4 EB) // should be unique b0 aobscan(Disease,D9 40 08 D9 5D F4 D9 45 F4 D9 5D F4 D9 45 F4 E9 87) // should be unique b8 aobscan(Noattack,D9 40 08 D9 5D F4 D9 45 F4 D9 5D F4 D9 45 F4 E9 54) // should be unique b4 aobscan(Sleep,D9 40 08 D9 5D F4 D9 45 F4 D9 5D F4 D9 45 F4 E9 BA) // should be unique ac aobscan(Hungry,D9 40 08 D9 5D F4 D9 45 F4 D9 5D F4 D9 45 F4 E9 ED) // should be unique a8 alloc(newmem,$2048) label(newmem1) label(newmem2) label(newmem3) label(newmem4) label(code1) label(code2) label(code3) label(code4) label(return) label(return1) label(return2) label(return3) label(return4) registersymbol(Psyho) registersymbol(Sleep) registersymbol(Noattack) registersymbol(Hungry) registersymbol(Disease) newmem: mov [eax+08], (float)0 code: fld dword ptr [eax+08] fstp dword ptr [ebp-0C] jmp return newmem1: mov [eax+08], (float)0 code1: fld dword ptr [eax+08] fstp dword ptr [ebp-0C] jmp return1 newmem2: mov [eax+08], (float)0 code2: fld dword ptr [eax+08] fstp dword ptr [ebp-0C] jmp return2 newmem3: mov [eax+08], (float)0 code3: fld dword ptr [eax+08] fstp dword ptr [ebp-0C] jmp return3 newmem4: mov [eax+08], (float)0 code4: fld dword ptr [eax+08] fstp dword ptr [ebp-0C] jmp return4 Psyho: jmp newmem db 90 return: Sleep: jmp newmem1 db 90 return1: Noattack: jmp newmem2 db 90 return2: Hungry: jmp newmem3 db 90 return3: Disease: jmp newmem4 db 90 return4: [DISABLE] Psyho: db D9 40 08 D9 5D F4 Sleep: db D9 40 08 D9 5D F4 Noattack: db D9 40 08 D9 5D F4 Hungry: db D9 40 08 D9 5D F4 Disease: db D9 40 08 D9 5D F4 unregistersymbol(Psyho) unregistersymbol(Sleep) unregistersymbol(Noattack) unregistersymbol(Hungry) unregistersymbol(Disease) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 1403D049 ""+1403D02A: 83 EC 08 - sub esp,08 ""+1403D02D: 68 60 0E D0 0E - push 0ED00E60 ""+1403D032: 57 - push edi ""+1403D033: E8 28 4F 68 F1 - call 056C1F60 ""+1403D038: 83 C4 10 - add esp,10 ""+1403D03B: 85 C0 - test eax,eax ""+1403D03D: 74 1B - je 1403D05A ""+1403D03F: 8B 86 B8 00 00 00 - mov eax,[esi+000000B8] ""+1403D045: 8B C8 - mov ecx,eax ""+1403D047: 39 09 - cmp [ecx],ecx // ---------- INJECTING HERE ---------- ""+1403D049: D9 40 08 - fld dword ptr [eax+08] ""+1403D04C: D9 5D F4 - fstp dword ptr [ebp-0C] // ---------- DONE INJECTING ---------- ""+1403D04F: D9 45 F4 - fld dword ptr [ebp-0C] ""+1403D052: D9 5D F4 - fstp dword ptr [ebp-0C] ""+1403D055: D9 45 F4 - fld dword ptr [ebp-0C] ""+1403D058: EB 24 - jmp 1403D07E ""+1403D05A: 83 EC 08 - sub esp,08 ""+1403D05D: 57 - push edi ""+1403D05E: 68 10 23 2A 17 - push 172A2310 ""+1403D063: E8 10 49 68 F1 - call 056C1978 ""+1403D068: 83 C4 10 - add esp,10 ""+1403D06B: 83 EC 08 - sub esp,08 } Тут с этим скриптом мне в ЛС помог LIRW, Предложенный им скрипт оказался работоспособным. Но по его желанию я не стану его выкладывать в общий доступ. При желании - скину в ЛС участникам форума. Решение было представлено довольно таки интересное. Я же выложил свои 5 скриптов объединенные в 1 - более громоздки, но причину я описал выше. Добавить 1 талант (Таргет мышкой над персонажем): Скрытый текст { Game : Dead In Bermuda.exe Version: Date : 2017-06-27 Author : ALEXSP This script does blah blah blah } [ENABLE] aobscan(points,8B 87 10 01 00 00 8B D9) // should be unique alloc(newmem,$1000) label(code) label(return) label(flag) registersymbol(points) registersymbol(flag) newmem: cmp [flag],1 jne code mov [flag],0 add [edi+00000110],#1 flag: Dd 0 code: mov eax,[edi+00000110] jmp return points: jmp newmem db 90 return: [DISABLE] points: db 8B 87 10 01 00 00 unregistersymbol(points) unregistersymbol(flag) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 1706B24F ""+1706B232: 85 C0 - test eax,eax ""+1706B234: 0F 84 6F 00 00 00 - je 1706B2A9 ""+1706B23A: 8B 46 44 - mov eax,[esi+44] ""+1706B23D: 83 EC 0C - sub esp,0C ""+1706B240: 50 - push eax ""+1706B241: 39 00 - cmp [eax],eax ""+1706B243: E8 78 99 39 EE - call 05404BC0 ""+1706B248: 83 C4 10 - add esp,10 ""+1706B24B: 8B C8 - mov ecx,eax ""+1706B24D: 39 3F - cmp [edi],edi // ---------- INJECTING HERE ---------- ""+1706B24F: 8B 87 10 01 00 00 - mov eax,[edi+00000110] // ---------- DONE INJECTING ---------- ""+1706B255: 8B D9 - mov ebx,ecx ""+1706B257: 85 C0 - test eax,eax ""+1706B259: 7E 36 - jle 1706B291 ""+1706B25B: 8B 46 2C - mov eax,[esi+2C] ""+1706B25E: 83 EC 0C - sub esp,0C ""+1706B261: 50 - push eax ""+1706B262: 39 00 - cmp [eax],eax ""+1706B264: E8 E7 0A 3A EE - call 0540BD50 ""+1706B269: 83 C4 10 - add esp,10 ""+1706B26C: 83 EC 04 - sub esp,04 } Скрытый текст [ENABLE] flag: Dd 1 [DISABLE] flag: Dd 0 Ресурсы, Ремонт, быстрая постройка: Ресурсы по 100: Скрытый текст { Game : Dead In Bermuda.exe Version: Date : 2017-06-27 Author : ALEXSP This script does blah blah blah } [ENABLE] aobscan(Resour,8B 40 0C 85 C0 0F 8F DE) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Resour) newmem: mov [eax+0C],#100 code: mov eax,[eax+0C] test eax,eax jmp return Resour: jmp newmem return: [DISABLE] Resour: db 8B 40 0C 85 C0 unregistersymbol(Resour) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 1406AF57 ""+1406AF3C: 83 EC 08 - sub esp,08 ""+1406AF3F: 53 - push ebx ""+1406AF40: 50 - push eax ""+1406AF41: E8 2A 0C 67 F1 - call 056DBB70 ""+1406AF46: 83 C4 10 - add esp,10 ""+1406AF49: 8B 45 F0 - mov eax,[ebp-10] ""+1406AF4C: 8B 48 0C - mov ecx,[eax+0C] ""+1406AF4F: 03 CE - add ecx,esi ""+1406AF51: 89 48 0C - mov [eax+0C],ecx ""+1406AF54: 8B 45 F0 - mov eax,[ebp-10] // ---------- INJECTING HERE ---------- ""+1406AF57: 8B 40 0C - mov eax,[eax+0C] ""+1406AF5A: 85 C0 - test eax,eax // ---------- DONE INJECTING ---------- ""+1406AF5C: 0F 8F DE 00 00 00 - jg 1406B040 ""+1406AF62: 8B 43 30 - mov eax,[ebx+30] ""+1406AF65: 8B 4D F0 - mov ecx,[ebp-10] ""+1406AF68: 83 EC 08 - sub esp,08 ""+1406AF6B: 51 - push ecx ""+1406AF6C: 50 - push eax ""+1406AF6D: 39 00 - cmp [eax],eax ""+1406AF6F: E8 F0 01 00 00 - call 1406B164 ""+1406AF74: 83 C4 10 - add esp,10 ""+1406AF77: 8B 43 20 - mov eax,[ebx+20] } Библиотека и мастерская 100% (Прочность): Скрытый текст { Game : Dead In Bermuda.exe Version: Date : 2017-06-27 Author : ALEXSP This script does blah blah blah } [ENABLE] aobscan(Repair2,D9 80 90 00 00 00 C9) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Repair2) newmem: mov [eax+00000090], (float)100 code: fld dword ptr [eax+00000090] jmp return Repair2: jmp newmem db 90 return: [DISABLE] Repair2: db D9 80 90 00 00 00 unregistersymbol(Repair2) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 140384F9 ""+140384E5: 00 00 - add [eax],al ""+140384E7: 00 55 8B - add [ebp-75],dl ""+140384EA: EC - in al,dx ""+140384EB: 83 EC 08 - sub esp,08 ""+140384EE: C9 - leave ""+140384EF: C3 - ret ""+140384F0: 55 - push ebp ""+140384F1: 8B EC - mov ebp,esp ""+140384F3: 83 EC 08 - sub esp,08 ""+140384F6: 8B 45 08 - mov eax,[ebp+08] // ---------- INJECTING HERE ---------- ""+140384F9: D9 80 90 00 00 00 - fld dword ptr [eax+00000090] // ---------- DONE INJECTING ---------- ""+140384FF: C9 - leave ""+14038500: C3 - ret ""+14038501: 00 00 - add [eax],al ""+14038503: 00 00 - add [eax],al ""+14038505: 00 00 - add [eax],al ""+14038507: 00 55 8B - add [ebp-75],dl ""+1403850A: EC - in al,dx ""+1403850B: 83 EC 08 - sub esp,08 ""+1403850E: 8B 45 08 - mov eax,[ebp+08] ""+14038511: D9 80 94 00 00 00 - fld dword ptr [eax+00000094] } Быстрая постройка В мастерской: Скрытый текст { Game : Dead In Bermuda.exe Version: Date : 2017-06-27 Author : ALEXSP This script does blah blah blah } [ENABLE] aobscan(ISSLE,88 10 D9 00 83 EC 0C) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(ISSLE) newmem: mov [eax], (float)1000 code: fld dword ptr [eax] sub esp,0C jmp return ISSLE+02: jmp newmem return: [DISABLE] ISSLE+02: db D9 00 83 EC 0C unregistersymbol(ISSLE) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: 1403EE91 ""+1403EE70: E8 A3 D8 69 F1 - call 056DC718 ""+1403EE75: 83 C4 10 - add esp,10 ""+1403EE78: 8B C8 - mov ecx,eax ""+1403EE7A: 8B 45 D4 - mov eax,[ebp-2C] ""+1403EE7D: 8B D1 - mov edx,ecx ""+1403EE7F: 39 12 - cmp [edx],edx ""+1403EE81: 8B 49 40 - mov ecx,[ecx+40] ""+1403EE84: 39 48 0C - cmp [eax+0C],ecx ""+1403EE87: 0F 86 36 01 00 00 - jbe 1403EFC3 ""+1403EE8D: 8D 44 88 10 - lea eax,[eax+ecx*4+10] // ---------- INJECTING HERE ---------- ""+1403EE91: D9 00 - fld dword ptr [eax] ""+1403EE93: 83 EC 0C - sub esp,0C // ---------- DONE INJECTING ---------- ""+1403EE96: 83 EC 04 - sub esp,04 ""+1403EE99: D9 1C 24 - fstp dword ptr [esp] ""+1403EE9C: E8 2F F7 6D F1 - call 0571E5D0 ""+1403EEA1: 83 C4 10 - add esp,10 ""+1403EEA4: 8B D0 - mov edx,eax ""+1403EEA6: 8B 45 DC - mov eax,[ebp-24] ""+1403EEA9: 8B 4D D8 - mov ecx,[ebp-28] ""+1403EEAC: 52 - push edx ""+1403EEAD: DB 04 24 - fild dword ptr [esp] ""+1403EEB0: D9 1C 24 - fstp dword ptr [esp] } На этом пока все. В ближайшее время постараюсь найти нужную инструкцию для пойнтера. Очень уж охота создать нормальную таблицу со статами. Опыта пока мало - хотелок много . Посмотрел несколько видео Garik66 почерпнул у него аккуратность написания скриптов, ну и еще много интересного узнал. Спасибо всем за участие. Как и всегда. Изменено 2 июля, 2017 пользователем Strajder 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения