Phasmophobia

Ask about cheats/tables for single player games here
ShiningCraft
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Jan 01, 2022 7:56 am
Reputation: 0

Re: Phasmophobia

Post by ShiningCraft »

zephirot wrote:
Fri Dec 31, 2021 10:57 pm
Happy new year! ;)

A small update.
- Added a new method for the cursed items (in Scripts to Activate Before Starting Maps)
You should now be able to see only the ones that are really there. Unfortunately, in the code they don't mention the room..
- I updated the Evidence controller and removed "fake" cursed items, this script will be mainly to know the location of the bones (shows now the room) and all random evidences during a game.
- I fixed again the show ghost, seems it was not always possible to see it...

Enjoy :D

Really appreciate this, thank you.


I've noticed a few things, Not sure if I'm using them wrong.

Show ghost v2(flickering) and Show ghost v3 (solid) do not work at all, I don't see ghost through walls or even if I'm in the same room as it. How am I suppose to use this? Do I enable before game, in game, during a hunt?

Insanity level is only client sided or does it actually change values in game for other players? I changed a friend's to 90 (which made it 10% on my screen) but they said it didn't change on their screen.

Crosshair color doesn't work for other people? Mine only changes when I point at an item, will theirs change if they look at something or will it just not change at all?

The immortality doesn't work either, for me or other players. I just die, and don't respawn. I tried solo player option and player 1 option.

This was all while being the host of the game.

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

ShiningCraft wrote:
Sat Jan 01, 2022 8:08 am

Show ghost v2(flickering) and Show ghost v3 (solid) do not work at all, I don't see ghost through walls or even if I'm in the same room as it. How am I suppose to use this? Do I enable before game, in game, during a hunt?
Normally you enable it and the ghost becomes visible to you (possibly others) allowing you to take a photo or whatever but it will not let you see through walls. However, it seems to be broken atm since I am also having that issue (didnt give off any warnings tho). As for the rest most of the cheats are only client-sided and will not be able to affect other players but last time I tried it the sanity code worked on my teammate (that was several patches ago tho and so it might have changed).

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

ShiningCraft wrote:
Sat Jan 01, 2022 8:08 am
zephirot wrote:
Fri Dec 31, 2021 10:57 pm
Happy new year! ;)

A small update.
- Added a new method for the cursed items (in Scripts to Activate Before Starting Maps)
You should now be able to see only the ones that are really there. Unfortunately, in the code they don't mention the room..
- I updated the Evidence controller and removed "fake" cursed items, this script will be mainly to know the location of the bones (shows now the room) and all random evidences during a game.
- I fixed again the show ghost, seems it was not always possible to see it...

Enjoy :D

Really appreciate this, thank you.


I've noticed a few things, Not sure if I'm using them wrong.

Show ghost v2(flickering) and Show ghost v3 (solid) do not work at all, I don't see ghost through walls or even if I'm in the same room as it. How am I suppose to use this? Do I enable before game, in game, during a hunt?

Insanity level is only client sided or does it actually change values in game for other players? I changed a friend's to 90 (which made it 10% on my screen) but they said it didn't change on their screen.

Crosshair color doesn't work for other people? Mine only changes when I point at an item, will theirs change if they look at something or will it just not change at all?

The immortality doesn't work either, for me or other players. I just die, and don't respawn. I tried solo player option and player 1 option.

This was all while being the host of the game.
Hi ShiningCraft!
Thanks for the feedback.

For the show ghost it's just to make it appear (like during a hunt), but you won't see the name or the ghost through walls like some cheats using dll injection.
And you can activate the script whenever you want.
But I think they did something since last update because indeed, sometimes it works and sometimes not.
Not sure what's the trigger but I think it's before or after seeing it normally or a hunt or maybe the difficulty can also have an impact...
Will have to dig more, in the meantime, I will add both scripts (from previous table and this one).

Insanity, crosshair and most of the scripts are just for you indeed. Others won't see anything.

Immortality works perfectly alone, maybe in multi it's not the case anymore even if we are the host (tho in the past it was ok but I didn't try recently)
Attachments
Phasmophobia_Cursed_v1.1.3.CT
(597.7 KiB) Downloaded 483 times

Perritox14
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Jan 06, 2022 4:49 am
Reputation: 0

Re: Phasmophobia

Post by Perritox14 »

Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

Perritox14 wrote:
Thu Jan 06, 2022 4:53 am
Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?
Simple, you just gotta use the right code for the job. Solo player info is for solo player lobbies ONLY and in multi player lobbies you gotta use the multi player info.

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Perritox14 wrote:
Thu Jan 06, 2022 4:53 am
Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?
As lee_terry_jr said, Solo info is only if playing alone.
If in multi, you have to use the Co-Op info script then find your name and click on it to show the scripts that you can use ;)

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

zephirot wrote:
Thu Jan 06, 2022 5:07 pm
Perritox14 wrote:
Thu Jan 06, 2022 4:53 am
Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?
As lee_terry_jr said, Solo info is only if playing alone.
If in multi, you have to use the Co-Op info script then find your name and click on it to show the scripts that you can use ;)
You can actually use the multi player info script at all times regardless if you are in single player or multi player making single player info obsolete (I stopped using solo player info a long time ago) but as I mentioned solo player info is only for playing in a single player game/server.

User avatar
InsecureCheetah
Novice Cheater
Novice Cheater
Posts: 18
Joined: Mon Aug 10, 2020 9:06 pm
Reputation: 21

Re: Phasmophobia

Post by InsecureCheetah »

zephirot wrote:
Thu Jan 06, 2022 5:07 pm
Perritox14 wrote:
Thu Jan 06, 2022 4:53 am
Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?
As lee_terry_jr said, Solo info is only if playing alone.
If in multi, you have to use the Co-Op info script then find your name and click on it to show the scripts that you can use ;)
Hey zephirot, have you tried manipulating OuijaBoard.BreakBoard to prevent the board from breaking?

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Mortal991 wrote:
Fri Jan 07, 2022 9:15 am
zephirot wrote:
Thu Jan 06, 2022 5:07 pm
Perritox14 wrote:
Thu Jan 06, 2022 4:53 am
Hi. For some reason in Multi-player server the Player solo info only takes the information of the last person to appear in the Van(in each contract). Is there anyway to fix this?
As lee_terry_jr said, Solo info is only if playing alone.
If in multi, you have to use the Co-Op info script then find your name and click on it to show the scripts that you can use ;)
Hey zephirot, have you tried manipulating OuijaBoard.BreakBoard to prevent the board from breaking?
Hi Mortal991!
I just had a look, pretty easy to avoid it to break as the instruction to do it is clearly visible
Image
But even if we can avoid it to break, maybe we wouldn't be able to use it again.
I think there is a timer too between questions, 1 or 2 minutes, after that you can't do anything, but I will search ;)

User avatar
InsecureCheetah
Novice Cheater
Novice Cheater
Posts: 18
Joined: Mon Aug 10, 2020 9:06 pm
Reputation: 21

Re: Phasmophobia

Post by InsecureCheetah »

Seems like it'll still break, but I managed to stop it from calling the cursed hunt (GhostAI.ChangeState)

zephirot
Expert Cheater
Expert Cheater
Posts: 72
Joined: Wed Oct 28, 2020 8:48 pm
Reputation: 50

Re: Phasmophobia

Post by zephirot »

Mortal991 wrote:
Sat Jan 08, 2022 3:47 am
Seems like it'll still break, but I managed to stop it from calling the cursed hunt (GhostAI.ChangeState)
If you try to replace the line a bit before cmp byte ptr [rdi+31],00 by something else like cmp byte ptr [rdi+31],01 or cmp byte ptr [rdi+31],02 you can avoid it to break.
The next one below cmp byte ptr [rdi+32],00 could also be changed.
But if you ask the question "Hide and seek" to trigger the hunt, it won't break but you can't ask questions later it seems.

User avatar
InsecureCheetah
Novice Cheater
Novice Cheater
Posts: 18
Joined: Mon Aug 10, 2020 9:06 pm
Reputation: 21

Re: Phasmophobia

Post by InsecureCheetah »

zephirot wrote:
Sat Jan 08, 2022 6:44 pm
Mortal991 wrote:
Sat Jan 08, 2022 3:47 am
Seems like it'll still break, but I managed to stop it from calling the cursed hunt (GhostAI.ChangeState)
If you try to replace the line a bit before cmp byte ptr [rdi+31],00 by something else like cmp byte ptr [rdi+31],01 or cmp byte ptr [rdi+31],02 you can avoid it to break.
The next one below cmp byte ptr [rdi+32],00 could also be changed.
But if you ask the question "Hide and seek" to trigger the hunt, it won't break but you can't ask questions later it seems.
yeah you are right, and yeah it's kinda useless tbh

User avatar
InsecureCheetah
Novice Cheater
Novice Cheater
Posts: 18
Joined: Mon Aug 10, 2020 9:06 pm
Reputation: 21

Re: Phasmophobia

Post by InsecureCheetah »

Infinite Stamina , Salt , Pictures , Walk/Sprint Hook and Throw Strength Hook for Update 0.5.1.1 (Everything else seems to work just fine)
Spoiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>70101</ID>
      <Description>"Infinite Stamina"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2022-01-11

}

define(address,PlayerStamina.StartDraining)
define(bytes,80 79 3F 00 75 0F)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,PlayerStamina.StartDraining)

label(code)
label(return)

newmem:

code:
  cmp byte ptr [rcx+3F],00
  jmp GameAssembly.dll+2512C75
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

address:
  db bytes
  // cmp byte ptr [rcx+3F],00
  // jne GameAssembly.dll+2512C75

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerStamina.StartDraining

GameAssembly.dll+2512C56: CC                    - int 3 
GameAssembly.dll+2512C57: CC                    - int 3 
GameAssembly.dll+2512C58: CC                    - int 3 
GameAssembly.dll+2512C59: CC                    - int 3 
GameAssembly.dll+2512C5A: CC                    - int 3 
GameAssembly.dll+2512C5B: CC                    - int 3 
GameAssembly.dll+2512C5C: CC                    - int 3 
GameAssembly.dll+2512C5D: CC                    - int 3 
GameAssembly.dll+2512C5E: CC                    - int 3 
GameAssembly.dll+2512C5F: CC                    - int 3 
// ---------- INJECTING HERE ----------
PlayerStamina.StartDraining: 80 79 3F 00           - cmp byte ptr [rcx+3F],00
// ---------- DONE INJECTING  ----------
GameAssembly.dll+2512C64: 75 0F                 - jne GameAssembly.dll+2512C75
GameAssembly.dll+2512C66: C6 41 3C 01           - mov byte ptr [rcx+3C],01
GameAssembly.dll+2512C6A: C6 41 40 00           - mov byte ptr [rcx+40],00
GameAssembly.dll+2512C6E: C7 41 54 00 00 00 40  - mov [rcx+54],40000000
GameAssembly.dll+2512C75: C3                    - ret 
GameAssembly.dll+2512C76: CC                    - int 3 
GameAssembly.dll+2512C77: CC                    - int 3 
GameAssembly.dll+2512C78: CC                    - int 3 
GameAssembly.dll+2512C79: CC                    - int 3 
GameAssembly.dll+2512C7A: CC                    - int 3 
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>70102</ID>
      <Description>"Infinite Salt (only 9 visible spots max)"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2022-01-11
}

define(address,SaltShaker.SpawnSalt+8E)
define(bytes,FF C8 89 47 50)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,SaltShaker.SpawnSalt+8E)

label(code)
label(return)

newmem:

code:
  //dec eax
  mov [rdi+50],eax
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // dec eax
  // mov [rdi+50],eax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1DA12FE

GameAssembly.dll+1DA12D3: 45 33 C0                 - xor r8d,r8d
GameAssembly.dll+1DA12D6: 48 8B 4D E7              - mov rcx,[rbp-19]
GameAssembly.dll+1DA12DA: E8 A1 D6 8E FF           - call ੭੧੭ੱ੧੯ੲ੨੯੫੪.੩ੳ੭੨੯੩੭ੰੲੴ੫
GameAssembly.dll+1DA12DF: 84 C0                    - test al,al
GameAssembly.dll+1DA12E1: 0F 84 1E 03 00 00        - je GameAssembly.dll+1DA1605
GameAssembly.dll+1DA12E7: 8B 47 50                 - mov eax,[rdi+50]
GameAssembly.dll+1DA12EA: 85 C0                    - test eax,eax
GameAssembly.dll+1DA12EC: 0F 8E 13 03 00 00        - jng GameAssembly.dll+1DA1605
GameAssembly.dll+1DA12F2: 4C 89 BC 24 E0 00 00 00  - mov [rsp+000000E0],r15
GameAssembly.dll+1DA12FA: 48 8B 4F 28              - mov rcx,[rdi+28]
// ---------- INJECTING HERE ----------
GameAssembly.dll+1DA12FE: FF C8                    - dec eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1DA1300: 89 47 50                 - mov [rdi+50],eax
GameAssembly.dll+1DA1303: 48 85 C9                 - test rcx,rcx
GameAssembly.dll+1DA1306: 0F 84 17 03 00 00        - je GameAssembly.dll+1DA1623
GameAssembly.dll+1DA130C: 33 D2                    - xor edx,edx
GameAssembly.dll+1DA130E: E8 6D 66 27 FF           - call UnityEngine.AudioSource.Play
GameAssembly.dll+1DA1313: 80 3D 78 40 EA 01 00     - cmp byte ptr [GameAssembly.dll+3C45392],00
GameAssembly.dll+1DA131A: 75 12                    - jne GameAssembly.dll+1DA132E
GameAssembly.dll+1DA131C: 8B 0D 8A 7F 4B 01        - mov ecx,[GameAssembly.dll+32592AC]
GameAssembly.dll+1DA1322: E8 19 91 35 FE           - call GameAssembly.dll+FA440
GameAssembly.dll+1DA1327: C6 05 64 40 EA 01 01     - mov byte ptr [GameAssembly.dll+3C45392],01
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>


Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>70103</ID>
      <Description>"Infinite Pictures"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2022-01-11

}

define(address,HandCamera.NetworkTakePhoto+6)
define(bytes,83 79 68 00 48 8B D9)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,HandCamera.NetworkTakePhoto+6)

label(code)
label(return)

newmem:
mov [rcx+68],#10
jmp code

code:
  cmp dword ptr [rcx+68],00
  mov rbx,rcx
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]

address:
  db bytes
  // cmp dword ptr [rcx+68],00
  // mov rbx,rcx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1453A16

GameAssembly.dll+1453A01: 48 83 C4 20     - add rsp,20
GameAssembly.dll+1453A05: 5F              - pop rdi
GameAssembly.dll+1453A06: C3              - ret 
GameAssembly.dll+1453A07: E8 A4 6B CA FE  - call GameAssembly.dll+FA5B0
GameAssembly.dll+1453A0C: CC              - int 3 
GameAssembly.dll+1453A0D: CC              - int 3 
GameAssembly.dll+1453A0E: CC              - int 3 
GameAssembly.dll+1453A0F: CC              - int 3 
HandCamera.NetworkTakePhoto: 40 53           - push rbx
GameAssembly.dll+1453A12: 48 83 EC 20     - sub rsp,20
// ---------- INJECTING HERE ----------
GameAssembly.dll+1453A16: 83 79 68 00     - cmp dword ptr [rcx+68],00
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1453A1A: 48 8B D9        - mov rbx,rcx
GameAssembly.dll+1453A1D: C6 41 64 00     - mov byte ptr [rcx+64],00
GameAssembly.dll+1453A21: 7E 4C           - jle GameAssembly.dll+1453A6F
GameAssembly.dll+1453A23: 33 D2           - xor edx,edx
GameAssembly.dll+1453A25: E8 96 58 00 00  - call HandCamera.੭ੱ੯ੰ੭ੱ੬੥੭ੲ੨
GameAssembly.dll+1453A2A: 45 33 C0        - xor r8d,r8d
GameAssembly.dll+1453A2D: 48 8B D0        - mov rdx,rax
GameAssembly.dll+1453A30: 48 8B CB        - mov rcx,rbx
GameAssembly.dll+1453A33: E8 88 77 6B FF  - call UnityEngine.MonoBehaviour.StartCoroutine
GameAssembly.dll+1453A38: 48 8B 4B 58     - mov rcx,[rbx+58]
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>44292</ID>
      <Description>"Walk/Sprint Hook"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2021-09-20
  Author : joeyc

  This script does blah blah blah
}

define(walkaddress,FirstPersonController.GetInput+3E)
define(walkbytes,F3 0F 10 05 8A 1A DD 02)
define(sprintaddress,FirstPersonController.GetInput+34)
define(sprintbytes,F3 0F 10 05 98 1A DD 02)

[ENABLE]

assert(walkaddress,walkbytes)
alloc(walknewmem,$1000,FirstPersonController.GetInput+3E)
assert(sprintaddress,sprintbytes)
alloc(sprintnewmem,$1000,FirstPersonController.GetInput+34)
alloc(walk_speed,8)
alloc(sprint_speed,8)

label(walkcode)
label(walkreturn)
label(sprintcode)
label(sprintreturn)
registersymbol(sprint_speed walk_speed)

sprint_speed:
dq (float)3

sprintnewmem:

sprintcode:
  movss xmm0,[sprint_speed]
  jmp sprintreturn

sprintaddress:
  jmp sprintnewmem
  nop 3
sprintreturn:

///////////////////////////////////////////////////////////

walk_speed:
dq (float)1.6

walknewmem:

walkcode:
  movss xmm0,[walk_speed]
  jmp walkreturn

walkaddress:
  jmp walknewmem
  nop 3
walkreturn:

[DISABLE]

sprintaddress:
  db sprintbytes
  // movss xmm0,[GameAssembly.dll+2AF7010]
walkaddress:
  db walkbytes
  // movss xmm0,[GameAssembly.dll+2AF700C]

unregistersymbol(sprint_speed walk_speed)
dealloc(newmem sprint_speed walk_speed)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+349A54

GameAssembly.dll+349A2A: 80 3D 9B 16 1B 03 00           - cmp byte ptr [GameAssembly.dll+34FB0CC],00
GameAssembly.dll+349A31: 48 8B D9                       - mov rbx,rcx
GameAssembly.dll+349A34: 75 12                          - jne GameAssembly.dll+349A48
GameAssembly.dll+349A36: 8B 0D 10 D9 85 02              - mov ecx,[GameAssembly.dll+2BA734C]
GameAssembly.dll+349A3C: E8 5F B1 DA FF                 - call GameAssembly.dll+F4BA0
GameAssembly.dll+349A41: C6 05 84 16 1B 03 01           - mov byte ptr [GameAssembly.dll+34FB0CC],01
GameAssembly.dll+349A48: 80 7B 19 00                    - cmp byte ptr [rbx+19],00
GameAssembly.dll+349A4C: 75 10                          - jne GameAssembly.dll+349A5E
GameAssembly.dll+349A4E: 80 7B 1A 00                    - cmp byte ptr [rbx+1A],00
GameAssembly.dll+349A52: 74 0A                          - je GameAssembly.dll+349A5E
// ---------- INJECTING HERE ----------
GameAssembly.dll+349A54: F3 0F 10 05 B4 D5 7A 02        - movss xmm0,[GameAssembly.dll+2AF7010]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+349A5C: EB 08                          - jmp GameAssembly.dll+349A66
GameAssembly.dll+349A5E: F3 0F 10 05 A6 D5 7A 02        - movss xmm0,[GameAssembly.dll+2AF700C]
GameAssembly.dll+349A66: F3 0F 11 83 B8 00 00 00        - movss [rbx+000000B8],xmm0
GameAssembly.dll+349A6E: 80 7B 18 00                    - cmp byte ptr [rbx+18],00
GameAssembly.dll+349A72: 74 0A                          - je GameAssembly.dll+349A7E
GameAssembly.dll+349A74: C7 83 B8 00 00 00 00 00 00 00  - mov [rbx+000000B8],00000000
GameAssembly.dll+349A7E: 33 D2                          - xor edx,edx
GameAssembly.dll+349A80: 48 8D 4B 78                    - lea rcx,[rbx+78]
GameAssembly.dll+349A84: E8 77 2B C6 00                 - call GameAssembly.dll+FAC600
GameAssembly.dll+349A89: 0F 2F 05 D0 D4 7A 02           - comiss xmm0,[GameAssembly.dll+2AF6F60]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1479</ID>
          <Description>"Walk Speed"</Description>
          <LastState Value="1.600000024" RealAddress="7FF8A69A1000"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>walk_speed</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>1481</ID>
          <Description>"Sprint Speed"</Description>
          <LastState Value="3" RealAddress="7FF8A69A1008"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>sprint_speed</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>44293</ID>
      <Description>"Throw Strength Hook"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2021-09-20
  Author : joeyc

  This script does blah blah blah
}

define(address,PCPropGrab.Drop+917)
define(bytes,F3 0F 10 15 B5 4E F6 01)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,PCPropGrab.Drop+875)
alloc(throw_strength,8)

label(code)
label(return)

throw_strength:
dq (float)0.150000006

newmem:

code:
  movss xmm2,[throw_strength]
  jmp return

address:
  jmp newmem
  nop 3
return:
registersymbol(throw_strength)

[DISABLE]

address:
  db bytes
  // movss xmm2,[GameAssembly.dll+2AF7010]

unregistersymbol(throw_strength)
dealloc(newmem throw_strength)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+182CD88

GameAssembly.dll+182CD5B: 48 8B D0                 - mov rdx,rax
GameAssembly.dll+182CD5E: E8 5D 77 30 FF           - call UnityEngine.Transform.get_forward
GameAssembly.dll+182CD63: 48 8B 0D D6 E5 CE 01     - mov rcx,[GameAssembly.dll+351B340]
GameAssembly.dll+182CD6A: F2 0F 10 30              - movsd xmm6,[rax]
GameAssembly.dll+182CD6E: F6 81 2F 01 00 00 02     - test byte ptr [rcx+0000012F],02
GameAssembly.dll+182CD75: 44 8B 70 08              - mov r14d,[rax+08]
GameAssembly.dll+182CD79: 74 0D                    - je GameAssembly.dll+182CD88
GameAssembly.dll+182CD7B: 39 B9 E0 00 00 00        - cmp [rcx+000000E0],edi
GameAssembly.dll+182CD81: 75 05                    - jne GameAssembly.dll+182CD88
GameAssembly.dll+182CD83: E8 F8 CB 84 FE           - call GameAssembly.il2cpp_runtime_class_init
// ---------- INJECTING HERE ----------
GameAssembly.dll+182CD88: F3 0F 10 15 80 A2 2C 01  - movss xmm2,[GameAssembly.dll+2AF7010]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+182CD90: 48 8D 55 F7              - lea rdx,[rbp-09]
GameAssembly.dll+182CD94: 45 33 C9                 - xor r9d,r9d
GameAssembly.dll+182CD97: F2 0F 11 75 F7           - movsd [rbp-09],xmm6
GameAssembly.dll+182CD9C: 48 8D 4D 07              - lea rcx,[rbp+07]
GameAssembly.dll+182CDA0: 44 89 75 FF              - mov [rbp-01],r14d
GameAssembly.dll+182CDA4: E8 F7 2B 78 FF           - call UnityEngine.Vector3.op_Multiply
GameAssembly.dll+182CDA9: 48 85 F6                 - test rsi,rsi
GameAssembly.dll+182CDAC: 0F 84 B0 01 00 00        - je GameAssembly.dll+182CF62
GameAssembly.dll+182CDB2: F2 0F 10 00              - movsd xmm0,[rax]
GameAssembly.dll+182CDB6: 48 8D 55 F7              - lea rdx,[rbp-09]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1507</ID>
          <Description>"Throw Strength"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>throw_strength</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Item store sell hack and Player Current Room
Spoiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>44288</ID>
      <Description>"Item Store Sell Hack"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2021-09-20
  Author : joeyc

  This script does blah blah blah
}

define(address,StoreManager.SellButton+E8)
define(bytes,8B 40 18 4C 8B 05 A6 44 21 02)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,StoreManager.SellButton+E8)
alloc(sell_amount,10)

label(code)
label(return)

sell_amount:
dq 0

newmem:
push rsi
mov rsi,[sell_amount]
mov [rax+18],rsi
pop rsi
jmp code

code:
  mov eax,[rax+18]
  mov r8,[GameAssembly.dll+3C68878]
  jmp return

address:
  jmp newmem
  nop 5
return:
registersymbol(sell_amount)

[DISABLE]

address:
  db bytes
  // mov eax,[rax+18]
  // mov r8,[GameAssembly.dll+353A948]

unregistersymbol(sell_amount)
dealloc(newmem sell_amount)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+15DE8D8

GameAssembly.dll+15DE8B0: 8D 50 FF              - lea edx,[rax-01]
GameAssembly.dll+15DE8B3: E8 18 1B 69 00        - call GameAssembly.dll+1C703D0
GameAssembly.dll+15DE8B8: 4C 8B 05 59 B0 F6 01  - mov r8,[GameAssembly.dll+3549918]
GameAssembly.dll+15DE8BF: 33 D2                 - xor edx,edx
GameAssembly.dll+15DE8C1: 48 8B 0D 98 AE F3 01  - mov rcx,[GameAssembly.dll+3519760]
GameAssembly.dll+15DE8C8: E8 B3 D7 EF FF        - call GameAssembly.dll+14DC080
GameAssembly.dll+15DE8CD: 8B C8                 - mov ecx,eax
GameAssembly.dll+15DE8CF: 48 8B 43 28           - mov rax,[rbx+28]
GameAssembly.dll+15DE8D3: 48 85 C0              - test rax,rax
GameAssembly.dll+15DE8D6: 74 44                 - je GameAssembly.dll+15DE91C
// ---------- INJECTING HERE ----------
GameAssembly.dll+15DE8D8: 8B 40 18              - mov eax,[rax+18]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+15DE8DB: 4C 8B 05 66 C0 F5 01  - mov r8,[GameAssembly.dll+353A948]
GameAssembly.dll+15DE8E2: 99                    - cdq 
GameAssembly.dll+15DE8E3: 2B C2                 - sub eax,edx
GameAssembly.dll+15DE8E5: D1 F8                 - sar eax,1
GameAssembly.dll+15DE8E7: 8D 14 01              - lea edx,[rcx+rax]
GameAssembly.dll+15DE8EA: 48 8B 0D 6F AE F3 01  - mov rcx,[GameAssembly.dll+3519760]
GameAssembly.dll+15DE8F1: E8 DA 1A 69 00        - call GameAssembly.dll+1C703D0
GameAssembly.dll+15DE8F6: 33 D2                 - xor edx,edx
GameAssembly.dll+15DE8F8: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+15DE8FB: E8 D0 62 00 00        - call StoreManager.UpdatePlayerMoneyText
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1503</ID>
          <Description>"Sell Price"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>sell_amount</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>44328</ID>
      <Description>"Player Current Room Hook"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : Phasmophobia.exe
  Version: 
  Date   : 2022-01-11
}

define(address,Player.Update+B7)
define(bytes,48 8B BB 48 01 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Player.Update+B7)
alloc(find_room,8)

label(code)
label(return)
registersymbol(find_room)

find_room:
dq 0

newmem:
mov [find_room],rbx
jmp code

code:
  mov rdi,[rbx+00000148]
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]

address:
  db bytes
  // mov rax,[rbx+18]
  // mov [rsp+50],rdi

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+16CFBC7

GameAssembly.dll+16CFBA1: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+16CFBA8: 75 05                 - jne GameAssembly.dll+16CFBAF
GameAssembly.dll+16CFBAA: E8 01 F5 9A FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+16CFBAF: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+16CFBB2: 33 D2                 - xor edx,edx
GameAssembly.dll+16CFBB4: 48 8B CF              - mov rcx,rdi
GameAssembly.dll+16CFBB7: E8 B4 DA 43 FF        - call UnityEngine.Object.op_Inequality
GameAssembly.dll+16CFBBC: 84 C0                 - test al,al
GameAssembly.dll+16CFBBE: 74 57                 - je GameAssembly.dll+16CFC17
GameAssembly.dll+16CFBC0: 48 8B 93 F0 00 00 00  - mov rdx,[rbx+000000F0]
// ---------- INJECTING HERE ----------
GameAssembly.dll+16CFBC7: 48 8B BB 48 01 00 00  - mov rdi,[rbx+00000148]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+16CFBCE: 48 85 D2              - test rdx,rdx
GameAssembly.dll+16CFBD1: 74 4F                 - je GameAssembly.dll+16CFC22
GameAssembly.dll+16CFBD3: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+16CFBD6: 48 8D 4C 24 30        - lea rcx,[rsp+30]
GameAssembly.dll+16CFBDB: E8 40 3B 91 FF        - call UnityEngine.CharacterController.get_velocity
GameAssembly.dll+16CFBE0: 33 D2                 - xor edx,edx
GameAssembly.dll+16CFBE2: 48 8D 4C 24 20        - lea rcx,[rsp+20]
GameAssembly.dll+16CFBE7: F2 0F 10 00           - movsd xmm0,[rax]
GameAssembly.dll+16CFBEB: F2 0F 11 44 24 20     - movsd [rsp+20],xmm0
GameAssembly.dll+16CFBF1: 8B 40 08              - mov eax,[rax+08]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>44329</ID>
          <Description>"Current Room"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>String</VariableType>
          <Length>25</Length>
          <Unicode>1</Unicode>
          <CodePage>0</CodePage>
          <ZeroTerminate>1</ZeroTerminate>
          <Address>find_room</Address>
          <Offsets>
            <Offset>14</Offset>
            <Offset>58</Offset>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Cursed Items Anti-Break/Hunt (MusicBox/OuijaBoard/Haunted Mirror) for whoever needs it.
Spoiler
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>70099</ID>
<Description>"Cursed Items Anti-Break (Host Only)"</Description>
<LastState/>
<Color>0080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">{ Game : Phasmophobia.exe
Version:
Date : 2022-01-11

}

define(address,MusicBox.BreakMusicBox+2B)
define(bytes,80 7B 31 00 0F 85 EA 01 00 00)

define(address1,OuijaBoard.BreakBoard+24)
define(bytes1,80 7F 31 00 0F 85 02 06 00 00)

define(address2,HauntedMirror.BreakItem+24)
define(bytes2,80 7B 31 00 0F 85 F2 01 00 00)


[ENABLE]
//------------------------------------------------------------
assert(address,bytes)
alloc(newmem,$100,MusicBox.BreakMusicBox+2B)

label(code)
label(return)

newmem:

code:
cmp byte ptr [rbx+31],02
jne GameAssembly.dll+1682CEF
jmp return

address:
jmp newmem
nop 5
return:

//------------------------------------------------------------
assert(address1,bytes1)
alloc(newmem1,$100,OuijaBoard.BreakBoard+24)

label(code1)
label(return1)

newmem1:

code1:
cmp byte ptr [rdi+31],02
jne GameAssembly.dll+141EE60
jmp return1

address1:
jmp newmem
nop 5
return1:
//------------------------------------------------------------
assert(address2,bytes2)
alloc(newmem2,$100,HauntedMirror.BreakItem+24)

label(code2)
label(return2)

newmem2:

code2:
cmp byte ptr [rbx+31],01
jne GameAssembly.dll+20A6AE0
jmp return2

address2:
jmp newmem2
nop 5
return2:

[DISABLE]

address:
db bytes

address1:
db bytes1

address2:
db bytes2
// cmp byte ptr [rbx+31],00
// jne GameAssembly.dll+1EC881F

dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1EC862B

MusicBox.BreakMusicBox: 48 89 5C 24 18 - mov [rsp+18],rbx
GameAssembly.dll+1EC8605: 57 - push rdi
GameAssembly.dll+1EC8606: 48 83 EC 50 - sub rsp,50
GameAssembly.dll+1EC860A: 80 3D 2A 50 D8 01 00 - cmp byte ptr [GameAssembly.dll+3C4D63B],00
GameAssembly.dll+1EC8611: 48 8B D9 - mov rbx,rcx
GameAssembly.dll+1EC8614: 0F B6 FA - movzx edi,dl
GameAssembly.dll+1EC8617: 75 12 - jne GameAssembly.dll+1EC862B
GameAssembly.dll+1EC8619: 8B 0D 85 58 41 01 - mov ecx,[GameAssembly.dll+32DDEA4]
GameAssembly.dll+1EC861F: E8 EC 8E 22 FE - call GameAssembly.dll+F1510
GameAssembly.dll+1EC8624: C6 05 10 50 D8 01 01 - mov byte ptr [GameAssembly.dll+3C4D63B],01
// ---------- INJECTING HERE ----------
GameAssembly.dll+1EC862B: 80 7B 31 00 - cmp byte ptr [rbx+31],00
// ---------- DONE INJECTING ----------
GameAssembly.dll+1EC862F: 0F 85 EA 01 00 00 - jne GameAssembly.dll+1EC881F
GameAssembly.dll+1EC8635: 80 7B 32 00 - cmp byte ptr [rbx+32],00
GameAssembly.dll+1EC8639: 0F 84 E0 01 00 00 - je GameAssembly.dll+1EC881F
GameAssembly.dll+1EC863F: 48 89 6C 24 60 - mov [rsp+60],rbp
GameAssembly.dll+1EC8644: 48 89 74 24 68 - mov [rsp+68],rsi
GameAssembly.dll+1EC8649: 48 8B 43 38 - mov rax,[rbx+38]
GameAssembly.dll+1EC864D: 48 85 C0 - test rax,rax
GameAssembly.dll+1EC8650: 0F 84 D4 01 00 00 - je GameAssembly.dll+1EC882A
GameAssembly.dll+1EC8656: 48 8B 50 30 - mov rdx,[rax+30]
GameAssembly.dll+1EC865A: 48 85 D2 - test rdx,rdx
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>

[/code]
Last edited by InsecureCheetah on Tue Jan 11, 2022 10:56 am, edited 15 times in total.

lee_terry_jr
Expert Cheater
Expert Cheater
Posts: 103
Joined: Wed Oct 11, 2017 8:35 am
Reputation: 4

Re: Phasmophobia

Post by lee_terry_jr »

Mortal991 wrote:
Tue Jan 11, 2022 12:48 am
Infinite Stamina , Salt , Pictures for Update 0.5.1.1
I had noticed the salt and the photos did not work but was not sure it was not a temp bug (sometimes cheat engine does that and the only way I have found to tell for sure is test at least twice). I figured it was because the update broke things but wanted to rule that other possibility out before mentioning it here just in case. As far as stamina I did not notice that it was not infinite when I activated the movement codes (might have just missed it). The fact that photos and salt are broken however I did notice and that means it is an issue from the update (if multiple people are having the issue another test to confirm it is broken from the update instead of temp issue is not needed).

User avatar
InsecureCheetah
Novice Cheater
Novice Cheater
Posts: 18
Joined: Mon Aug 10, 2020 9:06 pm
Reputation: 21

Re: Phasmophobia

Post by InsecureCheetah »

lee_terry_jr wrote:
Tue Jan 11, 2022 1:41 am
Mortal991 wrote:
Tue Jan 11, 2022 12:48 am
Infinite Stamina , Salt , Pictures for Update 0.5.1.1
I had noticed the salt and the photos did not work but was not sure it was not a temp bug (sometimes cheat engine does that and the only way I have found to tell for sure is test at least twice). I figured it was because the update broke things but wanted to rule that other possibility out before mentioning it here just in case. As far as stamina I did not notice that it was not infinite when I activated the movement codes (might have just missed it). The fact that photos and salt are broken however I did notice and that means it is an issue from the update (if multiple people are having the issue another test to confirm it is broken from the update instead of temp issue is not needed).
The offsets were changed, so yes it was an issue from the update

Post Reply

Who is online

Users browsing this forum: Bing [Bot], johnsmithie22, KLILLY84@GMAIL.COM, YandexBot