Protecting Programs Against Memory Violation In Hardware
The C and C++ programming languages do not prevent ouf-of-bounds memory access, consequently leaving room to attacks such as buffer overflow and buffer overread. There are several techniques to make C programs safe. However these methods are usually implemented via software and tend to cause performance degradation. Our work aims at a hardware solution which is able to check bounds efficiently, by providing novel instructions that are aware of a buffer's valid memory range. Whenever a violation is found the program will terminate, a typical hardware exception behavior.