A QR code encodes data in a 2D grid of black and white modules (pixels). The code contains fixed patterns for alignment and timing, plus data regions that store your actual information along with error correction codes.
QR codes use Reed-Solomon error correction which adds redundant data that allows the decoder to reconstruct damaged or obscured portions. This means, depending on the level of error correction, a QR code can still be read even if upwards of 30% of the code is unable to be read.
The error correction means we can introduce some noise into the code without losing the ability to read the code. For our purposes, this means injecting the centre of the code with a module pattern that looks like human-readable text. The scanner of course sees this section as noise and ignores it, but because of the error correction the code can still be read.