How does hibernating an app work technically?
This is a citation from excellent explanation by lioux on XDA:

Greenify uses the Android command am to stop an app and applies this command again if the app is awakened by any action whatsoever. That's what hibernating means. Hibernated app will no longer start during phone boot, respond to registered intents or be triggered by alarms from the system. Everything it does is temporary. The am command does not touch the installed files or any configuration information.