Перейти к содержанию

Steam World Dig 1


Рекомендуемые сообщения

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 скрипт добавлю.

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.