The Long Dark Table

Upload your cheat tables here (No requests)
Sacracia
Novice Cheater
Novice Cheater
Posts: 21
Joined: Tue Nov 08, 2022 7:40 pm
Reputation: 38

The Long Dark Table

Post 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


How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1
Attachments
tld.CT
v2.05
(703.63 KiB) Downloaded 5007 times
tld.CT
v2.04 (story mode + survival)
(694.1 KiB) Downloaded 2421 times
Last edited by Sacracia on Tue Dec 20, 2022 4:19 pm, edited 5 times in total.

Mumbles1000
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Dec 08, 2022 12:03 am
Reputation: 0

Re: The Long Dark Table

Post by Mumbles1000 »

Have you been able to alter weight?

masterflux
What is cheating?
What is cheating?
Posts: 1
Joined: Tue Jul 05, 2022 5:54 pm
Reputation: 0

Re: The Long Dark Table

Post by masterflux »

not working

fearlessusername
Noobzor
Noobzor
Posts: 8
Joined: Sun Dec 11, 2022 5:40 am
Reputation: 4

Re: The Long Dark Table

Post 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
}

beta99th
Novice Cheater
Novice Cheater
Posts: 15
Joined: Fri May 15, 2020 12:09 pm
Reputation: 29

Re: The Long Dark Table

Post 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
Attachments
tld.CT
The Long Dark v2.04 [105814]
(5.73 KiB) Downloaded 499 times

NMss2
Cheater
Cheater
Posts: 35
Joined: Fri Apr 24, 2020 5:46 am
Reputation: 4

Re: The Long Dark Table

Post by NMss2 »

Can I put a request on +Enable Console please? Thanks.

Yolo987
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Dec 11, 2022 3:25 pm
Reputation: 0

Re: The Long Dark Table

Post 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
}
Last edited by Yolo987 on Sun Dec 11, 2022 6:52 pm, edited 1 time in total.

User avatar
Brack
Cheater
Cheater
Posts: 41
Joined: Sun Dec 06, 2020 10:29 pm
Reputation: 10

Re: The Long Dark Table

Post 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

fearlessusername
Noobzor
Noobzor
Posts: 8
Joined: Sun Dec 11, 2022 5:40 am
Reputation: 4

Re: The Long Dark Table

Post 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 :)
Last edited by fearlessusername on Sun Dec 18, 2022 10:38 am, edited 1 time in total.

smukase
Noobzor
Noobzor
Posts: 9
Joined: Fri Dec 16, 2022 5:56 pm
Reputation: 3

Re: The Long Dark Table

Post 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.

fearlessusername
Noobzor
Noobzor
Posts: 8
Joined: Sun Dec 11, 2022 5:40 am
Reputation: 4

Re: The Long Dark Table

Post 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" :)

fearlessusername
Noobzor
Noobzor
Posts: 8
Joined: Sun Dec 11, 2022 5:40 am
Reputation: 4

Re: The Long Dark Table

Post 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
}

User avatar
Brack
Cheater
Cheater
Posts: 41
Joined: Sun Dec 06, 2020 10:29 pm
Reputation: 10

Re: The Long Dark Table

Post 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

User avatar
thomm9923
Cheater
Cheater
Posts: 40
Joined: Fri Oct 02, 2020 1:26 pm
Reputation: 5

Re: The Long Dark Table

Post by thomm9923 »

Thank you

Zephyrusiac
Novice Cheater
Novice Cheater
Posts: 16
Joined: Sat Nov 17, 2018 7:29 am
Reputation: 0

Re: The Long Dark Table

Post by Zephyrusiac »

fly doesn't work in 2.06

Post Reply

Who is online

Users browsing this forum: Bing [Bot], counter-stalker123, Darkedone02, evle, Fenixxx, Google [Bot], Google Adsense [Bot], Impala, Kusanagi85, lovaper98435, Mihas, Streethobo123