aslr.patch
来自「MINIX操作系统的内核修改补丁」· PATCH 代码 · 共 33 行
PATCH
33 行
diff -c -r src.clean/servers/pm/exec.c src/servers/pm/exec.c*** src.clean/servers/pm/exec.c Thu Nov 13 17:54:55 2008--- src/servers/pm/exec.c Thu Nov 13 21:21:59 2008****************** 64,69 ****--- 64,72 ---- vir_clicks sc; struct stat s_buf[2], *s_p; vir_bytes pc;+ int rand;+ int gap;+ clock_t time; /* Do some validity checks. */ rmp = mp;****************** 126,131 ****--- 129,142 ---- vsp = (vir_bytes) rmp->mp_seg[S].mem_vir << CLICK_SHIFT; vsp += (vir_bytes) rmp->mp_seg[S].mem_len << CLICK_SHIFT; vsp -= stk_bytes;+ gap =rmp->mp_seg[S].mem_vir - rmp->mp_seg[D].mem_vir - rmp->mp_seg[D].mem_len;+ getuptime(&time);+ if (gap > 6){+ rand = (int)( (time*5269+619853) % ( 512 * (gap-3)));+ }else{+ rand = (int)((time*5269+619853)%1024);+ }+ vsp -= rand; patch_ptr(mbuf, vsp); src = (vir_bytes) mbuf; r = sys_datacopy(PM_PROC_NR, (vir_bytes) src,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?