Careful-Packing is an anti-tampering software protection technique that uses trusted computing to protect critical sections of code. It works by encrypting critical sections when not in use and only decrypting them in a trusted region when execution is needed. This prevents attackers from tampering with the code offline or online. The approach addresses challenges regarding denial of service attacks, concurrency, installation, and booting by techniques like heartbeat proofs, reference counting threads, sealed key installation, and encrypted key booting. An evaluation of a proof of concept keystroke monitoring implementation showed around 5% overhead for a single instance and linear scaling for multiple parallel instances.