Having covered the basics in the previous chapter, we now know how to look inside a .NET program. This is all we need to do for some very basic protections, like the hardcoded serial crackme we looked at. A lot of times, however, we will need to do more than just look. We will need to change the program as well. This is known as patching (as you might well know), and is useful for both cracking and other reverse engineering (adding functionality for example). There are some difficulties in doing this, namely finding the right place in the file and figuring out what bytes to put there. The target for this chapter has once again been made by x-Bi0dESC and can be found in the attachment that comes with this paper.