0
"enable"
FF0000
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
{$lua}
LaunchMonoDataCollector()
{$asm}
label(pHeroMerchant)
registersymbol(pHeroMerchant)
alloc(newmem,2048,HeroMerchant:Update+5)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov rsi,pHeroMerchant
mov [rsi],rcx
originalcode:
push rdi
push r13
sub rsp,48
exit:
jmp returnhere
///
pHeroMerchant:
///
HeroMerchant:Update+5:
jmp newmem
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
HeroMerchant:Update+5:
db 57 41 55 48 83 EC 48
//Alt: push rdi
//Alt: push r13
//Alt: sub rsp,48
unregistersymbol(pHeroMerchant)
17
"god mode"
FF0000
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,HeroMerchant:DealDamageToPlayer)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
xorps xmm0,xmm0
xorps xmm1,xmm1
originalcode:
push rbp
mov rbp,rsp
push rdi
exit:
jmp returnhere
///
HeroMerchant:DealDamageToPlayer:
jmp newmem
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
HeroMerchant:DealDamageToPlayer:
db 55 48 8B EC 57
//Alt: push rbp
//Alt: mov rbp,rsp
//Alt: push rdi
18
"undead"
FF0000
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanregion(heroHealtCalOnDamage,HeroMerchant:DealDamageToPlayer+d00,HeroMerchant:DealDamageToPlayer+1847,F3 0F 10 ** ** ** ** ** F3 0F 5A C9 F2 0F 5C C1 48 8B ** 48)
registersymbol(heroHealtCalOnDamage)
alloc(newmem,2048,heroHealtCalOnDamage+10) //HeroMerchant:DealDamageToPlayer+fdd)
label(returnhere)
label(originalcode_undead)
registersymbol(originalcode_undead)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov rcx,dqMinHealth
comisd xmm0,[rcx]
jae @f
movsd xmm0,[rcx]
originalcode_undead:
readmem(heroHealtCalOnDamage+10,10)
//mov rcx,rbp
//add rcx,FFFFFCC0
exit:
jmp returnhere
///
dqMinHealth:
dq (double)1
///
heroHealtCalOnDamage+10: //HeroMerchant:DealDamageToPlayer+fdd:
jmp newmem
nop
nop
nop
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
heroHealtCalOnDamage+10: //HeroMerchant:DealDamageToPlayer+fdd:
readmem(originalcode_undead,10)
//db 48 8B CD 48 81 C1 C0 FC FF FF
//Alt: mov rcx,rbp
//Alt: add rcx,FFFFFCC0
unregistersymbol(originalcode_undead)
20
""
1
1
"[HeroMerchant]"
Array of byte
0
pHeroMerchant
0
2
"currentMode"
4 Bytes
+a8
3
"canUseEmblem"
Byte
+ac
4
"canUseMirror"
Byte
+ad
5
"canUsePendant"
Byte
+ae
6
"_isGodModeEnabled"
Byte
+af
7
"_currentDungeonLevel"
4 Bytes
+b0
8
"_lastPendantPosition"
1
Array of byte
0
+b4
14
""
4 Bytes
+0
15
""
4 Bytes
+4
16
""
4 Bytes
+8
9
"_lastDungeonCulture"
4 Bytes
+c0
10
"isInCombat"
Byte
+c4
11
"timeToExitCombat"
Float
+c8
12
"previousLayerToGodMode"
4 Bytes
+cc
13
"_flying"
Byte
+d0
26
"Items Stack to 999"
Auto Assembler Script
{ Game : Moonlighter.exe
Version:
Date : 2018-05-29
Author : kh
This script does blah blah blah
}
[ENABLE]
aobscan(_Stack,48 63 40 44 48 8D 65 E0) // should be unique
alloc(newmem,$1000,3B7DF32D)
label(code)
label(return)
newmem:
code:
mov [rax+44],#999
movsxd rax,dword ptr [rax+44]
lea rsp,[rbp-20]
jmp return
_Stack:
jmp newmem
nop
nop
nop
return:
registersymbol(_Stack)
[DISABLE]
_Stack:
db 48 63 40 44 48 8D 65 E0
unregistersymbol(_Stack)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 3B7DF32D
""+3B7DF310: 41 FF D3 - call r11
""+3B7DF313: 48 83 C4 20 - add rsp,20
""+3B7DF317: 85 C0 - test eax,eax
""+3B7DF319: 74 0E - je ItemStack:get_MaxStack+a9
""+3B7DF31B: 48 63 47 30 - movsxd rax,dword ptr [rdi+30]
""+3B7DF31F: 85 C0 - test eax,eax
""+3B7DF321: 7E 06 - jle ItemStack:get_MaxStack+a9
""+3B7DF323: 48 63 47 30 - movsxd rax,dword ptr [rdi+30]
""+3B7DF327: EB 08 - jmp ItemStack:get_MaxStack+b1
""+3B7DF329: 48 8B 46 18 - mov rax,[rsi+18]
// ---------- INJECTING HERE ----------
""+3B7DF32D: 48 63 40 44 - movsxd rax,dword ptr [rax+44]
""+3B7DF331: 48 8D 65 E0 - lea rsp,[rbp-20]
// ---------- DONE INJECTING ----------
""+3B7DF335: 41 5F - pop r15
""+3B7DF337: 41 5E - pop r14
""+3B7DF339: 5F - pop rdi
""+3B7DF33A: 5E - pop rsi
""+3B7DF33B: C9 - leave
""+3B7DF33C: C3 - ret
""+3B7DF33D: 00 00 - add [rax],al
""+3B7DF33F: 00 00 - add [rax],al
""+3B7DF341: 00 00 - add [rax],al
""+3B7DF343: 00 BD 00 00 00 CC - add [rbp-34000000],bh
}
28
"Set Stack to 100"
Auto Assembler Script
{ Game : Moonlighter.exe
Version:
Date : 2018-05-29
Author : kh
This script does blah blah blah
}
[ENABLE]
aobscan(_SetStack,48 63 87 A0 00 00 00 48 8B F1) // should be unique
alloc(newmem,$1000,1EE6A77C)
label(code)
label(return)
label(skip)
newmem:
code:
cmp [rdi+a0],0
je skip
mov [rdi+a0],#100
skip:
movsxd rax,dword ptr [rdi+000000A0]
jmp return
_SetStack:
jmp newmem
nop
nop
return:
registersymbol(_SetStack)
[DISABLE]
_SetStack:
db 48 63 87 A0 00 00 00
unregistersymbol(_SetStack)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 1EE6A77C
""+1EE6A75C: B0 14 - mov al,14
""+1EE6A75E: 03 0D 55 48 8B EC - add ecx,[0B71EFB9]
""+1EE6A764: 56 - push rsi
""+1EE6A765: 57 - push rdi
""+1EE6A766: 41 57 - push r15
""+1EE6A768: 48 83 EC 08 - sub rsp,08
""+1EE6A76C: 48 8B F9 - mov rdi,rcx
""+1EE6A76F: 48 8B F2 - mov rsi,rdx
""+1EE6A772: 89 B7 A0 00 00 00 - mov [rdi+000000A0],esi
""+1EE6A778: 48 8B 4F 28 - mov rcx,[rdi+28]
// ---------- INJECTING HERE ----------
""+1EE6A77C: 48 63 87 A0 00 00 00 - movsxd rax,dword ptr [rdi+000000A0]
// ---------- DONE INJECTING ----------
""+1EE6A783: 48 8B F1 - mov rsi,rcx
""+1EE6A786: 83 F8 01 - cmp eax,01
""+1EE6A789: 7E 2F - jle 1EE6A7BA
""+1EE6A78B: 48 85 FF - test rdi,rdi
""+1EE6A78E: 0F 84 50 00 00 00 - je 1EE6A7E4
""+1EE6A794: 48 8D 8F A0 00 00 00 - lea rcx,[rdi+000000A0]
""+1EE6A79B: BA 20 3C C3 25 - mov edx,25C33C20
""+1EE6A7A0: 48 83 EC 20 - sub rsp,20
""+1EE6A7A4: 49 BB 30 A8 E6 1E 00 00 00 00 - mov r11,000000001EE6A830
""+1EE6A7AE: 41 FF D3 - call r11
}
https://fearlessrevolution.com/threads/moonlighter-2.7114/