у кого есть 64-х битная система с установленным линуксом версии 2.6.x,
выполните следующую последовательность действий и отпишитесь, что получилось в итоге
1. пишем программу
#include <unistd.h>
int main() {
for (;;) pause();
return 0;
}
2. запускаем ее, через GDB подключаемся к соответствующему процессу
(gdb) attach <PID>
3. выравниваем текущий RIP по границе страницы (4096 байт) в меньшую сторону
(gdb) set $rip = <новый RIP>
4. выполняем одну инструкцию
(gdb) stepi
какое значение имеет RIP после выполнения?