NSlava Опубликовано 28 октября, 2022 Поделиться Опубликовано 28 октября, 2022 (изменено) Всем большой привет 👋! Начинаю использовать игру [Fallout Shelter], до этого хорошо получалось справится с таким играми, как [Enter the Gungeon] и [Don't Starve Together], но вот с [Fallout Shelter] небольшое непонимание. Цель: Нужно увеличить количество определённых предметов на складе. Что уже пробовал: Я нашёл значение каждого предмета в каждом из разделов (их 4: Оружие, Костюмы, Хлам и Питомцы). Попытался заменить значение, без результата. Попытался придумать крюк с инструкциями, то же без результата. Вопрос: Я не прошу дать ответ, как это сделать. Я хочу понять, что я упускаю из виду. Буду признателен за подробное разъяснения или направления на материал 👨🎓. Какие инструкции выводит дизассемблер (много текста). Спойлер Спойлер 21D4FD105C6 - 45 1D 02000000 - sbb eax,00000002 { 2 } 21D4FD105CC - 00 00 - add [rax],al 21D4FD105CE - 00 00 - add [rax],al 21D4FD105D0 - 55 - push rbp 21D4FD105D1 - 48 8B EC - mov rbp,rsp 21D4FD105D4 - 53 - push rbx 21D4FD105D5 - 56 - push rsi 21D4FD105D6 - 57 - push rdi 21D4FD105D7 - 41 54 - push r12 21D4FD105D9 - 41 55 - push r13 21D4FD105DB - 41 56 - push r14 21D4FD105DD - 41 57 - push r15 21D4FD105DF - 48 81 EC B8000000 - sub rsp,000000B8 { 184 } 21D4FD105E6 - 4C 8B F1 - mov r14,rcx 21D4FD105E9 - 48 89 95 38FFFFFF - mov [rbp-000000C8],rdx 21D4FD105F0 - 4C 89 85 30FFFFFF - mov [rbp-000000D0],r8 21D4FD105F7 - 49 8B F1 - mov rsi,r9 21D4FD105FA - C7 45 94 00000000 - mov [rbp-6C],00000000 { 0 } 21D4FD10601 - C7 45 90 00000000 - mov [rbp-70],00000000 { 0 } 21D4FD10608 - 41 89 B6 78010000 - mov [r14+00000178],esi 21D4FD1060F - 41 C6 86 71010000 00 - mov byte ptr [r14+00000171],00 { 0 } 21D4FD10617 - 0FB6 85 30FFFFFF - movzx eax,byte ptr [rbp-000000D0] 21D4FD1061E - 41 88 86 70010000 - mov [r14+00000170],al 21D4FD10625 - 49 8B 86 E0000000 - mov rax,[r14+000000E0] 21D4FD1062C - 49 63 8E 78010000 - movsxd rcx,dword ptr [r14+00000178] 21D4FD10633 - 83 F9 01 - cmp ecx,01 { 1 } 21D4FD10636 - 40 0F94 C2 - sete dl 21D4FD1063A - 48 0FB6 D2 - movzx rdx,dl 21D4FD1063E - 48 8B C8 - mov rcx,rax 21D4FD10641 - 48 83 EC 20 - sub rsp,20 { 32 } 21D4FD10645 - 83 38 00 - cmp dword ptr [rax],00 { 0 } 21D4FD10648 - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) } 21D4FD10652 - 41 FF D3 - call r11 21D4FD10655 - 48 83 C4 20 - add rsp,20 { 32 } 21D4FD10659 - 0FB6 85 30FFFFFF - movzx eax,byte ptr [rbp-000000D0] 21D4FD10660 - 85 C0 - test eax,eax 21D4FD10662 - 74 0A - je 21D4FD1066E 21D4FD10664 - 4D 8B 6E 48 - mov r13,[r14+48] 21D4FD10668 - 4D 8B 66 40 - mov r12,[r14+40] 21D4FD1066C - EB 08 - jmp 21D4FD10676 21D4FD1066E - 4D 8B 6E 40 - mov r13,[r14+40] 21D4FD10672 - 4D 8B 66 48 - mov r12,[r14+48] 21D4FD10676 - 48 8B 85 38FFFFFF - mov rax,[rbp-000000C8] 21D4FD1067D - 48 63 48 18 - movsxd rcx,dword ptr [rax+18] 21D4FD10681 - FF C9 - dec ecx 21D4FD10683 - 49 63 55 18 - movsxd rdx,dword ptr [r13+18] 21D4FD10687 - 48 83 EC 20 - sub rsp,20 { 32 } 21D4FD1068B - 49 BB A05A93411D020000 - mov r11,0000021D41935AA0 { (418153288) } 21D4FD10695 - 41 FF D3 - call r11 21D4FD10698 - 48 83 C4 20 - add rsp,20 { 32 } 21D4FD1069C - 48 8B D8 - mov rbx,rax 21D4FD1069F - 33 FF - xor edi,edi 21D4FD106A1 - E9 3E000000 - jmp 21D4FD106E4 21D4FD106A6 - 66 90 - nop 2 21D4FD106A8 - 48 63 C7 - movsxd rax,edi 21D4FD106AB - 41 39 45 18 - cmp [r13+18],eax 21D4FD106AF - 0F86 F9170000 - jbe 21D4FD11EAE 21D4FD106B5 - 49 8D 44 C5 20 - lea rax,[r13+rax*8+20] 21D4FD106BA - 48 8B 00 - mov rax,[rax] 21D4FD106BD - 3B FB - cmp edi,ebx 21D4FD106BF - 40 0F9C C2 - setl dl 21D4FD106C3 - 48 0FB6 D2 - movzx rdx,dl 21D4FD106C7 - 48 8B C8 - mov rcx,rax 21D4FD106CA - 48 83 EC 20 - sub rsp,20 { 32 } 21D4FD106CE - 83 38 00 - cmp dword ptr [rax],00 { 0 } 21D4FD106D1 - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) } 21D4FD106DB - 41 FF D3 - call r11 21D4FD106DE - 48 83 C4 20 - add rsp,20 { 32 } 21D4FD106E2 - FF C7 - inc edi 21D4FD106E4 - 49 63 45 18 - movsxd rax,dword ptr [r13+18] 21D4FD106E8 - 3B F8 - cmp edi,eax 21D4FD106EA - 7C BC - jl 21D4FD106A8 21D4FD106EC - 45 33 FF - xor r15d,r15d 21D4FD106EF - EB 3D - jmp 21D4FD1072E 21D4FD106F1 - 48 8D AD 00000000 - lea rbp,[rbp+00000000] 21D4FD106F8 - 49 63 C7 - movsxd rax,r15d 21D4FD106FB - 41 39 44 24 18 - cmp [r12+18],eax 21D4FD10700 - 0F86 9E170000 - jbe 21D4FD11EA4 21D4FD10706 - 49 8D 44 C4 20 - lea rax,[r12+rax*8+20] 21D4FD1070B - 48 8B 00 - mov rax,[rax] 21D4FD1070E - 48 8B C8 - mov rcx,rax 21D4FD10711 - 33 D2 - xor edx,edx 21D4FD10713 - 48 83 EC 20 - sub rsp,20 { 32 } 21D4FD10717 - 83 38 00 - cmp dword ptr [rax],00 { 0 } 21D4FD1071A - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) } 21D4FD10724 - 41 FF D3 - call r11 21D4FD10727 - 48 83 C4 20 - add rsp,20 { 32 } 21D4FD1072B - 41 FF C7 - inc r15d 21D4FD1072E - 49 63 44 24 18 - movsxd rax,dword ptr [r12+18] 21D4FD10733 - 44 3B F8 - cmp r15d,eax 21D4FD10736 - 7C C0 - jl 21D4FD106F8 21D4FD10738 - 48 8B 85 38FFFFFF - mov rax,[rbp-000000C8] 21D4FD1073F - 48 63 40 18 - movsxd rax,dword ptr [rax+18] >> 21D4FD10743 - 41 89 86 74010000 - mov [r14+00000174],eax << ИНСТРУКЦИЯ 21D4FD1074A - 49 8B 46 30 - mov rax,[r14+30] 21D4FD1074E - 49 63 8E 74010000 - movsxd rcx,dword ptr [r14+00000174] 21D4FD10755 - 83 F9 01 - cmp ecx,01 { 1 } 21D4FD10758 - 40 0F9F C2 - setg dl 21D4FD1075C - 48 0FB6 D2 - movzx rdx,dl 21D4FD10760 - 48 8B C8 - mov rcx,rax 21D4FD10763 - 48 83 EC 20 - sub rsp,20 { 32 } Изменено 28 октября, 2022 пользователем NSlava Ссылка на комментарий Поделиться на другие сайты Поделиться
Partizan Опубликовано 28 октября, 2022 Поделиться Опубликовано 28 октября, 2022 Предметы хранятся как объекты. Ссылка на комментарий Поделиться на другие сайты Поделиться
NSlava Опубликовано 31 октября, 2022 Автор Поделиться Опубликовано 31 октября, 2022 (изменено) В 28.10.2022 в 15:32, Partizan сказал: Предметы хранятся как объекты. Это хорошее начало объяснения. Из этого вытекает, что нужно искать указатель на предмет. Можешь подсказать с чего начать? Изменено 31 октября, 2022 пользователем NSlava Дополнение Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 31 октября, 2022 Поделиться Опубликовано 31 октября, 2022 Если объект не создан, на него не будет указателя. Тут, скорее, надо выходить на конструктор класса, с помощью которого порождаются предметы (концепции ООП необходимы для понимания, о чем речь). А далее - дело техники - дергать конструктор с нужным набором параметров, и получать желаемое. Ссылка на комментарий Поделиться на другие сайты Поделиться
NSlava Опубликовано 31 октября, 2022 Автор Поделиться Опубликовано 31 октября, 2022 17 часов назад, Xipho сказал: Если объект не создан, на него не будет указателя. Тут, скорее, надо выходить на конструктор класса, с помощью которого порождаются предметы (концепции ООП необходимы для понимания, о чем речь). А далее - дело техники - дергать конструктор с нужным набором параметров, и получать желаемое. Хорошо. Спасибо ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения