8
"CarryWeight"
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-22
Author : Khayman
CarryWeightMultiplier x 10
}
[ENABLE]
aobscan(weight,69 C0 E8 03 00 00 48 89 45) // should be unique
alloc(newmem,$1000,weight)
label(code)
label(return)
alloc(CarryWeightMulti,4)
registersymbol(CarryWeightMulti)
CarryWeightMulti:
dd 0A
newmem:
imul eax,[CarryWeightMulti]
code:
imul eax,eax,000003E8
jmp return
weight:
jmp newmem
nop
nop
return:
registersymbol(weight)
[DISABLE]
weight:
db 69 C0 E8 03 00 00 48 89 45
unregistersymbol(weight)
dealloc(newmem)
unregistersymbol(CarryWeightMulti)
dealloc(CarryWeightMulti)
{
// ORIGINAL CODE - INJECTION POINT: 7F2DDD8583
7F2DDD8560: 49 BB 90 10 DD 2D 7F 00 00 00 - mov r11,CharacterFinalStats:get_Strength
7F2DDD856A: 41 FF D3 - call r11
7F2DDD856D: 48 83 C4 20 - add rsp,20
7F2DDD8571: 48 8B C8 - mov rcx,rax
7F2DDD8574: FF C1 - inc ecx
7F2DDD8576: C1 E1 04 - shl ecx,04
7F2DDD8579: 48 8B C1 - mov rax,rcx
7F2DDD857C: C1 E8 1F - shr eax,1F
7F2DDD857F: 03 C1 - add eax,ecx
7F2DDD8581: D1 F8 - sar eax,1
// ---------- INJECTING HERE ----------
7F2DDD8583: 69 C0 E8 03 00 00 - imul eax,eax,000003E8
// ---------- DONE INJECTING ----------
7F2DDD8589: 48 89 45 F0 - mov [rbp-10],rax
7F2DDD858D: 48 8B CE - mov rcx,rsi
7F2DDD8590: BA 1C 00 00 00 - mov edx,0000001C
7F2DDD8595: 48 83 EC 20 - sub rsp,20
7F2DDD8599: 49 BB C0 DC DC 2D 7F 00 00 00 - mov r11,CharacterFinalStats:GetModifier
7F2DDD85A3: 41 FF D3 - call r11
7F2DDD85A6: 48 83 C4 20 - add rsp,20
7F2DDD85AA: 48 8B 55 F0 - mov rdx,[rbp-10]
7F2DDD85AE: 03 D0 - add edx,eax
7F2DDD85B0: B9 88 13 00 00 - mov ecx,00001388
}
30
"Multiplier"
008000
4 Bytes
CarryWeightMulti
42
"Experience Multiplier"
000000
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-26
Author : Khayman
Experience multiplier
}
[ENABLE]
aobscan(ExperienceMultiplierScan,03 C6 48 8B D0 89) // should be unique
alloc(newmem,$1000,ExperienceMultiplierScan)
label(code)
label(return)
alloc(ExperienceMulti,4)
registersymbol(ExperienceMulti)
ExperienceMulti:
dd 0A
newmem:
imul esi,[ExperienceMulti]
code:
add eax,esi
mov rdx,rax
jmp return
ExperienceMultiplierScan:
jmp newmem
return:
registersymbol(ExperienceMultiplierScan)
[DISABLE]
ExperienceMultiplierScan:
db 03 C6 48 8B D0 89
unregistersymbol(ExperienceMultiplierScan)
unregistersymbol(ExperienceMulti)
dealloc(newmem)
dealloc(ExperienceMulti)
{
// ORIGINAL CODE - INJECTION POINT: E505CA2FEE
E505CA2FCA: 41 FF D3 - call r11
E505CA2FCD: 48 83 C4 20 - add rsp,20
E505CA2FD1: 48 8B C8 - mov rcx,rax
E505CA2FD4: 83 39 00 - cmp dword ptr [rcx],00
E505CA2FD7: 48 8B 80 98 00 00 00 - mov rax,[rax+00000098]
E505CA2FDE: 48 8B 48 48 - mov rcx,[rax+48]
E505CA2FE2: 48 63 41 34 - movsxd rax,dword ptr [rcx+34]
E505CA2FE6: 03 C6 - add eax,esi
E505CA2FE8: 48 8B D0 - mov rdx,rax
E505CA2FEB: 89 45 E8 - mov [rbp-18],eax
// ---------- INJECTING HERE ----------
E505CA2FEE: 89 51 34 - mov [rcx+34],edx
E505CA2FF1: 89 45 EC - mov [rbp-14],eax
// ---------- DONE INJECTING ----------
E505CA2FF4: 85 F6 - test esi,esi
E505CA2FF6: 0F 8E 72 00 00 00 - jng ExperienceDataHolder:_AddExp+13e
E505CA2FFC: 48 B8 08 2F 61 6F E5 00 00 00 - mov rax,000000E56F612F08
E505CA3006: 48 8B 00 - mov rax,[rax]
E505CA3009: 48 8B 40 18 - mov rax,[rax+18]
E505CA300D: 48 89 45 D8 - mov [rbp-28],rax
E505CA3011: 48 B9 08 C2 6A 6F E5 00 00 00 - mov rcx,000000E56F6AC208
E505CA301B: 48 83 EC 20 - sub rsp,20
E505CA301F: 49 BB 50 1C AC 6F E5 00 00 00 - mov r11,System:Object:__icall_wrapper_mono_object_new_ptrfree_box
E505CA3029: 41 FF D3 - call r11
}
39
"Multiplier"
008000
4 Bytes
ExperienceMulti
11
"ActionPoints2"
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-22
Author : Khayman
Action Points Mulitpliers x 2
}
[ENABLE]
aobscan(ActionPoints,03 C1 48 8B 75 F8 C9 C3 D8) // should be unique
alloc(newmem,$1000,ActionPoints)
label(code)
label(return)
alloc(ActionPointsMulti,4)
registersymbol(ActionPointsMulti)
ActionPointsMulti:
dd 02
newmem:
imul eax,[ActionPointsMulti]
code:
add eax,ecx
mov rsi,[rbp-08]
jmp return
ActionPoints:
jmp newmem
nop
return:
registersymbol(ActionPoints)
[DISABLE]
ActionPoints:
db 03 C1 48 8B 75 F8
unregistersymbol(ActionPoints)
dealloc(newmem)
unregistersymbol(ActionPointsMulti)
dealloc(ActionPointsMulti)
{
// ORIGINAL CODE - INJECTION POINT: 33211F6C99
33211F6C6E: 83 C0 05 - add eax,05
33211F6C71: 48 89 45 E8 - mov [rbp-18],rax
33211F6C75: 48 8B CE - mov rcx,rsi
33211F6C78: BA 1A 00 00 00 - mov edx,0000001A
33211F6C7D: 48 83 EC 20 - sub rsp,20
33211F6C81: 49 BB 20 D4 4F 51 33 00 00 00 - mov r11,00000033514FD420
33211F6C8B: 41 FF D3 - call r11
33211F6C8E: 48 83 C4 20 - add rsp,20
33211F6C92: 48 8B C8 - mov rcx,rax
33211F6C95: 48 8B 45 E8 - mov rax,[rbp-18]
// ---------- INJECTING HERE ----------
33211F6C99: 03 C1 - add eax,ecx
33211F6C9B: 48 8B 75 F8 - mov rsi,[rbp-08]
// ---------- DONE INJECTING ----------
33211F6C9F: C9 - leave
33211F6CA0: C3 - ret
33211F6CA1: D8 F3 - fdiv st(0),st(3)
33211F6CA3: 0F 10 45 E8 - movups xmm0,[rbp-18]
33211F6CA7: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
33211F6CAB: F3 0F 10 4D F0 - movss xmm1,[rbp-10]
33211F6CB0: 00 00 - add [rax],al
33211F6CB2: 00 40 00 - add [rax+00],al
33211F6CB5: 00 00 - add [rax],al
33211F6CB7: 00 00 - add [rax],al
}
13
"Luck10"
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-22
Author : Khayman
Luck x 10
}
[ENABLE]
aobscan(LuckStat,48 89 45 F0 48 8B CE BA 07) // should be unique
alloc(newmem,$1000,LuckStat)
label(code)
label(return)
alloc(LuckMult,4)
registersymbol(LuckMult)
LuckMult:
dd 0A
newmem:
imul eax,[LuckMult]
code:
mov [rbp-10],rax
mov rcx,rsi
jmp return
LuckStat:
jmp newmem
nop
nop
return:
registersymbol(LuckStat)
[DISABLE]
LuckStat:
db 48 89 45 F0 48 8B CE
unregistersymbol(LuckStat)
dealloc(newmem)
unregistersymbol(LuckMult)
dealloc(LuckMult)
{
// ORIGINAL CODE - INJECTION POINT: 6D9636642
6D9636620: 48 8B C8 - mov rcx,rax
6D9636623: 48 83 EC 20 - sub rsp,20
6D9636627: 48 8B 00 - mov rax,[rax]
6D963662A: 49 BA B8 6E 79 DF 06 00 00 00 - mov r10,00000006DF796EB8
6D9636634: 90 - nop
6D9636635: 90 - nop
6D9636636: 90 - nop
6D9636637: FF 50 C0 - call qword ptr [rax-40]
6D963663A: 48 83 C4 20 - add rsp,20
6D963663E: 48 63 40 50 - movsxd rax,dword ptr [rax+50]
// ---------- INJECTING HERE ----------
6D9636642: 48 89 45 F0 - mov [rbp-10],rax
6D9636646: 48 8B CE - mov rcx,rsi
// ---------- DONE INJECTING ----------
6D9636649: BA 07 00 00 00 - mov edx,00000007
6D963664E: 48 83 EC 20 - sub rsp,20
6D9636652: 49 BB 10 B8 62 D9 06 00 00 00 - mov r11,00000006D962B810
6D963665C: 41 FF D3 - call r11
6D963665F: 48 83 C4 20 - add rsp,20
6D9636663: 48 8B 55 F0 - mov rdx,[rbp-10]
6D9636667: 03 D0 - add edx,eax
6D9636669: 48 8B CE - mov rcx,rsi
6D963666C: 48 83 EC 20 - sub rsp,20
6D9636670: 49 BB 90 EB 62 D9 06 00 00 00 - mov r11,00000006D962EB90
}
14
"StatCap100"
0000FF
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-22
Author : Khayman
Stat CAP 100
}
[ENABLE]
aobscan(StatCap,41 B8 0B 00 00 00 48 83 EC 20 49) // should be unique
alloc(newmem,$1000,StatCap)
label(code)
label(return)
newmem:
code:
mov r8d,00000064
jmp return
StatCap:
jmp newmem
nop
return:
registersymbol(StatCap)
[DISABLE]
StatCap:
db 41 B8 0B 00 00 00
unregistersymbol(StatCap)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 6D962EBA4
6D962EB86: 83 06 00 - add dword ptr [rsi],00
6D962EB89: 00 00 - add [rax],al
6D962EB8B: 00 00 - add [rax],al
6D962EB8D: 00 00 - add [rax],al
6D962EB8F: 00 55 48 - add [rbp+48],dl
6D962EB92: 8B EC - mov ebp,esp
6D962EB94: 48 83 EC 10 - sub rsp,10
6D962EB98: 48 89 55 F0 - mov [rbp-10],rdx
6D962EB9C: 48 8B CA - mov rcx,rdx
6D962EB9F: BA 01 00 00 00 - mov edx,00000001
// ---------- INJECTING HERE ----------
6D962EBA4: 41 B8 0B 00 00 00 - mov r8d,0000000B
// ---------- DONE INJECTING ----------
6D962EBAA: 48 83 EC 20 - sub rsp,20
6D962EBAE: 49 BB 10 5A 5B D9 06 00 00 00 - mov r11,UnityEngine:Mathf:Clamp
6D962EBB8: 41 FF D3 - call r11
6D962EBBB: 48 83 C4 20 - add rsp,20
6D962EBBF: C9 - leave
6D962EBC0: C3 - ret
6D962EBC1: 00 00 - add [rax],al
6D962EBC3: 00 00 - add [rax],al
6D962EBC5: 00 00 - add [rax],al
6D962EBC7: 00 00 - add [rax],al
}
31
"CharacterPointerScan_v4 (Activate: Open character Panel; Update: Character Panel - change character)"
FF0080
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-24
Author : Khayman
Character Pointer Scan v04
}
[ENABLE]
aobscan(CharacterPointerScanner,02 33 C0 48 8B 34 24 48 8B 7C 24 08 48) // should be unique
alloc(newmem,$1000,CharacterPointerScanner)
globalalloc(_CharaPointer,4)
label(code)
label(return)
newmem:
mov [_CharaPointer],rdi
code:
mov rsi,[rsp]
mov rdi,[rsp+08]
jmp return
CharacterPointerScanner+03:
jmp newmem
nop
nop
nop
nop
return:
registersymbol(CharacterPointerScanner)
[DISABLE]
CharacterPointerScanner+03:
db 48 8B 34 24 48 8B 7C 24 08
unregistersymbol(CharacterPointerScanner)
dealloc(newmem)
dealloc(_CharaPointer)
{
// ORIGINAL CODE - INJECTION POINT: B1B9073999
B1B907397D: EB 1A - jmp B1B9073999
B1B907397F: 48 63 47 44 - movsxd rax,dword ptr [rdi+44]
B1B9073983: EB 14 - jmp B1B9073999
B1B9073985: 48 63 47 48 - movsxd rax,dword ptr [rdi+48]
B1B9073989: EB 0E - jmp B1B9073999
B1B907398B: 48 63 47 4C - movsxd rax,dword ptr [rdi+4C]
B1B907398F: EB 08 - jmp B1B9073999
B1B9073991: 48 63 47 50 - movsxd rax,dword ptr [rdi+50]
B1B9073995: EB 02 - jmp B1B9073999
B1B9073997: 33 C0 - xor eax,eax
// ---------- INJECTING HERE ----------
B1B9073999: 48 8B 34 24 - mov rsi,[rsp]
B1B907399D: 48 8B 7C 24 08 - mov rdi,[rsp+08]
// ---------- DONE INJECTING ----------
B1B90739A2: 48 83 C4 18 - add rsp,18
B1B90739A6: C3 - ret
B1B90739A7: 00 00 - add [rax],al
B1B90739A9: 00 00 - add [rax],al
B1B90739AB: 00 77 00 - add [rdi+00],dh
B1B90739AE: 00 00 - add [rax],al
B1B90739B0: 84 00 - test [rax],al
B1B90739B2: 00 00 - add [rax],al
B1B90739B4: 01 04 01 - add [rcx+rax],eax
B1B90739B7: 00 04 22 - add [rdx],al
}
18
"Experience"
0080FF
4 Bytes
_CharaPointer
34
41
"Strength"
0080FF
4 Bytes
_CharaPointer
38
20
"Attention"
0080FF
4 Bytes
_CharaPointer
3C
24
"Endurance"
0080FF
4 Bytes
_CharaPointer
40
23
"Personality"
0080FF
4 Bytes
_CharaPointer
44
22
"Intellect"
0080FF
4 Bytes
_CharaPointer
48
21
"Dexterity"
0080FF
4 Bytes
_CharaPointer
4C
25
"Luck"
0080FF
4 Bytes
_CharaPointer
50
26
"Skill Points"
0080FF
4 Bytes
_CharaPointer
54
28
"Character Points"
0080FF
4 Bytes
_CharaPointer
58
27
"Perk Points"
0080FF
4 Bytes
_CharaPointer
5C
44
"SkillsPointerScan_v1 (Activate: Open character Panel; Update: Character Panel - change character)"
FF0080
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version: v01
Date : 2019-01-03
Author : Khayman
Skills Pointer scan
}
[ENABLE]
aobscan(SkillsPointerScan,48 8B 47 20 48 63 40 10) // should be unique
alloc(newmem,$1000,SkillsPointerScan)
globalalloc(_SkillsPointer,4)
label(code)
label(return)
newmem:
mov [_SkillsPointer],rdi
code:
mov rax,[rdi+20]
movsxd rax,dword ptr [rax+10]
jmp return
SkillsPointerScan:
jmp newmem
nop
nop
nop
return:
registersymbol(SkillsPointerScan)
[DISABLE]
SkillsPointerScan:
db 48 8B 47 20 48 63 40 10
unregistersymbol(SkillsPointerScan)
dealloc(newmem)
dealloc(_SkillsPointer)
{
// ORIGINAL CODE - INJECTION POINT: 5671A436C8
5671A436A0: 48 89 75 E8 - mov [rbp-18],rsi
5671A436A4: 83 FE 12 - cmp esi,12
5671A436A7: 0F 83 EF 00 00 00 - jae CharacterProtoStats:GetSkillBonus+10c
5671A436AD: 48 8B 45 E8 - mov rax,[rbp-18]
5671A436B1: C1 E0 03 - shl eax,03
5671A436B4: 8B C8 - mov ecx,eax
5671A436B6: 48 B8 80 38 A4 71 56 00 00 00 - mov rax,0000005671A43880
5671A436C0: 48 03 C1 - add rax,rcx
5671A436C3: 48 8B 00 - mov rax,[rax]
5671A436C6: FF E0 - jmp rax
// ---------- INJECTING HERE ----------
5671A436C8: 48 8B 47 20 - mov rax,[rdi+20]
5671A436CC: 48 63 40 10 - movsxd rax,dword ptr [rax+10]
// ---------- DONE INJECTING ----------
5671A436D0: E9 E8 00 00 00 - jmp CharacterProtoStats:GetSkillBonus+12d
5671A436D5: 48 8B 47 20 - mov rax,[rdi+20]
5671A436D9: 48 63 40 14 - movsxd rax,dword ptr [rax+14]
5671A436DD: E9 DB 00 00 00 - jmp CharacterProtoStats:GetSkillBonus+12d
5671A436E2: 48 8B 47 20 - mov rax,[rdi+20]
5671A436E6: 48 63 40 18 - movsxd rax,dword ptr [rax+18]
5671A436EA: E9 CE 00 00 00 - jmp CharacterProtoStats:GetSkillBonus+12d
5671A436EF: 48 8B 47 20 - mov rax,[rdi+20]
5671A436F3: 48 63 40 28 - movsxd rax,dword ptr [rax+28]
5671A436F7: E9 C1 00 00 00 - jmp CharacterProtoStats:GetSkillBonus+12d
}
45
"Pistols and SMG"
0080FF
4 Bytes
_SkillsPointer
10
20
52
"Rifles and Shotguns"
0080FF
4 Bytes
_SkillsPointer
14
20
51
"Automatic Firearms"
0080FF
4 Bytes
_SkillsPointer
18
20
50
"Martial Arts"
0080FF
4 Bytes
_SkillsPointer
1C
20
53
"Melee Weapons"
0080FF
4 Bytes
_SkillsPointer
20
20
49
"Throwing Weapons"
0080FF
4 Bytes
_SkillsPointer
24
20
54
"First Aid"
0080FF
4 Bytes
_SkillsPointer
28
20
55
"Tinkering"
0080FF
4 Bytes
_SkillsPointer
2C
20
56
"Stealth"
0080FF
4 Bytes
_SkillsPointer
30
20
57
"Lock Picking"
0080FF
4 Bytes
_SkillsPointer
34
20
58
"PickPocket"
0080FF
4 Bytes
_SkillsPointer
38
20
59
"???"
0080FF
4 Bytes
_SkillsPointer
3C
20
60
"Technology"
0080FF
4 Bytes
_SkillsPointer
40
20
61
"Speechcraft"
0080FF
4 Bytes
_SkillsPointer
44
20
62
"Barter"
0080FF
4 Bytes
_SkillsPointer
48
20
63
"Gambling"
0080FF
4 Bytes
_SkillsPointer
4C
20
64
"Survival"
0080FF
4 Bytes
_SkillsPointer
50
20
35
"ItemPointerScanner (Activate: Open Inventory, click on item; Open Inventory, click on item)"
FF0080
Auto Assembler Script
{ Game : AtomRPG_x64.exe
Version:
Date : 2018-12-24
Author : Khayman
Item Pointer Scan v01
}
[ENABLE]
aobscan(ItemPointerScan,48 63 40 30 83 F8 01 0F 8E 7B) // should be unique
alloc(newmem,$1000,ItemPointerScan)
globalalloc(_ItemPointer,4)
label(code)
label(return)
newmem:
mov [_ItemPointer],rax
code:
movsxd rax,dword ptr [rax+30]
cmp eax,01
jmp return
ItemPointerScan:
jmp newmem
nop
nop
return:
registersymbol(ItemPointerScan)
[DISABLE]
ItemPointerScan:
db 48 63 40 30 83 F8 01
unregistersymbol(ItemPointerScan)
dealloc(newmem)
dealloc(_ItemPointer)
{
// ORIGINAL CODE - INJECTION POINT: EFDEA88E83
EFDEA88E58: 48 83 C4 20 - add rsp,20
EFDEA88E5C: 49 8B 4F 20 - mov rcx,[r15+20]
EFDEA88E60: 33 D2 - xor edx,edx
EFDEA88E62: 48 83 EC 20 - sub rsp,20
EFDEA88E66: 49 BB 10 CE EA 99 EF 00 00 00 - mov r11,UnityEngine:Object:op_Inequality
EFDEA88E70: 41 FF D3 - call r11
EFDEA88E73: 48 83 C4 20 - add rsp,20
EFDEA88E77: 85 C0 - test eax,eax
EFDEA88E79: 0F 84 B1 00 00 00 - je InventorySlot:Setup+180
EFDEA88E7F: 49 8B 47 18 - mov rax,[r15+18]
// ---------- INJECTING HERE ----------
EFDEA88E83: 48 63 40 30 - movsxd rax,dword ptr [rax+30]
EFDEA88E87: 83 F8 01 - cmp eax,01
// ---------- DONE INJECTING ----------
EFDEA88E8A: 0F 8E 7B 00 00 00 - jng InventorySlot:Setup+15b
EFDEA88E90: 49 8B 47 20 - mov rax,[r15+20]
EFDEA88E94: 48 89 45 D0 - mov [rbp-30],rax
EFDEA88E98: 48 63 47 30 - movsxd rax,dword ptr [rdi+30]
EFDEA88E9C: 48 89 45 C8 - mov [rbp-38],rax
EFDEA88EA0: 48 B9 18 E2 A4 99 EF 00 00 00 - mov rcx,000000EF99A4E218
EFDEA88EAA: 48 83 EC 20 - sub rsp,20
EFDEA88EAE: 49 BB 50 1C E6 99 EF 00 00 00 - mov r11,System:Object:__icall_wrapper_mono_object_new_ptrfree_box
EFDEA88EB8: 41 FF D3 - call r11
EFDEA88EBB: 48 83 C4 20 - add rsp,20
}
34
"Quantity"
0080FF
4 Bytes
_ItemPointer
30
_CharaPointer
56038D0000
_ItemPointer
E504F90010
ExpMulitplier
7380AC0000
_SkillsPointer
56038D0010