<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>34</ID>
      <Description>"Back-Pack-Hero [Steam Edtion]"</Description>
      <Options moManualExpandCollapse="1"/>
      <Color>FFFF00</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>29</ID>
          <Description>"Cheats"</Description>
          <Options moManualExpandCollapse="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>30</ID>
              <Description>"xxxxxxxxxxxxxxxxxxxxxxxxxxx"</Description>
              <Options moManualExpandCollapse="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>28</ID>
                  <Description>"Instant Win"</Description>
                  <Color>00FFFF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Backpack Hero.exe
  Version: 
  Date   : 2022-08-01
  Author : slimb

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Fl_g,UnityPlayer.dll,88 02 48 FF 01 48 8B CB 48 83 C4 20 5B E9 9E) // should be unique
alloc(newmem,$1000,Fl_g)

label(code)
label(return)

newmem:

code:
mov al,#1
  mov [rdx],al
  inc qword ptr [rcx]
  jmp return

Fl_g:
  jmp code
return:
registersymbol(Fl_g)

[DISABLE]

Fl_g:
  db 88 02 48 FF 01

unregistersymbol(Fl_g)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll.text+69D060

UnityPlayer.dll.text+69D03B: 48 63 42 18        - movsxd  rax,dword ptr [rdx+18]
UnityPlayer.dll.text+69D03F: 48 03 42 08        - add rax,[rdx+08]
UnityPlayer.dll.text+69D043: 48 8D 51 F0        - lea rdx,[rcx-10]
UnityPlayer.dll.text+69D047: 48 03 D0           - add rdx,rax
UnityPlayer.dll.text+69D04A: 4C 8B 43 28        - mov r8,[rbx+28]
UnityPlayer.dll.text+69D04E: 48 8D 4B 28        - lea rcx,[rbx+28]
UnityPlayer.dll.text+69D052: 49 8D 40 01        - lea rax,[r8+01]
UnityPlayer.dll.text+69D056: 48 3B 41 10        - cmp rax,[rcx+10]
UnityPlayer.dll.text+69D05A: 77 16              - ja UnityPlayer.dll.text+69D072
UnityPlayer.dll.text+69D05C: 41 0F B6 00        - movzx eax,byte ptr [r8]
// ---------- INJECTING HERE ----------
UnityPlayer.dll.text+69D060: 88 02              - mov [rdx],al
// ---------- DONE INJECTING  ----------
UnityPlayer.dll.text+69D062: 48 FF 01           - inc qword ptr [rcx]
UnityPlayer.dll.text+69D065: 48 8B CB           - mov rcx,rbx
UnityPlayer.dll.text+69D068: 48 83 C4 20        - add rsp,20
UnityPlayer.dll.text+69D06C: 5B                 - pop rbx
UnityPlayer.dll.text+69D06D: E9 9E CF 02 00     - jmp UnityPlayer.dll.text+6CA010
UnityPlayer.dll.text+69D072: 41 B8 01 00 00 00  - mov r8d,00000001
UnityPlayer.dll.text+69D078: E8 D3 72 E6 FF     - call UnityPlayer.dll.text+504350
UnityPlayer.dll.text+69D07D: 48 8B CB           - mov rcx,rbx
UnityPlayer.dll.text+69D080: 48 83 C4 20        - add rsp,20
UnityPlayer.dll.text+69D084: 5B                 - pop rbx
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>32</ID>
              <Description>"xxxxxxxxxxxxxxxxxxxxxxxxxxx"</Description>
              <Options moManualExpandCollapse="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>7</ID>
                  <Description>"BackPak Space Unlocker"</Description>
                  <Color>00FFFF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Backpack Hero.exe
  Version: 
  Date   : 2022-08-01
  Author : slimb

  This script does blah blah blah
}

[ENABLE]

aobscan(Bak_gain,89 86 94 00 00 00 48 8B 86) // should be unique
alloc(newmem,$1000,Bak_gain)

label(code)
label(return)

newmem:

code:
mov eax,#99
  mov [rsi+00000094],eax
  jmp return

Bak_gain:
  jmp code
  nop
return:
registersymbol(Bak_gain)

[DISABLE]

Bak_gain:
  db 89 86 94 00 00 00

unregistersymbol(Bak_gain)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: LevelUpManager:Select+2f

LevelUpManager:Select+4: 48 83 EC 70                    - sub rsp,70
LevelUpManager:Select+8: 48 89 75 E8                    - mov [rbp-18],rsi
LevelUpManager:Select+c: 48 89 7D F0                    - mov [rbp-10],rdi
LevelUpManager:Select+10: 4C 89 75 F8                    - mov [rbp-08],r14
LevelUpManager:Select+14: 48 8B F1                       - mov rsi,rcx
LevelUpManager:Select+17: 48 63 86 94 00 00 00           - movsxd  rax,dword ptr [rsi+00000094]
LevelUpManager:Select+1e: 85 C0                          - test eax,eax
LevelUpManager:Select+20: 0F 8E DB 00 00 00              - jng LevelUpManager:Select+101
LevelUpManager:Select+26: 48 63 86 94 00 00 00           - movsxd  rax,dword ptr [rsi+00000094]
LevelUpManager:Select+2d: FF C8                          - dec eax
// ---------- INJECTING HERE ----------
LevelUpManager:Select+2f: 89 86 94 00 00 00              - mov [rsi+00000094],eax
// ---------- DONE INJECTING  ----------
LevelUpManager:Select+35: 48 8B 86 80 00 00 00           - mov rax,[rsi+00000080]
LevelUpManager:Select+3c: 48 8B 80 C0 00 00 00           - mov rax,[rax+000000C0]
LevelUpManager:Select+43: 48 89 45 B0                    - mov [rbp-50],rax
LevelUpManager:Select+47: 48 B8 10 39 77 C1 46 02 00 00  - mov rax,00000246C1773910
LevelUpManager:Select+51: 48 8B 00                       - mov rax,[rax]
LevelUpManager:Select+54: 48 8B C8                       - mov rcx,rax
LevelUpManager:Select+57: 48 BA 00 37 C6 DF 48 02 00 00  - mov rdx,00000248DFC63700
LevelUpManager:Select+61: 83 38 00                       - cmp dword ptr [rax],00
LevelUpManager:Select+64: 66 90                          - nop 2
LevelUpManager:Select+66: 49 BB A0 6D 98 CD 46 02 00 00  - mov r11,LangaugeManager:GetTextByKey
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>31</ID>
              <Description>"xxxxxxxxxxxxxxxxxxxxxxxxxxx"</Description>
              <Options moManualExpandCollapse="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>3</ID>
                  <Description>"Set Enemy HP to 1"</Description>
                  <Color>00FFFF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Backpack Hero.exe
  Version: 
  Date   : 2022-08-01
  Author : slimb

  This script does blah blah blah
}

[ENABLE]

aobscan(Enemiy_hp,89 47 70 48 63 47 70 85) // should be unique
alloc(newmem,$1000,Enemiy_hp)

label(code)
label(return)

newmem:

code:
mov eax,#1
  mov [rdi+70],eax
  movsxd  rax,dword ptr [rdi+70]
  jmp return

Enemiy_hp:
  jmp newmem
  nop 2
return:
registersymbol(Enemiy_hp)

[DISABLE]

Enemiy_hp:
  db 89 47 70 48 63 47 70

unregistersymbol(Enemiy_hp)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Status:ChangeHealth+de3

Status:ChangeHealth+dbb: 89 47 70                       - mov [rdi+70],eax
Status:ChangeHealth+dbe: 48 63 47 70                    - movsxd  rax,dword ptr [rdi+70]
Status:ChangeHealth+dc2: 03 C6                          - add eax,esi
Status:ChangeHealth+dc4: 89 47 70                       - mov [rdi+70],eax
Status:ChangeHealth+dc7: 48 63 4F 70                    - movsxd  rcx,dword ptr [rdi+70]
Status:ChangeHealth+dcb: 4C 63 47 74                    - movsxd  r8,dword ptr [rdi+74]
Status:ChangeHealth+dcf: 33 D2                          - xor edx,edx
Status:ChangeHealth+dd1: 48 8D 64 24 00                 - lea rsp,[rsp+00]
Status:ChangeHealth+dd6: 49 BB C0 E5 C1 CD 46 02 00 00  - mov r11,UnityEngine.Mathf:Clamp
Status:ChangeHealth+de0: 41 FF D3                       - call r11
// ---------- INJECTING HERE ----------
Status:ChangeHealth+de3: 89 47 70                       - mov [rdi+70],eax
// ---------- DONE INJECTING  ----------
Status:ChangeHealth+de6: 48 63 47 70                    - movsxd  rax,dword ptr [rdi+70]
Status:ChangeHealth+dea: 85 C0                          - test eax,eax
Status:ChangeHealth+dec: 0F 8F F1 00 00 00              - jg Status:ChangeHealth+ee3
Status:ChangeHealth+df2: 48 8B 4F 18                    - mov rcx,[rdi+18]
Status:ChangeHealth+df6: 83 39 00                       - cmp dword ptr [rcx],00
Status:ChangeHealth+df9: 49 BA 50 72 80 CF 46 02 00 00  - mov r10,00000246CF807250
Status:ChangeHealth+e03: 66 66 90                       - nop 3
Status:ChangeHealth+e06: 49 BB 50 0C 95 CD 46 02 00 00  - mov r11,UnityEngine.GameObject:GetComponent
Status:ChangeHealth+e10: 41 FF D3                       - call r11
Status:ChangeHealth+e13: 4C 8B F0                       - mov r14,rax
}
</AssemblerScript>
                  <Hotkeys>
                    <Hotkey>
                      <Action>Toggle Activation</Action>
                      <Keys>
                        <Key>90</Key>
                      </Keys>
                      <ID>0</ID>
                    </Hotkey>
                  </Hotkeys>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>33</ID>
              <Description>"xxxxxxxxxxxxxxxxxxxxxxxxxxx"</Description>
              <Options moManualExpandCollapse="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>8</ID>
                  <Description>"Infinite Health test"</Description>
                  <Color>00FFFF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{ Game   : Backpack Hero.exe
  Version: 
  Date   : 2022-08-01
  Author : slimb

  This script does blah blah blah
}

[ENABLE]

aobscan(INJECT,89 47 70 48 63 47 70 85) // should be unique
alloc(newmem,$1000,INJECT)

label(code)
label(return)

newmem:
cmp [rdi+130],2
mov [rdi+70],#99
jne code

code:
  mov [rdi+70],#1
  movsxd  rax,dword ptr [rdi+70]
  jmp return

INJECT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 89 47 70 48 63 47 70

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Status:ChangeHealth+de3

Status:ChangeHealth+dbb: 89 47 70                       - mov [rdi+70],eax
Status:ChangeHealth+dbe: 48 63 47 70                    - movsxd  rax,dword ptr [rdi+70]
Status:ChangeHealth+dc2: 03 C6                          - add eax,esi
Status:ChangeHealth+dc4: 89 47 70                       - mov [rdi+70],eax
Status:ChangeHealth+dc7: 48 63 4F 70                    - movsxd  rcx,dword ptr [rdi+70]
Status:ChangeHealth+dcb: 4C 63 47 74                    - movsxd  r8,dword ptr [rdi+74]
Status:ChangeHealth+dcf: 33 D2                          - xor edx,edx
Status:ChangeHealth+dd1: 48 8D 64 24 00                 - lea rsp,[rsp+00]
Status:ChangeHealth+dd6: 49 BB C0 E5 C1 CD 46 02 00 00  - mov r11,UnityEngine.Mathf:Clamp
Status:ChangeHealth+de0: 41 FF D3                       - call r11
// ---------- INJECTING HERE ----------
Status:ChangeHealth+de3: 89 47 70                       - mov [rdi+70],eax
// ---------- DONE INJECTING  ----------
Status:ChangeHealth+de6: 48 63 47 70                    - movsxd  rax,dword ptr [rdi+70]
Status:ChangeHealth+dea: 85 C0                          - test eax,eax
Status:ChangeHealth+dec: 0F 8F F1 00 00 00              - jg Status:ChangeHealth+ee3
Status:ChangeHealth+df2: 48 8B 4F 18                    - mov rcx,[rdi+18]
Status:ChangeHealth+df6: 83 39 00                       - cmp dword ptr [rcx],00
Status:ChangeHealth+df9: 49 BA 50 72 80 CF 46 02 00 00  - mov r10,00000246CF807250
Status:ChangeHealth+e03: 66 66 90                       - nop 3
Status:ChangeHealth+e06: 49 BB 50 0C 95 CD 46 02 00 00  - mov r11,UnityEngine.GameObject:GetComponent
Status:ChangeHealth+e10: 41 FF D3                       - call r11
Status:ChangeHealth+e13: 4C 8B F0                       - mov r14,rax
}
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
