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:
[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:
{ 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:
[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:
{
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
}