According to this article, a c program has these sections:
- Text segment (i.e. instructions)
 - Initialized data segment
 - Uninitialized data segment (bss)
 - Heap
 - Stack
 
The "Text segment" (or "instruction segment") stores the executable instructions of the program.
Is it possible to write a c program that access this memory region and that makes changes on it, changing the instructions that the program will execute?