DieVis Опубликовано 27 февраля, 2022 Поделиться Опубликовано 27 февраля, 2022 Steam Version: (ID Build 382752) Смотрел в свойствах игры. Версия игры не понятно какая, не показывает. Есть и рабочие таблицы в интернете, но таких скриптов там нет. Делал для себя (после покупки игры), чтобы достижения открывались сами собой, а не всё сразу. Items 99 - Всех предметов по 99 (стоит купить 1). Спойлер { Game : SteamWorldDig.exe Version: Steam (ID Build 382752), версия игры не понятно какая, не показывает. Date : 2022-01-29 Author : DieVis } [ENABLE] aobscanmodule(Item,SteamWorldDig.exe,FF 48 1C 75 0A) alloc(newmem,$1000) label(code) label(return) registersymbol(Item) newmem: mov [eax+1C], 64 //99 code: dec [eax+1C] jne SteamWorldDig.exe+EBC0A jmp return Item: jmp newmem return: [DISABLE] Item: db FF 48 1C 75 0A unregistersymbol(Item) dealloc(newmem) {// ORIGINAL CODE - INJECTION POINT: "SteamWorldDig.exe"+EBBFB "SteamWorldDig.exe"+EBBE2: 51 - push ecx "SteamWorldDig.exe"+EBBE3: 52 - push edx "SteamWorldDig.exe"+EBBE4: E8 C7 26 F2 FF - call SteamWorldDig.exe+E2B0 "SteamWorldDig.exe"+EBBE9: 83 C4 08 - add esp,08 "SteamWorldDig.exe"+EBBEC: 50 - push eax "SteamWorldDig.exe"+EBBED: 8D 45 FC - lea eax,[ebp-04] "SteamWorldDig.exe"+EBBF0: 50 - push eax "SteamWorldDig.exe"+EBBF1: 8B CB - mov ecx,ebx "SteamWorldDig.exe"+EBBF3: E8 C8 2A F2 FF - call SteamWorldDig.exe+E6C0 "SteamWorldDig.exe"+EBBF8: 8B 45 FC - mov eax,[ebp-04] // ---------- INJECTING HERE ---------- "SteamWorldDig.exe"+EBBFB: FF 48 1C - dec [eax+1C] "SteamWorldDig.exe"+EBBFE: 75 0A - jne SteamWorldDig.exe+EBC0A // ---------- DONE INJECTING ---------- "SteamWorldDig.exe"+EBC00: 50 - push eax "SteamWorldDig.exe"+EBC01: 8D 4D FC - lea ecx,[ebp-04] "SteamWorldDig.exe"+EBC04: 51 - push ecx "SteamWorldDig.exe"+EBC05: E8 56 05 00 00 - call SteamWorldDig.exe+EC160 "SteamWorldDig.exe"+EBC0A: 5B - pop ebx "SteamWorldDig.exe"+EBC0B: 8B E5 - mov esp,ebp "SteamWorldDig.exe"+EBC0D: 5D - pop ebp "SteamWorldDig.exe"+EBC0E: C3 - ret "SteamWorldDig.exe"+EBC0F: CC - int 3 "SteamWorldDig.exe"+EBC10: 55 - push ebp} ItemMinNumber - На каждом этапе свои адреса с количеством размещённых предметов\объектов. Будь то Лестницы (одно кол-во), Фонари (второе кол-во), Порталы (третье кол-во). И при достижении максимума, больше ставить не позволяет и либо копать дальше, либо самоуничтожение. Поэтому скрипт позволит размещать бесконечное кол-во объектов (Динамит сюда не входит, т.к. это улучшение). Спойлер { Game : SteamWorldDig.exe Version: Steam (ID Build 382752), версия игры не понятно какая, не показывает. Date : 2022-01-30 Author : DieVis } [ENABLE] aobscanmodule(ItemMinNumber,SteamWorldDig.exe,FF 46 20 80 78 20 00) alloc(newmem,$1000) label(code) label(return) registersymbol(ItemMinNumber) //На каждом этапе свои адреса с количеством размещённых предметов\объектов. //А их оказывается немного! newmem: //Items Max Number mov [esi+20], 0 //Всегда равно 0 cmp byte ptr [eax+20],00 code: inc [esi+20] cmp byte ptr [eax+20],00 jmp return ItemMinNumber: jmp newmem nop 2 return: [DISABLE] ItemMinNumber: db FF 46 20 80 78 20 00 unregistersymbol(ItemMinNumber) dealloc(newmem) {// ORIGINAL CODE - INJECTION POINT: "SteamWorldDig.exe"+3E07E "SteamWorldDig.exe"+3E054: 81 C1 B4 00 00 00 - add ecx,000000B4 "SteamWorldDig.exe"+3E05A: 8D 97 30 01 00 00 - lea edx,[edi+00000130] "SteamWorldDig.exe"+3E060: E8 1B 4F 01 00 - call SteamWorldDig.exe+52F80 "SteamWorldDig.exe"+3E065: 8B F0 - mov esi,eax "SteamWorldDig.exe"+3E067: 83 7E 1C 00 - cmp dword ptr [esi+1C],00 "SteamWorldDig.exe"+3E06B: 75 0E - jne SteamWorldDig.exe+3E07B "SteamWorldDig.exe"+3E06D: 8D 87 30 01 00 00 - lea eax,[edi+00000130] "SteamWorldDig.exe"+3E073: E8 18 42 01 00 - call SteamWorldDig.exe+52290 "SteamWorldDig.exe"+3E078: 89 46 1C - mov [esi+1C],eax "SteamWorldDig.exe"+3E07B: 8B 46 1C - mov eax,[esi+1C] // ---------- INJECTING HERE ---------- "SteamWorldDig.exe"+3E07E: FF 46 20 - inc [esi+20] "SteamWorldDig.exe"+3E081: 80 78 20 00 - cmp byte ptr [eax+20],00 // ---------- DONE INJECTING ---------- "SteamWorldDig.exe"+3E085: 74 5A - je SteamWorldDig.exe+3E0E1 "SteamWorldDig.exe"+3E087: 8D 4D FC - lea ecx,[ebp-04] "SteamWorldDig.exe"+3E08A: 8D 7E 24 - lea edi,[esi+24] "SteamWorldDig.exe"+3E08D: 51 - push ecx "SteamWorldDig.exe"+3E08E: 8B CF - mov ecx,edi "SteamWorldDig.exe"+3E090: E8 AB 31 01 00 - call SteamWorldDig.exe+51240 "SteamWorldDig.exe"+3E095: 8B 56 1C - mov edx,[esi+1C] "SteamWorldDig.exe"+3E098: 8B 46 34 - mov eax,[esi+34] "SteamWorldDig.exe"+3E09B: 3B 42 1C - cmp eax,[edx+1C] "SteamWorldDig.exe"+3E09E: 76 41 - jna SteamWorldDig.exe+3E0E1} Inf Jump - Бесконечный прыжок. Скрипт начинает работать при взятии улучшения Электро-прыжок (который находится на Этапе 3. Мир Роботов, Пещера 2) Спойлер { Game : SteamWorldDig.exe Version: Steam (ID Build 382752), версия игры не понятно какая, не показывает. Date : 2022-01-30 Author : DieVis } [ENABLE] aobscanmodule(FlyJump,SteamWorldDig.exe,FF 83 60 01 00 00) alloc(newmem,$1000) label(code) label(return) registersymbol(FlyJump) newmem: //Можно улучшить скрипт, но мне игра надоела. mov [ebx+00000160], 0 //Кол-во сделанных прыжков code: inc [ebx+00000160] jmp return FlyJump: jmp newmem nop return: [DISABLE] FlyJump: db FF 83 60 01 00 00 unregistersymbol(FlyJump) dealloc(newmem) {// ORIGINAL CODE - INJECTION POINT: "SteamWorldDig.exe"+46369 "SteamWorldDig.exe"+4633C: D9 05 80 BF B2 00 - fld dword ptr [SteamWorldDig.exe+25BF80] "SteamWorldDig.exe"+46342: 8D 4D F4 - lea ecx,[ebp-0C] "SteamWorldDig.exe"+46345: 8D 93 88 00 00 00 - lea edx,[ebx+00000088] "SteamWorldDig.exe"+4634B: D9 5D F4 - fstp dword ptr [ebp-0C] "SteamWorldDig.exe"+4634E: E8 AD ED FB FF - call SteamWorldDig.exe+5100 "SteamWorldDig.exe"+46353: D9 9B 88 00 00 00 - fstp dword ptr [ebx+00000088] "SteamWorldDig.exe"+46359: 8B FB - mov edi,ebx "SteamWorldDig.exe"+4635B: E8 30 FE FE FF - call SteamWorldDig.exe+36190 "SteamWorldDig.exe"+46360: D9 5D EC - fstp dword ptr [ebp-14] "SteamWorldDig.exe"+46363: D9 83 50 01 00 00 - fld dword ptr [ebx+00000150] // ---------- INJECTING HERE ---------- "SteamWorldDig.exe"+46369: FF 83 60 01 00 00 - inc [ebx+00000160] // ---------- DONE INJECTING ---------- "SteamWorldDig.exe"+4636F: DC 0D 78 BF B2 00 - fmul qword ptr [SteamWorldDig.exe+25BF78] "SteamWorldDig.exe"+46375: D9 5D F4 - fstp dword ptr [ebp-0C] "SteamWorldDig.exe"+46378: D9 45 EC - fld dword ptr [ebp-14] "SteamWorldDig.exe"+4637B: D9 C0 - fld st(0) "SteamWorldDig.exe"+4637D: D8 4D CC - fmul dword ptr [ebp-34] "SteamWorldDig.exe"+46380: D9 5D E8 - fstp dword ptr [ebp-18] "SteamWorldDig.exe"+46383: D8 4D D0 - fmul dword ptr [ebp-30] "SteamWorldDig.exe"+46386: D9 5D EC - fstp dword ptr [ebp-14] "SteamWorldDig.exe"+46389: D9 45 E8 - fld dword ptr [ebp-18] "SteamWorldDig.exe"+4638C: D9 45 E4 - fld dword ptr [ebp-1C]} Чуть позже, в этом году, ещё 1 скрипт добавлю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти