You have to " map " the page table structure you want to edit to a virtual address, and then write at that virtual address. Indeed my friend , you cannot write directly to physical memory anymore.
If your architecture supports it (Intel, recent ARMS..) , you can do " recursive mapping " , which permanently and automatically maps all your page table structures, reserving a slice of the virtual address space for all structures.
How is this recursive mapping achieved? What is the process involved?