Simple Patch Craft - Tutorial

posted: August 28, 2026

idk i were just looking around my library when i saw helltaker and got memory flash-backs when i used to suck at it and suffer from limited movement that needs a “brain” to solve. so it’s kinda personal vendetta. anyways i’ll make this into a simple dimple tutorial cause why not.

## 0x01 - Finding the “Moves” value with-in the memory

Tools i used are: Cheat-Engine, Python, Bytes Calculator, And HellTaker Obviously.

so start by launching the game and getting into one of the level’s. open the Cheat-Engine and attach it to HellTaker. now to the real part.

start by putting the 4bytes option [u’ll know why we used 4 bytes later] & first scan with putting the value of the moves from the level and press first scan.

change the moves value in game and put the new value in cheat-engine and click next-scan you should be left with 2 values.

to narrow it more further just repeat the “change value and next scan” process and u should be left with 1 value !. for me the address is

7FE9C4F48D54

## 0x02 - Getting exact pointer to the value for long-term patch

Now select that value. and CTRL+F6 on it. it should open a Cheat-Engine Debugger to the process. while on that Debbuger just open up the game once more and change the value again.

now go back to your Debugger you should get a address + raw_bytes. an-d pretty much we done that’s bytes we need to patch for infinite movement’s

How the Debugger should look for you.

**## 0x03 - Crafting the patch it self dan dan dan~

so the 41 89 87 54 01 00 00 is the raw bytes sequence of movsxd rax, dword ptr [r15+0x154] you have to know that while RE a software.

what that does is copy’s the 4bytes from (r15 + 0x154) and paste it to register rax why i said 4 bytes ?

cause movsxd is a 4 bytes operator and that’s we used 4bytes with CE. anyways we patch the next line which is the FF C8 Bytes [eax is just 4bytes of rax, so it takes the health value only] subtracts 1 from it with FF C8 and return’s the new health to the main value.

Line needs to be patched

NOW WE HAVE THE BYTES THAT NEED TO BE PATCHED. LET’S COOK THE PATCH.

**## 0x03 - The Bytes Patch To NOP

our patch has to NOP the FF C8. why so ?

well take it like this. if we remove the function that takes our health, it makes our health fixed value right ?

and yea that’s right. so we simply cook something with C Or pymem if u prefer python [i do].

so since it’s a game i won’t be playing and just getting my vedetta against it. i sent the bytes that needs to be patched to the AI and gave him instruction’s of what has to be patched.

it’s not that hard if u know things about stack’s and how register’s work + python u can make it ur own. anyways i’ll leave the Patch File donloadable down this blog.

and yea we set the FF C8 into 90 90 which is the NOP. and that’s all. now you run the patch every time you launch the game and play with infinite health !

THE NOP PY FIANL PATCH

AND YEA HAPPY PLAYING !

Download the patch