Commit c0d5714
committed
v2.x64: add endbr64 (0xF3 0x0F 0x1E 0xFA) at the start of every function prologue
Necessary if the binary was linked with glibc compiled with CET (Control-flow Enforcement Technology) support, which adds a
.note.gnu.property indicating IBT (Indirect Branch Tracking) is required. When __libc_start_main calls main via an indirect
call, the CPU checks that the target starts with endbr64. Since main started with push rbp instead, the CPU raised a Control
Protection fault = SIGSEGV (exit code 11).1 parent 12f6554 commit c0d5714
1 file changed
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
129 | 134 | | |
130 | 135 | | |
131 | 136 | | |
| |||
0 commit comments