Page 1 of 2

The Long Dark Table

Posted: Wed Dec 07, 2022 2:00 pm
by Sacracia
The Long Dark (EGS/Steam : v2.05)
EGS link: [Link]
Steam link:

Optinons (+21):
  • Max Stamina
  • Max Calories
  • No Thirst
  • No Freezing
  • No Fatigue
  • Max Health
  • No Sprained Ankle
  • No Sprained Wrist
  • No Pain
  • Ez Crafting
  • Instant Crafting
  • Camera FlyMode
  • No Hypotermia
  • Infinite Torch Duration
  • Max Gear HP
  • Max Skills
  • Zero Weight
  • Place Anywhere
  • Infinite Ammo
  • No Frostbite
  • Set Weather Condition

Re: The Long Dark Table

Posted: Thu Dec 08, 2022 12:03 am
by Mumbles1000
Have you been able to alter weight?

Re: The Long Dark Table

Posted: Sat Dec 10, 2022 5:58 am
by masterflux
not working

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 5:45 am
by fearlessusername
hi,
this table works great, all features are perfect, thank you.
I will want something from you;
an you add these features in the next version?

+No movement noise from item weights
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(WeightRTPC,GameAssembly.dll,80 3D 9B 0E B4 02 00) // should be unique
alloc(newmem,$1000,WeightRTPC)

label(code)
label(return)

newmem:
movss [rbp+50],xmm15
movss [rbp+54],xmm15
movss [rbp+58],xmm15
movss [rbp+5C],xmm15
code:
cmp byte ptr [GameAssembly.dll+467E520],00
jmp return

WeightRTPC:
jmp newmem
nop 2
return:
registersymbol(WeightRTPC)

[DISABLE]

WeightRTPC:
db 80 3D 9B 0E B4 02 00

unregistersymbol(WeightRTPC)
dealloc(newmem)
+Enable Console
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}
+Place Anywhere
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(placeanywhere,GameAssembly.dll,04 00 00 00 75 0D B0 01 48 8B 5C 24 50) // should be unique

placeanywhere+04:
nop 2
registersymbol(placeanywhere)

[DISABLE]

placeanywhere+04:
db 75 0D
unregistersymbol(placeanywhere)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15AA0B7

GameAssembly.dll+15AA089: 4C 89 44 24 38 - mov [rsp+38],r8
GameAssembly.dll+15AA08E: 4C 8D 44 24 28 - lea r8,[rsp+28]
GameAssembly.dll+15AA093: 8B 94 02 8C 80 06 00 - mov edx,[rdx+rax+0006808C]
GameAssembly.dll+15AA09A: E8 D1 51 B0 FE - call GameAssembly.DllCanUnloadNow+CE70
GameAssembly.dll+15AA09F: 90 - nop
GameAssembly.dll+15AA0A0: 33 C9 - xor ecx,ecx
GameAssembly.dll+15AA0A2: FF 15 A0 E0 DB 02 - call qword ptr [GameAssembly.dll+4368148]
GameAssembly.dll+15AA0A8: 90 - nop
GameAssembly.dll+15AA0A9: C6 05 30 22 0D 03 01 - mov byte ptr [GameAssembly.dll+467C2E0],01
GameAssembly.dll+15AA0B0: 83 BB 90 04 00 00 00 - cmp dword ptr [rbx+00000490],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+15AA0B7: 75 0D - jne GameAssembly.dll+15AA0C6
// ---------- DONE INJECTING ----------
GameAssembly.dll+15AA0B9: B0 01 - mov al,01
GameAssembly.dll+15AA0BB: 48 8B 5C 24 50 - mov rbx,[rsp+50]
GameAssembly.dll+15AA0C0: 48 83 C4 40 - add rsp,40
GameAssembly.dll+15AA0C4: 5F - pop rdi
GameAssembly.dll+15AA0C5: C3 - ret
GameAssembly.dll+15AA0C6: 48 8B 0D 2B F5 15 03 - mov rcx,[GameAssembly.dll+47095F8]
GameAssembly.dll+15AA0CD: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+15AA0D4: 74 0E - je GameAssembly.dll+15AA0E4
GameAssembly.dll+15AA0D6: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+15AA0DD: 75 05 - jne GameAssembly.dll+15AA0E4
}
+Item Pointer (for %100 item condition)
old version Code Below:
Spoiler
{
GearItem 참고
}


[ENABLE]

aobscanmodule(item,GameAssembly.dll,44 8B 70 48 33 D2) // should be unique
alloc(newmem,$1000,item)

label(code)
label(return)
label(itemPtr)

newmem:
mov r14,itemPtr
mov [r14],rsi
code:
mov r14d,[rax+48]
xor edx,edx
jmp return

itemPtr:
dq 0

item:
jmp newmem
nop
return:
registersymbol(item)
registersymbol(itemPtr)

[DISABLE]
item:
db 44 8B 70 48 33 D2
unregistersymbol(item)
unregistersymbol(itemPtr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+177754F

GameAssembly.dll+1777519: 48 8B C8 - mov rcx,rax
GameAssembly.dll+177751C: E8 FF 18 94 FE - call GameAssembly.dll+B8E20
GameAssembly.dll+1777521: 48 8B 05 E8 3E F6 02 - mov rax,[GameAssembly.dll+46DB410]
GameAssembly.dll+1777528: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
GameAssembly.dll+177752F: 48 8B 88 80 01 00 00 - mov rcx,[rax+00000180]
GameAssembly.dll+1777536: 48 85 C9 - test rcx,rcx
GameAssembly.dll+1777539: 0F 84 FA 06 00 00 - je GameAssembly.dll+1777C39
GameAssembly.dll+177753F: 48 8B 81 F0 04 00 00 - mov rax,[rcx+000004F0]
GameAssembly.dll+1777546: 48 85 C0 - test rax,rax
GameAssembly.dll+1777549: 0F 84 E4 06 00 00 - je GameAssembly.dll+1777C33
// ---------- INJECTING HERE ----------
GameAssembly.dll+177754F: 44 8B 70 48 - mov r14d,[rax+48]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1777553: 33 D2 - xor edx,edx
GameAssembly.dll+1777555: 48 8B CE - mov rcx,rsi
GameAssembly.dll+1777558: E8 43 0B 56 00 - call GearItem.GetItemWeightIgnoreClothingWornBonusKG
GameAssembly.dll+177755D: 0F 28 F0 - movaps xmm6,xmm0
GameAssembly.dll+1777560: 48 8B 0D 91 6A F5 02 - mov rcx,[GameAssembly.dll+46CDFF8]
GameAssembly.dll+1777567: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+177756E: 74 0E - je GameAssembly.dll+177757E
GameAssembly.dll+1777570: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+1777577: 75 05 - jne GameAssembly.dll+177757E
GameAssembly.dll+1777579: E8 A2 18 94 FE - call GameAssembly.dll+B8E20
}

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 1:07 pm
by beta99th
fearlessusername wrote:
Sun Dec 11, 2022 5:45 am
hi,
this table works great, all features are perfect, thank you.
I will want something from you;
an you add these features in the next version?

+No movement noise from item weights
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(WeightRTPC,GameAssembly.dll,80 3D 9B 0E B4 02 00) // should be unique
alloc(newmem,$1000,WeightRTPC)

label(code)
label(return)

newmem:
movss [rbp+50],xmm15
movss [rbp+54],xmm15
movss [rbp+58],xmm15
movss [rbp+5C],xmm15
code:
cmp byte ptr [GameAssembly.dll+467E520],00
jmp return

WeightRTPC:
jmp newmem
nop 2
return:
registersymbol(WeightRTPC)

[DISABLE]

WeightRTPC:
db 80 3D 9B 0E B4 02 00

unregistersymbol(WeightRTPC)
dealloc(newmem)
+Enable Console
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}
+Place Anywhere
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(placeanywhere,GameAssembly.dll,04 00 00 00 75 0D B0 01 48 8B 5C 24 50) // should be unique

placeanywhere+04:
nop 2
registersymbol(placeanywhere)

[DISABLE]

placeanywhere+04:
db 75 0D
unregistersymbol(placeanywhere)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15AA0B7

GameAssembly.dll+15AA089: 4C 89 44 24 38 - mov [rsp+38],r8
GameAssembly.dll+15AA08E: 4C 8D 44 24 28 - lea r8,[rsp+28]
GameAssembly.dll+15AA093: 8B 94 02 8C 80 06 00 - mov edx,[rdx+rax+0006808C]
GameAssembly.dll+15AA09A: E8 D1 51 B0 FE - call GameAssembly.DllCanUnloadNow+CE70
GameAssembly.dll+15AA09F: 90 - nop
GameAssembly.dll+15AA0A0: 33 C9 - xor ecx,ecx
GameAssembly.dll+15AA0A2: FF 15 A0 E0 DB 02 - call qword ptr [GameAssembly.dll+4368148]
GameAssembly.dll+15AA0A8: 90 - nop
GameAssembly.dll+15AA0A9: C6 05 30 22 0D 03 01 - mov byte ptr [GameAssembly.dll+467C2E0],01
GameAssembly.dll+15AA0B0: 83 BB 90 04 00 00 00 - cmp dword ptr [rbx+00000490],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+15AA0B7: 75 0D - jne GameAssembly.dll+15AA0C6
// ---------- DONE INJECTING ----------
GameAssembly.dll+15AA0B9: B0 01 - mov al,01
GameAssembly.dll+15AA0BB: 48 8B 5C 24 50 - mov rbx,[rsp+50]
GameAssembly.dll+15AA0C0: 48 83 C4 40 - add rsp,40
GameAssembly.dll+15AA0C4: 5F - pop rdi
GameAssembly.dll+15AA0C5: C3 - ret
GameAssembly.dll+15AA0C6: 48 8B 0D 2B F5 15 03 - mov rcx,[GameAssembly.dll+47095F8]
GameAssembly.dll+15AA0CD: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+15AA0D4: 74 0E - je GameAssembly.dll+15AA0E4
GameAssembly.dll+15AA0D6: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+15AA0DD: 75 05 - jne GameAssembly.dll+15AA0E4
}
+Item Pointer (for %100 item condition)
old version Code Below:
Spoiler
{
GearItem 참고
}


[ENABLE]

aobscanmodule(item,GameAssembly.dll,44 8B 70 48 33 D2) // should be unique
alloc(newmem,$1000,item)

label(code)
label(return)
label(itemPtr)

newmem:
mov r14,itemPtr
mov [r14],rsi
code:
mov r14d,[rax+48]
xor edx,edx
jmp return

itemPtr:
dq 0

item:
jmp newmem
nop
return:
registersymbol(item)
registersymbol(itemPtr)

[DISABLE]
item:
db 44 8B 70 48 33 D2
unregistersymbol(item)
unregistersymbol(itemPtr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+177754F

GameAssembly.dll+1777519: 48 8B C8 - mov rcx,rax
GameAssembly.dll+177751C: E8 FF 18 94 FE - call GameAssembly.dll+B8E20
GameAssembly.dll+1777521: 48 8B 05 E8 3E F6 02 - mov rax,[GameAssembly.dll+46DB410]
GameAssembly.dll+1777528: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
GameAssembly.dll+177752F: 48 8B 88 80 01 00 00 - mov rcx,[rax+00000180]
GameAssembly.dll+1777536: 48 85 C9 - test rcx,rcx
GameAssembly.dll+1777539: 0F 84 FA 06 00 00 - je GameAssembly.dll+1777C39
GameAssembly.dll+177753F: 48 8B 81 F0 04 00 00 - mov rax,[rcx+000004F0]
GameAssembly.dll+1777546: 48 85 C0 - test rax,rax
GameAssembly.dll+1777549: 0F 84 E4 06 00 00 - je GameAssembly.dll+1777C33
// ---------- INJECTING HERE ----------
GameAssembly.dll+177754F: 44 8B 70 48 - mov r14d,[rax+48]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1777553: 33 D2 - xor edx,edx
GameAssembly.dll+1777555: 48 8B CE - mov rcx,rsi
GameAssembly.dll+1777558: E8 43 0B 56 00 - call GearItem.GetItemWeightIgnoreClothingWornBonusKG
GameAssembly.dll+177755D: 0F 28 F0 - movaps xmm6,xmm0
GameAssembly.dll+1777560: 48 8B 0D 91 6A F5 02 - mov rcx,[GameAssembly.dll+46CDFF8]
GameAssembly.dll+1777567: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+177756E: 74 0E - je GameAssembly.dll+177757E
GameAssembly.dll+1777570: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+1777577: 75 05 - jne GameAssembly.dll+177757E
GameAssembly.dll+1777579: E8 A2 18 94 FE - call GameAssembly.dll+B8E20
}

Made for you. (except console)

+No movement noise from item weights
+Place Anywhere
+Item Pointer

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 3:03 pm
by NMss2
Can I put a request on +Enable Console please? Thanks.

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 3:31 pm
by Yolo987
Very good job, works well on the recent patch. But do you think there is someone who can add this option? It no longer works with the recent patch and I think it might be good for those who want to remove the "Frostbite" status

+No more frostbite
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.97 85101 S
Date : 2021-11-01
Author : sub1to

public class Frostbite : MonoBehaviour // TypeDefIndex: 8463
// Fields
public LocalizedString m_LocalizedDisplayName; // 0x18
public LocalizedString m_LocalizedDescription; // 0x20
public float m_TemperatureToBeginFrostbiteDamage; // 0x28
public float m_DamagePerHourBase; // 0x2C
public float m_DamagePerHourIncreasePerDegree; // 0x30
public float m_MaxDamagePerHour; // 0x34
public float m_DamageMultiplierInnerFrozenClothing; // 0x38
public float m_PilgrimDamageMultiplier; // 0x3C
public float m_VoyageurDamageMultiplier; // 0x40
public float m_StalkerDamageMultiplier; // 0x44
public float m_InterloperDamageMultiplier; // 0x48
public float m_TemperatureToBeginFrostbiteHeal; // 0x4C
public float m_HealPerHourBase; // 0x50
public float m_HealPerHourIncreasePerDegree; // 0x54
public float m_MaxHealPerHour; // 0x58
public Frostbite.BodyAreaFrostbiteHP[] m_BodyAreaFrostbiteMaxHPList; // 0x60
public float m_HPPercentThresholdToStartRisk; // 0x68
public float m_MaxPlayerHPReductionPerInstance; // 0x6C
[HeaderAttribute] // RVA: 0x1764B0 Offset: 0x1758B0 VA: 0x7FFB0BB464B0
public string m_FrostbiteVO; // 0x70
private List<int> m_LocationsWithActiveFrostbite; // 0x78
private List<int> m_LocationsWithFrostbiteRisk; // 0x80
private List<float> m_LocationsCurrentFrostbiteDamage; // 0x88
private bool m_StartHasBeenCalled; // 0x90
private bool m_SuppressFrostbite; // 0x91
private float[] m_MaxHPList; // 0x98
private static FrostbiteSaveDataProxy m_FrostbiteSaveDataProxy; // 0x0
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
label(returnhere)
label(code)
label(frostbite_update_hook)
label(frostbite_update_bytes)
registersymbol(frostbite_update_hook)
registersymbol(frostbite_update_bytes)

// class: Frostbite
// RVA: 0x104CD20 Offset: 0x104BD20 VA: 0x7FFB0CA1CD20
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 48 8b 0d ? ? ? ? 48 8b 81 ? ? ? ? 80 78 ? ? 0f 85 ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 48 8b 0d)

// class: Frostbite
// RVA: 0x104D9D0 Offset: 0x104C9D0 VA: 0x7FFB0CA1D9D0
// public void FrostbiteEnd() { }
aobScanModule(frostbite_end,GameAssembly.dll,4c 8b dc 57 48 83 ec ? 49 c7 43 ? ? ? ? ? 49 89 5b ? 49 89 73 ? 48 8b f9 33 f6 40 38 35 ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 49 89 73 ? 49 89 73 ? 49 89 73 ? 4d 8d 43 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 5f ? 48 85 db 0f 84 ? ? ? ? 44 8b 43 ? 45 85 c0 7e ? 45 33 c9 33 d2 48 8b 4b ? e8 ? ? ? ? 89 73 ? ff 43 ? 48 8b 9f)

newmem:
frostbite_update_bytes:
//push rbx
//sub rsp,40
readMem(hook, 6)
jmp returnhere

code:
lea rsp, [rsp-38]
mov [rsp+30], rcx
xor rdx, rdx
call frostbite_end
mov rcx, [rsp+30]
lea rsp, [rsp+38]
jmp frostbite_update_bytes

hook:
frostbite_update_hook:
jmp code
nop
returnhere:



[DISABLE]
frostbite_update_hook:
//40 53 48 83 EC 40
readMem(frostbite_update_bytes, 6)

unregistersymbol(frostbite_update_hook)
unregistersymbol(frostbite_update_bytes)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+104CD20

"GameAssembly.dll"+104CD0B: CC - int 3
"GameAssembly.dll"+104CD0C: E8 BF E3 02 FF - call GameAssembly.dll+7B0D0
"GameAssembly.dll"+104CD11: 48 8B C8 - mov rcx,rax
"GameAssembly.dll"+104CD14: 33 D2 - xor edx,edx
"GameAssembly.dll"+104CD16: E8 D5 D6 07 FF - call GameAssembly.dll+CA3F0
"GameAssembly.dll"+104CD1B: CC - int 3
"GameAssembly.dll"+104CD1C: CC - int 3
"GameAssembly.dll"+104CD1D: CC - int 3
"GameAssembly.dll"+104CD1E: CC - int 3
"GameAssembly.dll"+104CD1F: CC - int 3
// ---------- INJECTING HERE ----------
"GameAssembly.dll"+104CD20: 40 53 - push rbx
"GameAssembly.dll"+104CD22: 48 83 EC 40 - sub rsp,40
// ---------- DONE INJECTING ----------
"GameAssembly.dll"+104CD26: 48 C7 44 24 20 FE FF FF FF - mov qword ptr [rsp+20],FFFFFFFE
"GameAssembly.dll"+104CD2F: 48 8B D9 - mov rbx,rcx
"GameAssembly.dll"+104CD32: 80 3D 1E 09 40 03 00 - cmp byte ptr [GameAssembly.dll+444D657],00
"GameAssembly.dll"+104CD39: 75 50 - jne GameAssembly.dll+104CD8B
"GameAssembly.dll"+104CD3B: 48 8B 05 FE 8F 3F 03 - mov rax,[GameAssembly.dll+4445D40]
"GameAssembly.dll"+104CD42: 48 63 90 B8 00 00 00 - movsxd rdx,dword ptr [rax+000000B8]
"GameAssembly.dll"+104CD49: 48 8B 05 C8 8F 3F 03 - mov rax,[GameAssembly.dll+4445D18]
"GameAssembly.dll"+104CD50: 8B 8C 02 D0 B1 03 00 - mov ecx,[rdx+rax+0003B1D0]
"GameAssembly.dll"+104CD57: 45 33 C0 - xor r8d,r8d
"GameAssembly.dll"+104CD5A: 4C 89 44 24 28 - mov [rsp+28],r8
}

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 4:10 pm
by Brack
Hi Sacracia ;)

Your Table is good and thanks for great work!

I say you if is possible insert option :

- Reveal Large Map Radius (with use coal)
- Show Player Position (with arrow how in campaign mode)

Greetings. Thanks :D

Re: The Long Dark Table

Posted: Sun Dec 11, 2022 4:25 pm
by fearlessusername
beta99th wrote:
Sun Dec 11, 2022 1:07 pm
fearlessusername wrote:
Sun Dec 11, 2022 5:45 am
hi,
this table works great, all features are perfect, thank you.
I will want something from you;
an you add these features in the next version?

+No movement noise from item weights
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(WeightRTPC,GameAssembly.dll,80 3D 9B 0E B4 02 00) // should be unique
alloc(newmem,$1000,WeightRTPC)

label(code)
label(return)

newmem:
movss [rbp+50],xmm15
movss [rbp+54],xmm15
movss [rbp+58],xmm15
movss [rbp+5C],xmm15
code:
cmp byte ptr [GameAssembly.dll+467E520],00
jmp return

WeightRTPC:
jmp newmem
nop 2
return:
registersymbol(WeightRTPC)

[DISABLE]

WeightRTPC:
db 80 3D 9B 0E B4 02 00

unregistersymbol(WeightRTPC)
dealloc(newmem)
+Enable Console
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}
+Place Anywhere
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(placeanywhere,GameAssembly.dll,04 00 00 00 75 0D B0 01 48 8B 5C 24 50) // should be unique

placeanywhere+04:
nop 2
registersymbol(placeanywhere)

[DISABLE]

placeanywhere+04:
db 75 0D
unregistersymbol(placeanywhere)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15AA0B7

GameAssembly.dll+15AA089: 4C 89 44 24 38 - mov [rsp+38],r8
GameAssembly.dll+15AA08E: 4C 8D 44 24 28 - lea r8,[rsp+28]
GameAssembly.dll+15AA093: 8B 94 02 8C 80 06 00 - mov edx,[rdx+rax+0006808C]
GameAssembly.dll+15AA09A: E8 D1 51 B0 FE - call GameAssembly.DllCanUnloadNow+CE70
GameAssembly.dll+15AA09F: 90 - nop
GameAssembly.dll+15AA0A0: 33 C9 - xor ecx,ecx
GameAssembly.dll+15AA0A2: FF 15 A0 E0 DB 02 - call qword ptr [GameAssembly.dll+4368148]
GameAssembly.dll+15AA0A8: 90 - nop
GameAssembly.dll+15AA0A9: C6 05 30 22 0D 03 01 - mov byte ptr [GameAssembly.dll+467C2E0],01
GameAssembly.dll+15AA0B0: 83 BB 90 04 00 00 00 - cmp dword ptr [rbx+00000490],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+15AA0B7: 75 0D - jne GameAssembly.dll+15AA0C6
// ---------- DONE INJECTING ----------
GameAssembly.dll+15AA0B9: B0 01 - mov al,01
GameAssembly.dll+15AA0BB: 48 8B 5C 24 50 - mov rbx,[rsp+50]
GameAssembly.dll+15AA0C0: 48 83 C4 40 - add rsp,40
GameAssembly.dll+15AA0C4: 5F - pop rdi
GameAssembly.dll+15AA0C5: C3 - ret
GameAssembly.dll+15AA0C6: 48 8B 0D 2B F5 15 03 - mov rcx,[GameAssembly.dll+47095F8]
GameAssembly.dll+15AA0CD: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+15AA0D4: 74 0E - je GameAssembly.dll+15AA0E4
GameAssembly.dll+15AA0D6: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+15AA0DD: 75 05 - jne GameAssembly.dll+15AA0E4
}
+Item Pointer (for %100 item condition)
old version Code Below:
Spoiler
{
GearItem 참고
}


[ENABLE]

aobscanmodule(item,GameAssembly.dll,44 8B 70 48 33 D2) // should be unique
alloc(newmem,$1000,item)

label(code)
label(return)
label(itemPtr)

newmem:
mov r14,itemPtr
mov [r14],rsi
code:
mov r14d,[rax+48]
xor edx,edx
jmp return

itemPtr:
dq 0

item:
jmp newmem
nop
return:
registersymbol(item)
registersymbol(itemPtr)

[DISABLE]
item:
db 44 8B 70 48 33 D2
unregistersymbol(item)
unregistersymbol(itemPtr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+177754F

GameAssembly.dll+1777519: 48 8B C8 - mov rcx,rax
GameAssembly.dll+177751C: E8 FF 18 94 FE - call GameAssembly.dll+B8E20
GameAssembly.dll+1777521: 48 8B 05 E8 3E F6 02 - mov rax,[GameAssembly.dll+46DB410]
GameAssembly.dll+1777528: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
GameAssembly.dll+177752F: 48 8B 88 80 01 00 00 - mov rcx,[rax+00000180]
GameAssembly.dll+1777536: 48 85 C9 - test rcx,rcx
GameAssembly.dll+1777539: 0F 84 FA 06 00 00 - je GameAssembly.dll+1777C39
GameAssembly.dll+177753F: 48 8B 81 F0 04 00 00 - mov rax,[rcx+000004F0]
GameAssembly.dll+1777546: 48 85 C0 - test rax,rax
GameAssembly.dll+1777549: 0F 84 E4 06 00 00 - je GameAssembly.dll+1777C33
// ---------- INJECTING HERE ----------
GameAssembly.dll+177754F: 44 8B 70 48 - mov r14d,[rax+48]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1777553: 33 D2 - xor edx,edx
GameAssembly.dll+1777555: 48 8B CE - mov rcx,rsi
GameAssembly.dll+1777558: E8 43 0B 56 00 - call GearItem.GetItemWeightIgnoreClothingWornBonusKG
GameAssembly.dll+177755D: 0F 28 F0 - movaps xmm6,xmm0
GameAssembly.dll+1777560: 48 8B 0D 91 6A F5 02 - mov rcx,[GameAssembly.dll+46CDFF8]
GameAssembly.dll+1777567: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+177756E: 74 0E - je GameAssembly.dll+177757E
GameAssembly.dll+1777570: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+1777577: 75 05 - jne GameAssembly.dll+177757E
GameAssembly.dll+1777579: E8 A2 18 94 FE - call GameAssembly.dll+B8E20
}

Made for you. (except console)

+No movement noise from item weights
+Place Anywhere
+Item Pointer


wow, you are very fast, many thanks bro :)

Re: The Long Dark Table

Posted: Fri Dec 16, 2022 6:19 pm
by smukase
beta99th wrote:
Sun Dec 11, 2022 1:07 pm
fearlessusername wrote:
Sun Dec 11, 2022 5:45 am
hi,
this table works great, all features are perfect, thank you.
I will want something from you;
an you add these features in the next version?

+No movement noise from item weights
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(WeightRTPC,GameAssembly.dll,80 3D 9B 0E B4 02 00) // should be unique
alloc(newmem,$1000,WeightRTPC)

label(code)
label(return)

newmem:
movss [rbp+50],xmm15
movss [rbp+54],xmm15
movss [rbp+58],xmm15
movss [rbp+5C],xmm15
code:
cmp byte ptr [GameAssembly.dll+467E520],00
jmp return

WeightRTPC:
jmp newmem
nop 2
return:
registersymbol(WeightRTPC)

[DISABLE]

WeightRTPC:
db 80 3D 9B 0E B4 02 00

unregistersymbol(WeightRTPC)
dealloc(newmem)
+Enable Console
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}
+Place Anywhere
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(placeanywhere,GameAssembly.dll,04 00 00 00 75 0D B0 01 48 8B 5C 24 50) // should be unique

placeanywhere+04:
nop 2
registersymbol(placeanywhere)

[DISABLE]

placeanywhere+04:
db 75 0D
unregistersymbol(placeanywhere)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15AA0B7

GameAssembly.dll+15AA089: 4C 89 44 24 38 - mov [rsp+38],r8
GameAssembly.dll+15AA08E: 4C 8D 44 24 28 - lea r8,[rsp+28]
GameAssembly.dll+15AA093: 8B 94 02 8C 80 06 00 - mov edx,[rdx+rax+0006808C]
GameAssembly.dll+15AA09A: E8 D1 51 B0 FE - call GameAssembly.DllCanUnloadNow+CE70
GameAssembly.dll+15AA09F: 90 - nop
GameAssembly.dll+15AA0A0: 33 C9 - xor ecx,ecx
GameAssembly.dll+15AA0A2: FF 15 A0 E0 DB 02 - call qword ptr [GameAssembly.dll+4368148]
GameAssembly.dll+15AA0A8: 90 - nop
GameAssembly.dll+15AA0A9: C6 05 30 22 0D 03 01 - mov byte ptr [GameAssembly.dll+467C2E0],01
GameAssembly.dll+15AA0B0: 83 BB 90 04 00 00 00 - cmp dword ptr [rbx+00000490],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+15AA0B7: 75 0D - jne GameAssembly.dll+15AA0C6
// ---------- DONE INJECTING ----------
GameAssembly.dll+15AA0B9: B0 01 - mov al,01
GameAssembly.dll+15AA0BB: 48 8B 5C 24 50 - mov rbx,[rsp+50]
GameAssembly.dll+15AA0C0: 48 83 C4 40 - add rsp,40
GameAssembly.dll+15AA0C4: 5F - pop rdi
GameAssembly.dll+15AA0C5: C3 - ret
GameAssembly.dll+15AA0C6: 48 8B 0D 2B F5 15 03 - mov rcx,[GameAssembly.dll+47095F8]
GameAssembly.dll+15AA0CD: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+15AA0D4: 74 0E - je GameAssembly.dll+15AA0E4
GameAssembly.dll+15AA0D6: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+15AA0DD: 75 05 - jne GameAssembly.dll+15AA0E4
}
+Item Pointer (for %100 item condition)
old version Code Below:
Spoiler
{
GearItem 참고
}


[ENABLE]

aobscanmodule(item,GameAssembly.dll,44 8B 70 48 33 D2) // should be unique
alloc(newmem,$1000,item)

label(code)
label(return)
label(itemPtr)

newmem:
mov r14,itemPtr
mov [r14],rsi
code:
mov r14d,[rax+48]
xor edx,edx
jmp return

itemPtr:
dq 0

item:
jmp newmem
nop
return:
registersymbol(item)
registersymbol(itemPtr)

[DISABLE]
item:
db 44 8B 70 48 33 D2
unregistersymbol(item)
unregistersymbol(itemPtr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+177754F

GameAssembly.dll+1777519: 48 8B C8 - mov rcx,rax
GameAssembly.dll+177751C: E8 FF 18 94 FE - call GameAssembly.dll+B8E20
GameAssembly.dll+1777521: 48 8B 05 E8 3E F6 02 - mov rax,[GameAssembly.dll+46DB410]
GameAssembly.dll+1777528: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
GameAssembly.dll+177752F: 48 8B 88 80 01 00 00 - mov rcx,[rax+00000180]
GameAssembly.dll+1777536: 48 85 C9 - test rcx,rcx
GameAssembly.dll+1777539: 0F 84 FA 06 00 00 - je GameAssembly.dll+1777C39
GameAssembly.dll+177753F: 48 8B 81 F0 04 00 00 - mov rax,[rcx+000004F0]
GameAssembly.dll+1777546: 48 85 C0 - test rax,rax
GameAssembly.dll+1777549: 0F 84 E4 06 00 00 - je GameAssembly.dll+1777C33
// ---------- INJECTING HERE ----------
GameAssembly.dll+177754F: 44 8B 70 48 - mov r14d,[rax+48]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1777553: 33 D2 - xor edx,edx
GameAssembly.dll+1777555: 48 8B CE - mov rcx,rsi
GameAssembly.dll+1777558: E8 43 0B 56 00 - call GearItem.GetItemWeightIgnoreClothingWornBonusKG
GameAssembly.dll+177755D: 0F 28 F0 - movaps xmm6,xmm0
GameAssembly.dll+1777560: 48 8B 0D 91 6A F5 02 - mov rcx,[GameAssembly.dll+46CDFF8]
GameAssembly.dll+1777567: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+177756E: 74 0E - je GameAssembly.dll+177757E
GameAssembly.dll+1777570: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+1777577: 75 05 - jne GameAssembly.dll+177757E
GameAssembly.dll+1777579: E8 A2 18 94 FE - call GameAssembly.dll+B8E20
}

Made for you. (except console)

+No movement noise from item weights
+Place Anywhere
+Item Pointer
Thanks for this, however I think fearlessusername meant if you can add those options to your already existing table, not a new separate table. Also the reveal map and instant curing would be great. Either way ty for your work, yours is the only table working table atm. Just that it has so few options compared to others. But I get it, no need to have 3 different modders creating practically the exact same table.

Re: The Long Dark Table

Posted: Sat Dec 17, 2022 2:14 pm
by fearlessusername
smukase wrote:
Fri Dec 16, 2022 6:19 pm
beta99th wrote:
Sun Dec 11, 2022 1:07 pm
fearlessusername wrote:
Sun Dec 11, 2022 5:45 am
hi,
this table works great, all features are perfect, thank you.
I will want something from you;
an you add these features in the next version?

+No movement noise from item weights
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(WeightRTPC,GameAssembly.dll,80 3D 9B 0E B4 02 00) // should be unique
alloc(newmem,$1000,WeightRTPC)

label(code)
label(return)

newmem:
movss [rbp+50],xmm15
movss [rbp+54],xmm15
movss [rbp+58],xmm15
movss [rbp+5C],xmm15
code:
cmp byte ptr [GameAssembly.dll+467E520],00
jmp return

WeightRTPC:
jmp newmem
nop 2
return:
registersymbol(WeightRTPC)

[DISABLE]

WeightRTPC:
db 80 3D 9B 0E B4 02 00

unregistersymbol(WeightRTPC)
dealloc(newmem)
+Enable Console
old version Code below:
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}
+Place Anywhere
old version Code Below:
Spoiler
[ENABLE]

aobscanmodule(placeanywhere,GameAssembly.dll,04 00 00 00 75 0D B0 01 48 8B 5C 24 50) // should be unique

placeanywhere+04:
nop 2
registersymbol(placeanywhere)

[DISABLE]

placeanywhere+04:
db 75 0D
unregistersymbol(placeanywhere)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15AA0B7

GameAssembly.dll+15AA089: 4C 89 44 24 38 - mov [rsp+38],r8
GameAssembly.dll+15AA08E: 4C 8D 44 24 28 - lea r8,[rsp+28]
GameAssembly.dll+15AA093: 8B 94 02 8C 80 06 00 - mov edx,[rdx+rax+0006808C]
GameAssembly.dll+15AA09A: E8 D1 51 B0 FE - call GameAssembly.DllCanUnloadNow+CE70
GameAssembly.dll+15AA09F: 90 - nop
GameAssembly.dll+15AA0A0: 33 C9 - xor ecx,ecx
GameAssembly.dll+15AA0A2: FF 15 A0 E0 DB 02 - call qword ptr [GameAssembly.dll+4368148]
GameAssembly.dll+15AA0A8: 90 - nop
GameAssembly.dll+15AA0A9: C6 05 30 22 0D 03 01 - mov byte ptr [GameAssembly.dll+467C2E0],01
GameAssembly.dll+15AA0B0: 83 BB 90 04 00 00 00 - cmp dword ptr [rbx+00000490],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+15AA0B7: 75 0D - jne GameAssembly.dll+15AA0C6
// ---------- DONE INJECTING ----------
GameAssembly.dll+15AA0B9: B0 01 - mov al,01
GameAssembly.dll+15AA0BB: 48 8B 5C 24 50 - mov rbx,[rsp+50]
GameAssembly.dll+15AA0C0: 48 83 C4 40 - add rsp,40
GameAssembly.dll+15AA0C4: 5F - pop rdi
GameAssembly.dll+15AA0C5: C3 - ret
GameAssembly.dll+15AA0C6: 48 8B 0D 2B F5 15 03 - mov rcx,[GameAssembly.dll+47095F8]
GameAssembly.dll+15AA0CD: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+15AA0D4: 74 0E - je GameAssembly.dll+15AA0E4
GameAssembly.dll+15AA0D6: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+15AA0DD: 75 05 - jne GameAssembly.dll+15AA0E4
}
+Item Pointer (for %100 item condition)
old version Code Below:
Spoiler
{
GearItem 참고
}


[ENABLE]

aobscanmodule(item,GameAssembly.dll,44 8B 70 48 33 D2) // should be unique
alloc(newmem,$1000,item)

label(code)
label(return)
label(itemPtr)

newmem:
mov r14,itemPtr
mov [r14],rsi
code:
mov r14d,[rax+48]
xor edx,edx
jmp return

itemPtr:
dq 0

item:
jmp newmem
nop
return:
registersymbol(item)
registersymbol(itemPtr)

[DISABLE]
item:
db 44 8B 70 48 33 D2
unregistersymbol(item)
unregistersymbol(itemPtr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+177754F

GameAssembly.dll+1777519: 48 8B C8 - mov rcx,rax
GameAssembly.dll+177751C: E8 FF 18 94 FE - call GameAssembly.dll+B8E20
GameAssembly.dll+1777521: 48 8B 05 E8 3E F6 02 - mov rax,[GameAssembly.dll+46DB410]
GameAssembly.dll+1777528: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
GameAssembly.dll+177752F: 48 8B 88 80 01 00 00 - mov rcx,[rax+00000180]
GameAssembly.dll+1777536: 48 85 C9 - test rcx,rcx
GameAssembly.dll+1777539: 0F 84 FA 06 00 00 - je GameAssembly.dll+1777C39
GameAssembly.dll+177753F: 48 8B 81 F0 04 00 00 - mov rax,[rcx+000004F0]
GameAssembly.dll+1777546: 48 85 C0 - test rax,rax
GameAssembly.dll+1777549: 0F 84 E4 06 00 00 - je GameAssembly.dll+1777C33
// ---------- INJECTING HERE ----------
GameAssembly.dll+177754F: 44 8B 70 48 - mov r14d,[rax+48]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1777553: 33 D2 - xor edx,edx
GameAssembly.dll+1777555: 48 8B CE - mov rcx,rsi
GameAssembly.dll+1777558: E8 43 0B 56 00 - call GearItem.GetItemWeightIgnoreClothingWornBonusKG
GameAssembly.dll+177755D: 0F 28 F0 - movaps xmm6,xmm0
GameAssembly.dll+1777560: 48 8B 0D 91 6A F5 02 - mov rcx,[GameAssembly.dll+46CDFF8]
GameAssembly.dll+1777567: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+177756E: 74 0E - je GameAssembly.dll+177757E
GameAssembly.dll+1777570: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+1777577: 75 05 - jne GameAssembly.dll+177757E
GameAssembly.dll+1777579: E8 A2 18 94 FE - call GameAssembly.dll+B8E20
}

Made for you. (except console)

+No movement noise from item weights
+Place Anywhere
+Item Pointer
Thanks for this, however I think fearlessusername meant if you can add those options to your already existing table, not a new separate table. Also the reveal map and instant curing would be great. Either way ty for your work, yours is the only table working table atm. Just that it has so few options compared to others. But I get it, no need to have 3 different modders creating practically the exact same table.
hey bro don't worry, you can make a custom table for yourself. Just select the cheat "Right Click" and "Copy"
and switch to table where you want to combine all cheats, and again "Right Click" and "Paste" :)

Re: The Long Dark Table

Posted: Sun Dec 18, 2022 4:59 pm
by fearlessusername
Hi
Can you do the console trick?
Spoiler
{ Game : tld.exe
Version: 1.98 87574 S
Date : 2021-12-09
Author : sub1to

public sealed class String : IComparable, ICloneable, IConvertible, IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string> // TypeDefIndex: 289
// Fields
private int m_stringLength; // 0x10
private char m_firstChar; // 0x14
}

[ENABLE]
alloc(newmem,$ff,GameAssembly.dll)
alloc(string,$ff,GameAssembly.dll)
globalalloc(_uconsole_init,1,GameAssembly.dll)
label(returnhere)
label(code)
label(GameManager_Update_hook)
label(GameManager_Update_bytes)
registersymbol(GameManager_Update_hook)
registersymbol(GameManager_Update_bytes)

// class: GameManager
// RVA: 0x1607550 Offset: 0x1606150 VA: 0x7FFB68507550
// public void Update() { }
aobScanModule(hook,GameAssembly.dll,48 8b c4 55 57 41 56 48 8d 68 ? 48 81 ec ? ? ? ? 48 c7 45 ? ? ? ? ? 48 89 58 ? 48 89 70 ? 0f 29 70 ? 0f 29 78 ? 44 0f 29 40 ? 48 8b f1)

// class: Resources
// RVA: 0x2A0FFC0 Offset: 0x2A0EFC0 VA: 0x7FFB0E3DFFC0
// public static Object Load(string path) { }
aobScanModule(Resources_Load,GameAssembly.dll,40 57 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 89 5c 24 ? 48 8b f9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 1d ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 33 d2 48 8b cb e8 ? ? ? ? 48 8b d8 48 8b 05)

// class: Object
// RVA: 0x2844950 Offset: 0x2843950 VA: 0x7FFB0E214950
// public static Object Instantiate(Object original) { }
aobScanModule(Object_Instantiate,GameAssembly.dll,40 53 48 83 ec ? 48 c7 44 24 ? ? ? ? ? 48 8b d9 80 3d ? ? ? ? ? 75 ? 48 8b 05 ? ? ? ? 48 63 90 ? ? ? ? 48 8b 05 ? ? ? ? 8b 8c 02 ? ? ? ? 45 33 c0 4c 89 44 24 ? 4c 89 44 24 ? 4c 89 44 24 ? 4c 8d 44 24 ? 8b 94 02 ? ? ? ? e8 ? ? ? ? 90 33 c9 ff 15 ? ? ? ? 90 c6 05 ? ? ? ? ? 48 8b 0d ? ? ? ? f6 81 ? ? ? ? ? 74 ? 83 b9 ? ? ? ? ? 75 ? e8 ? ? ? ? 45 33 c0 48 8b 15 ? ? ? ? 48 8b cb e8 ? ? ? ? 48 8b 05)

string:
dq 00 // +00 ptr
dq 00 // +08 padding
dd 08 // +10 len
db 'u' 0 'C' 0 'o' 0 'n' 0 's' 0 'o' 0 'l' 0 'e' 0 0

newmem:
GameManager_Update_bytes:
readMem(hook, 5)
jmp returnhere

code:

mov al, [_uconsole_init]
test al, al
jnz GameManager_Update_bytes
mov byte ptr [_uconsole_init], 1

lea rsp, [rsp-28]
mov [rsp+20], rcx
lea rcx, [string]
call Resources_Load
mov rcx, rax
call Object_Instantiate
mov rcx, [rsp+20]
lea rsp, [rsp+28]
jmp GameManager_Update_bytes

hook:
GameManager_Update_hook:
jmp code
returnhere:



[DISABLE]
GameManager_Update_hook:
readMem(GameManager_Update_bytes, 5)

unregistersymbol(GameManager_Update_hook)
unregistersymbol(GameManager_Update_bytes)
dealloc(newmem)
dealloc(string)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E652C0

GameAssembly.dll+E652A6: CC - int 3
GameAssembly.dll+E652A7: E8 54 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652AC: CC - int 3
GameAssembly.dll+E652AD: E8 4E 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B2: CC - int 3
GameAssembly.dll+E652B3: E8 48 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652B8: CC - int 3
GameAssembly.dll+E652B9: E8 42 51 26 FF - call GameAssembly.dll+CA400
GameAssembly.dll+E652BE: CC - int 3
GameAssembly.dll+E652BF: CC - int 3
// ---------- INJECTING HERE ----------
GameAssembly.dll+E652C0: 48 8B C4 - mov rax,rsp
GameAssembly.dll+E652C3: 55 - push rbp
// ---------- DONE INJECTING ----------
GameAssembly.dll+E652C4: 57 - push rdi
GameAssembly.dll+E652C5: 41 56 - push r14
GameAssembly.dll+E652C7: 48 8D 68 D8 - lea rbp,[rax-28]
GameAssembly.dll+E652CB: 48 81 EC 10 01 00 00 - sub rsp,00000110
GameAssembly.dll+E652D2: 48 C7 45 C0 FE FF FF FF - mov qword ptr [rbp-40],FFFFFFFFFFFFFFFE
GameAssembly.dll+E652DA: 48 89 58 08 - mov [rax+08],rbx
GameAssembly.dll+E652DE: 48 89 70 10 - mov [rax+10],rsi
GameAssembly.dll+E652E2: 0F 29 70 D8 - movaps [rax-28],xmm6
GameAssembly.dll+E652E6: 0F 29 78 C8 - movaps [rax-38],xmm7
}

Re: The Long Dark Table

Posted: Tue Dec 20, 2022 4:30 pm
by Brack
Sacracia wrote:
Wed Dec 07, 2022 2:00 pm
The Long Dark (EGS/Steam : v2.05)
EGS link: [Link]
Steam link:

Optinons (+21):
  • Max Stamina
  • Max Calories
  • No Thirst
  • No Freezing
  • No Fatigue
  • Max Health
  • No Sprained Ankle
  • No Sprained Wrist
  • No Pain
  • Ez Crafting
  • Instant Crafting
  • Camera FlyMode
  • No Hypotermia
  • Infinite Torch Duration
  • Max Gear HP
  • Max Skills
  • Zero Weight
  • Place Anywhere
  • Infinite Ammo
  • No Frostbite
  • Set Weather Condition
First Download 2.05 is my ;) Thanks for Update :D

Re: The Long Dark Table

Posted: Wed Dec 21, 2022 7:01 pm
by thomm9923
Thank you

Re: The Long Dark Table

Posted: Fri Dec 23, 2022 12:44 am
by Zephyrusiac
fly doesn't work in 2.06