Game Version: 1.1.1.2 (CDX)
Script for Unlimited transmutation/crafting
[EDIT, 20190414]:
Modified script to optionally add global variable
--you can now set the number of items to add each time you craft/transmute, by default it adds 5
----to change the number click "Add Address Manually" and set address to "setQty"
----when you activate script you can set how many to add each time, it gives quick switch for different materials if you desire
Code: Select all
{ Game : Grim Dawn.exe
Version:
Date : 2019-04-08
Author : axyd
Unlimited Transmutations, Smith
Add 5 mats by default, use global var to change amount
}
[ENABLE]
aobscanmodule(transmute_scrap,Game.dll,08 89 81 7C 05 00 00) // should be unique
alloc(newmem,$1000)
//global variable, sets quantity to add
alloc(addQty,$64)
registersymbol(addQty)
label(setQty)
label(code)
label(return)
newmem:
cmp [addQty],0
jnz setQty
//adds 5 mats by default
add eax,5
setQty:
add eax,[addQty]
mov [ecx+0000057C],eax
jmp return
code:
mov [ecx+0000057C],eax
jmp return
transmute_scrap+01:
jmp newmem
nop
return:
registersymbol(transmute_scrap)
[DISABLE]
transmute_scrap+01:
db 89 81 7C 05 00 00
//delete global variable
unregistersymbol(addQty)
dealloc(addQty)
unregistersymbol(transmute_scrap)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Game.dll"+20A506
"Game.dll"+20A4F9: CC - int 3
"Game.dll"+20A4FA: CC - int 3
"Game.dll"+20A4FB: CC - int 3
"Game.dll"+20A4FC: CC - int 3
"Game.dll"+20A4FD: CC - int 3
"Game.dll"+20A4FE: CC - int 3
"Game.dll"+20A4FF: CC - int 3
"Game.dll"+20A500: 55 - push ebp
"Game.dll"+20A501: 8B EC - mov ebp,esp
"Game.dll"+20A503: 8B 45 08 - mov eax,[ebp+08]
// ---------- INJECTING HERE ----------
"Game.dll"+20A506: 89 81 7C 05 00 00 - mov [ecx+0000057C],eax
// ---------- DONE INJECTING ----------
"Game.dll"+20A50C: 89 81 5C 04 00 00 - mov [ecx+0000045C],eax
"Game.dll"+20A512: 5D - pop ebp
"Game.dll"+20A513: C2 04 00 - ret 0004
"Game.dll"+20A516: CC - int 3
"Game.dll"+20A517: CC - int 3
"Game.dll"+20A518: CC - int 3
"Game.dll"+20A519: CC - int 3
"Game.dll"+20A51A: CC - int 3
"Game.dll"+20A51B: CC - int 3
"Game.dll"+20A51C: CC - int 3
}
Code: Select all
{ Game : Grim Dawn.exe
Version:
Date : 2019-04-08
Author : axyd
Unlimited Transmutations, adds 5 each time
}
[ENABLE]
aobscanmodule(transmute_scrap,Game.dll,08 89 81 7C 05 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
add eax,5
mov [ecx+0000057C],eax
jmp return
code:
mov [ecx+0000057C],eax
jmp return
transmute_scrap+01:
jmp newmem
nop
return:
registersymbol(transmute_scrap)
[DISABLE]
transmute_scrap+01:
db 89 81 7C 05 00 00
unregistersymbol(transmute_scrap)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Game.dll"+20A506
"Game.dll"+20A4F9: CC - int 3
"Game.dll"+20A4FA: CC - int 3
"Game.dll"+20A4FB: CC - int 3
"Game.dll"+20A4FC: CC - int 3
"Game.dll"+20A4FD: CC - int 3
"Game.dll"+20A4FE: CC - int 3
"Game.dll"+20A4FF: CC - int 3
"Game.dll"+20A500: 55 - push ebp
"Game.dll"+20A501: 8B EC - mov ebp,esp
"Game.dll"+20A503: 8B 45 08 - mov eax,[ebp+08]
// ---------- INJECTING HERE ----------
"Game.dll"+20A506: 89 81 7C 05 00 00 - mov [ecx+0000057C],eax
// ---------- DONE INJECTING ----------
"Game.dll"+20A50C: 89 81 5C 04 00 00 - mov [ecx+0000045C],eax
"Game.dll"+20A512: 5D - pop ebp
"Game.dll"+20A513: C2 04 00 - ret 0004
"Game.dll"+20A516: CC - int 3
"Game.dll"+20A517: CC - int 3
"Game.dll"+20A518: CC - int 3
"Game.dll"+20A519: CC - int 3
"Game.dll"+20A51A: CC - int 3
"Game.dll"+20A51B: CC - int 3
"Game.dll"+20A51C: CC - int 3
}