Code: Select all
[ENABLE]
aobscanmodule(IsFreePlayEnabled,LEGOSTARWARSSKYWALKERSAGA_DX11.exe,40 3A B3 98 00 00 00) // should be unique
alloc(newmem,$1000,IsFreePlayEnabled)
aobscanmodule(GetFreePlayClassAllowed,LEGOSTARWARSSKYWALKERSAGA_DX11.exe,E8 23 04 7E FF) // should be unique
aobscanmodule(GetFreePlayShowClasses,LEGOSTARWARSSKYWALKERSAGA_DX11.exe,80 BF 60 01 00 00 00 75 0E) // should be unique
label(NewIsFreePlayEnabled)
label(IsFreePlayEnabledReturn)
label(NewGetFreePlayClassAllowed)
label(GetFreePlayClassAllowedReturn)
label(NewGetFreePlayShowClasses)
label(GetFreePlayShowClassesReturn)
newmem:
//make sure free play is always enabled
NewIsFreePlayEnabled:
mov sil, 1
cmp sil,[rbx+00000098]
jmp IsFreePlayEnabledReturn
//make sure the character select shows the full list
NewGetFreePlayShowClasses:
cmp byte ptr [rdi+00000160],00
jne GetFreePlayShowClassesReturn
mov byte ptr [rdi+00000160],01
cmp byte ptr [rdi+00000160],00
jmp GetFreePlayShowClassesReturn
//make sure all classes may be selected at all times
NewGetFreePlayClassAllowed:
mov eax, 1
jmp GetFreePlayClassAllowedReturn
//replace game code with jumps
//is free play enabled, LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986507
IsFreePlayEnabled:
jmp NewIsFreePlayEnabled
nop 2
IsFreePlayEnabledReturn:
//get free play show classes, LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12AC
GetFreePlayShowClasses:
jmp NewGetFreePlayShowClasses
nop 2
GetFreePlayShowClassesReturn:
//get free play class allowed, LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC149D
GetFreePlayClassAllowed:
jmp NewGetFreePlayClassAllowed
GetFreePlayClassAllowedReturn:
registersymbol(IsFreePlayEnabled)
registersymbol(GetFreePlayShowClasses)
registersymbol(GetFreePlayClassAllowed)
[DISABLE]
IsFreePlayEnabled:
db 40 3A B3 98 00 00 00
GetFreePlayClassAllowed:
db E8 23 04 7E FF
GetFreePlayShowClasses:
db 80 BF 60 01 00 00 00
unregistersymbol(IsFreePlayEnabled)
unregistersymbol(GetFreePlayClassAllowed)
unregistersymbol(GetFreePlayShowClasses)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986507
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864E6: 48 8B CF - mov rcx,rdi
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864E9: FF 50 70 - call qword ptr [rax+70]
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864EC: 84 C0 - test al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864EE: 74 0D - je LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864FD
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864F0: 33 D2 - xor edx,edx
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864F2: 48 8B CF - mov rcx,rdi
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864F5: E8 D6 22 FB 00 - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+29387D0
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864FA: 0F B6 F0 - movzx esi,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+19864FD: 48 8D 4C 24 28 - lea rcx,[rsp+28]
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986502: E8 59 1F 40 01 - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+2D88460
// ---------- INJECTING HERE ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986507: 40 3A B3 98 00 00 00 - cmp sil,[rbx+00000098]
// ---------- DONE INJECTING ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+198650E: 75 09 - jne LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986519
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986510: 80 BB 99 00 00 00 00 - cmp byte ptr [rbx+00000099],00
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986517: 75 19 - jne LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986532
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986519: 44 0F B6 C6 - movzx r8d,sil
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+198651D: 41 80 F0 01 - xor r8l,01
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986521: B2 01 - mov dl,01
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986523: 48 8B CB - mov rcx,rbx
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986526: E8 75 18 00 00 - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1987DA0
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+198652B: 40 88 B3 98 00 00 00 - mov [rbx+00000098],sil
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+1986532: 48 8D 4C 24 28 - lea rcx,[rsp+28]
}
{
// ORIGINAL CODE - INJECTION POINT: LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12AC
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A1289: 42 80 7C 1A 5E 00 - cmp byte ptr [rdx+r11+5E],00
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A128F: 74 2E - je LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12BF
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A1291: 44 8D 50 01 - lea r10d,[rax+01]
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A1295: 41 8B CA - mov ecx,r10d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A1298: 41 8B C2 - mov eax,r10d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A129B: 49 3B C8 - cmp rcx,r8
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A129E: 72 E0 - jb LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A1280
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12A0: C6 44 24 50 00 - mov byte ptr [rsp+50],00
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12A5: 32 C0 - xor al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12A7: 44 8B 54 24 50 - mov r10d,[rsp+50]
// ---------- INJECTING HERE ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12AC: 80 BF 60 01 00 00 00 - cmp byte ptr [rdi+00000160],00
// ---------- DONE INJECTING ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12B3: 75 0E - jne LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C3
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12B5: 84 C0 - test al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12B7: 74 0A - je LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C3
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12B9: 44 89 56 40 - mov [rsi+40],r10d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12BD: EB 08 - jmp LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C7
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12BF: B0 01 - mov al,01
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C1: EB E9 - jmp LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12AC
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C3: 44 89 46 40 - mov [rsi+40],r8d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12C7: 48 8B C5 - mov rax,rbp
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A12CA: 48 89 7B 08 - mov [rbx+08],rdi
}
{
// ORIGINAL CODE - INJECTION POINT: LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1498
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1470: 49 8B CD - mov rcx,r13
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1473: E8 38 04 7E FF - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A18B0
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1478: 84 C0 - test al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC147A: 0F 85 76 02 00 00 - jne LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC16F6
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1480: 49 8B CD - mov rcx,r13
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1483: E8 58 04 7E FF - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A18E0
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1488: 84 C0 - test al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC148A: 0F 85 66 02 00 00 - jne LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC16F6
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1490: 49 8B CD - mov rcx,r13
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1493: C6 44 24 40 01 - mov byte ptr [rsp+40],01
// ---------- INJECTING HERE ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC1498: E8 23 04 7E FF - call LEGOSTARWARSSKYWALKERSAGA_DX11.exe+3A18C0
// ---------- DONE INJECTING ----------
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC149D: 84 C0 - test al,al
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC149F: 74 10 - je LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14B1
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14A1: 80 7D 09 00 - cmp byte ptr [rbp+09],00
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14A5: 74 0A - je LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14B1
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14A7: 41 8B F6 - mov esi,r14d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14AA: 44 89 74 24 44 - mov [rsp+44],r14d
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14AF: EB 09 - jmp LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14BA
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14B1: BE 01 00 00 00 - mov esi,00000001
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14B6: 89 74 24 44 - mov [rsp+44],esi
LEGOSTARWARSSKYWALKERSAGA_DX11.exe+BC14BA: 8B 83 C4 00 00 00 - mov eax,[rbx+000000C4]
}