<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"[ACTIVATE]"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>// Original Code by G40sty.
[ENABLE]
{$lua}
local gameName = "Silent Hill 2"
local gameProcess = "SHProto-Win64-Shipping.exe"
if getProcessIDFromProcessName(gameProcess) ~= nil then
   if readInteger(process) == nil then
      openProcess(gameProcess)
   else
       if readInteger(process) ~= readInteger(gameProcess) then
          openProcess(gameProcess)
      end
   end
else
    beep() error(showMessage(string.format("%s is not running.",gameName)))
end
--; Auto Attach Process For User
if syntaxcheck then return end
if messageDialog([[
Copyright © 2024 OpenCheatTables.com
Table Creator: Marcus101RR
Would you like to read additional information?
]],mtInformation,mbYes,mbNo) == mrYes then
messageDialog("This information has been added to deter users of FRF (Fearless Revolution Forums) to violate the GPL License. You are hereby informed that use of this table is strictly forbidden from distribution, upload, or alterations with or without consent from this author on FRF. All other sources are allowed with permission.")
else
end


[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"[POINTERS]"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
define(Player,SHProto-Win64-Shipping.exe+828A410)

registersymbol(Player)

[DISABLE]
unregistersymbol(Player)

</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>130</ID>
              <Description>"Health"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>Player</Address>
              <Offsets>
                <Offset>F8</Offset>
                <Offset>6B8</Offset>
                <Offset>20</Offset>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"Enemies Ignore"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>Player</Address>
              <Offsets>
                <Offset>E0</Offset>
                <Offset>890</Offset>
                <Offset>20</Offset>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>16</ID>
              <Description>"Enemies Miss"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>Player</Address>
              <Offsets>
                <Offset>E2</Offset>
                <Offset>890</Offset>
                <Offset>20</Offset>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"Inventory"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>18</ID>
                  <Description>"Header"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C0C0C0</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>0</Offset>
                    <Offset>110</Offset>
                    <Offset>6C0</Offset>
                    <Offset>20</Offset>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>132</ID>
                  <Description>"Item"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>68</Offset>
                    <Offset>110</Offset>
                    <Offset>6C0</Offset>
                    <Offset>20</Offset>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>19</ID>
                  <Description>"Item"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>8C</Offset>
                    <Offset>110</Offset>
                    <Offset>6C0</Offset>
                    <Offset>20</Offset>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>20</ID>
                  <Description>"Item"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>EC</Offset>
                    <Offset>110</Offset>
                    <Offset>6C0</Offset>
                    <Offset>20</Offset>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>133</ID>
                  <Description>"Item"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>E0</Offset>
                    <Offset>110</Offset>
                    <Offset>6C0</Offset>
                    <Offset>20</Offset>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>30</ID>
              <Description>"Weapon Clip"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>Player</Address>
              <Offsets>
                <Offset>BAC</Offset>
                <Offset>38</Offset>
                <Offset>1C8</Offset>
                <Offset>6C8</Offset>
                <Offset>20</Offset>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>2</ID>
          <Description>"[SCRIPTS]"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>21</ID>
              <Description>"Get Selected Item"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : SHProto-Win64-Shipping.exe
  Version: 
  Date   : 2024-10-15
  Author : Administrator

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(getItem,SHProto-Win64-Shipping.exe,8B 41 08 C3 CC CC CC CC CC CC 48) // should be unique
alloc(newmem,$64,getItem)

label(code)
label(return)

label(gItem)
registersymbol(gItem)

newmem:

code:
  mov [gItem],rcx
  mov eax,[rcx+08]
  ret 
  int 3 
  jmp return

gItem:
  dq 0

getItem:
  jmp newmem
return:
registersymbol(getItem)

[DISABLE]

getItem:
  db 8B 41 08 C3 CC

unregistersymbol(getItem)
dealloc(newmem)
unregistersymbol(gItem)

{
// ORIGINAL CODE - INJECTION POINT: SHProto-Win64-Shipping.exe+2A8A536

SHProto-Win64-Shipping.exe+2A8A51F: 90              - nop 
SHProto-Win64-Shipping.exe+2A8A520: 48 85 C9        - test rcx,rcx
SHProto-Win64-Shipping.exe+2A8A523: 74 05           - je SHProto-Win64-Shipping.exe+2A8A52A
SHProto-Win64-Shipping.exe+2A8A525: 48 39 01        - cmp [rcx],rax
SHProto-Win64-Shipping.exe+2A8A528: 74 0C           - je SHProto-Win64-Shipping.exe+2A8A536
SHProto-Win64-Shipping.exe+2A8A52A: 48 83 C1 0C     - add rcx,0C
SHProto-Win64-Shipping.exe+2A8A52E: 49 3B C8        - cmp rcx,r8
SHProto-Win64-Shipping.exe+2A8A531: 75 ED           - jne SHProto-Win64-Shipping.exe+2A8A520
SHProto-Win64-Shipping.exe+2A8A533: 33 C0           - xor eax,eax
SHProto-Win64-Shipping.exe+2A8A535: C3              - ret 
// ---------- INJECTING HERE ----------
SHProto-Win64-Shipping.exe+2A8A536: 8B 41 08        - mov eax,[rcx+08]
// ---------- DONE INJECTING  ----------
SHProto-Win64-Shipping.exe+2A8A539: C3              - ret 
SHProto-Win64-Shipping.exe+2A8A53A: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A53B: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A53C: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A53D: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A53E: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A53F: CC              - int 3 
SHProto-Win64-Shipping.exe+2A8A540: 48 89 5C 24 08  - mov [rsp+08],rbx
SHProto-Win64-Shipping.exe+2A8A545: 57              - push rdi
SHProto-Win64-Shipping.exe+2A8A546: 48 83 EC 20     - sub rsp,20
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>23</ID>
                  <Description>"Amount"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>gItem</Address>
                  <Offsets>
                    <Offset>8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>22</ID>
                  <Description>"??"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>gItem</Address>
                  <Offsets>
                    <Offset>C</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>34</ID>
              <Description>"Get Player"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : SHProto-Win64-Shipping.exe
  Version: 
  Date   : 2024-10-15
  Author : Administrator

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(getPlayer,SHProto-Win64-Shipping.exe,48 3B AB D0 00 00 00) // should be unique
alloc(newmem,$64,getPlayer)

label(code)
label(return)

label(gPlayer)
registersymbol(gPlayer)
newmem:

code:
  mov [gPlayer],rbx
  cmp rbp,[rbx+000000D0]
  jmp return

gPlayer:
  dq 0

getPlayer:
  jmp newmem
  nop 2
return:
registersymbol(getPlayer)

[DISABLE]

getPlayer:
  db 48 3B AB D0 00 00 00

unregistersymbol(getPlayer)
dealloc(newmem)
unregistersymbol(gPlayer)

{
// ORIGINAL CODE - INJECTION POINT: SHProto-Win64-Shipping.exe+4C1B609

SHProto-Win64-Shipping.exe+4C1B5DD: 0F 29 78 C8           - movaps [rax-38],xmm7
SHProto-Win64-Shipping.exe+4C1B5E1: 48 8B E9              - mov rbp,rcx
SHProto-Win64-Shipping.exe+4C1B5E4: 44 0F 29 40 B8        - movaps [rax-48],xmm8
SHProto-Win64-Shipping.exe+4C1B5E9: 44 0F 29 48 A8        - movaps [rax-58],xmm9
SHProto-Win64-Shipping.exe+4C1B5EE: E8 0D C8 FF FF        - call SHProto-Win64-Shipping.exe+4C17E00
SHProto-Win64-Shipping.exe+4C1B5F3: 48 8B D8              - mov rbx,rax
SHProto-Win64-Shipping.exe+4C1B5F6: 48 8D B0 A8 00 00 00  - lea rsi,[rax+000000A8]
SHProto-Win64-Shipping.exe+4C1B5FD: 48 8B CE              - mov rcx,rsi
SHProto-Win64-Shipping.exe+4C1B600: FF 15 7A 65 1E 01     - call qword ptr [SHProto-Win64-Shipping.exe+5E01B80]
SHProto-Win64-Shipping.exe+4C1B606: 45 33 FF              - xor r15d,r15d
// ---------- INJECTING HERE ----------
SHProto-Win64-Shipping.exe+4C1B609: 48 3B AB D0 00 00 00  - cmp rbp,[rbx+000000D0]
// ---------- DONE INJECTING  ----------
SHProto-Win64-Shipping.exe+4C1B610: 0F 84 E8 00 00 00     - je SHProto-Win64-Shipping.exe+4C1B6FE
SHProto-Win64-Shipping.exe+4C1B616: 48 89 AB D0 00 00 00  - mov [rbx+000000D0],rbp
SHProto-Win64-Shipping.exe+4C1B61D: 8B 4B 60              - mov ecx,[rbx+60]
SHProto-Win64-Shipping.exe+4C1B620: 3B 8B 8C 00 00 00     - cmp ecx,[rbx+0000008C]
SHProto-Win64-Shipping.exe+4C1B626: 74 79                 - je SHProto-Win64-Shipping.exe+4C1B6A1
SHProto-Win64-Shipping.exe+4C1B628: 48 8B CD              - mov rcx,rbp
SHProto-Win64-Shipping.exe+4C1B62B: 4C 8D 8B 90 00 00 00  - lea r9,[rbx+00000090]
SHProto-Win64-Shipping.exe+4C1B632: 49 8B 51 08           - mov rdx,[r9+08]
SHProto-Win64-Shipping.exe+4C1B636: 48 C1 E9 04           - shr rcx,04
SHProto-Win64-Shipping.exe+4C1B63A: 8B C1                 - mov eax,ecx
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>35</ID>
                  <Description>"Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>gPlayer</Address>
                  <Offsets>
                    <Offset>F8</Offset>
                    <Offset>6B8</Offset>
                    <Offset>2F0</Offset>
                    <Offset>30</Offset>
                    <Offset>D0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>36</ID>
                  <Description>"Enemies Ignore"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>gPlayer</Address>
                  <Offsets>
                    <Offset>E0</Offset>
                    <Offset>890</Offset>
                    <Offset>2F0</Offset>
                    <Offset>30</Offset>
                    <Offset>D0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>37</ID>
                  <Description>"Enemies Miss"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>gPlayer</Address>
                  <Offsets>
                    <Offset>E2</Offset>
                    <Offset>890</Offset>
                    <Offset>2F0</Offset>
                    <Offset>30</Offset>
                    <Offset>D0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>38</ID>
                  <Description>"Inventory"</Description>
                  <Options moHideChildren="1"/>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>40</ID>
                      <Description>"Item"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Byte</VariableType>
                      <Address>gPlayer</Address>
                      <Offsets>
                        <Offset>68</Offset>
                        <Offset>110</Offset>
                        <Offset>6C0</Offset>
                        <Offset>2F0</Offset>
                        <Offset>30</Offset>
                        <Offset>D0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>41</ID>
                      <Description>"Item"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Byte</VariableType>
                      <Address>gPlayer</Address>
                      <Offsets>
                        <Offset>8C</Offset>
                        <Offset>110</Offset>
                        <Offset>6C0</Offset>
                        <Offset>2F0</Offset>
                        <Offset>30</Offset>
                        <Offset>D0</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>42</ID>
                      <Description>"Item"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Byte</VariableType>
                      <Address>gPlayer</Address>
                      <Offsets>
                        <Offset>EC</Offset>
                        <Offset>110</Offset>
                        <Offset>6C0</Offset>
                        <Offset>2F0</Offset>
                        <Offset>30</Offset>
                        <Offset>D0</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>39</ID>
                  <Description>"Pistol Ammo"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>gPlayer</Address>
                  <Offsets>
                    <Offset>BAC</Offset>
                    <Offset>38</Offset>
                    <Offset>1C8</Offset>
                    <Offset>6C8</Offset>
                    <Offset>2F0</Offset>
                    <Offset>30</Offset>
                    <Offset>D0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>3</ID>
          <Description>"[DEBUG]"</Description>
          <Options moHideChildren="1"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>131</ID>
              <Description>"Playtime Session"</Description>
              <VariableType>Double</VariableType>
              <Address>"SHProto-Win64-Shipping.exe"+08876338</Address>
              <Offsets>
                <Offset>C0</Offset>
                <Offset>470</Offset>
                <Offset>150</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>Code :addsd xmm0,[rbx+000000C0]</Description>
      <AddressString>SHProto-Win64-Shipping.exe+1221BED</AddressString>
      <Before>
        <Byte>C0</Byte>
        <Byte>F3</Byte>
        <Byte>0F</Byte>
        <Byte>5A</Byte>
        <Byte>C6</Byte>
      </Before>
      <Actual>
        <Byte>F2</Byte>
        <Byte>0F</Byte>
        <Byte>58</Byte>
        <Byte>83</Byte>
        <Byte>C0</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>F2</Byte>
        <Byte>0F</Byte>
        <Byte>11</Byte>
        <Byte>83</Byte>
        <Byte>C0</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
  <Comments>1.2
- Updated for 1.1.244,738
- Updated for 1.1.242,185
- Initial Release
</Comments>
</CheatTable>
