Advertisement
imbuedl

Why we lose the invisible pot with some heap manips

Dec 21st, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. Actor+0x138 is a 4 byte variable that is a pointer to the actors main function. The game uses this to determine whether or not the actor is alive and if link is still allowed to hold it. The whole point of culling the actor is to keep the room change from “killing” the pot, which would 0 pot+0x138.
  2.  
  3. If at any point, some data overwrites +0x138 that is null, the link will drop his arms cause he thinks the actor is dead
  4.  
  5. Imbued12/02/2019
  6. oh I see, so really in a sense we're lucky that no 0 overwrites pot + 0x138 when we enter room 2
  7. or else the current setup wouldn't work
  8. and will it only get rid of the invisible pot is pot+0x138 = 0x00000000 (i.e. all 4 bytes are 0)?
  9.  
  10. Fig12/02/2019
  11. Correct, we are making that gamble everytime we do srm. I’d say it’s not too common for it to be 0
  12.  
  13. You know how current setup crashes with the scrub nut? Previous allocation strat would 0 out the main function pointer instead of crash, which is why some people were reporting that he would lower his arms
  14. Yeah that’s the only check to keep links hands up
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement