📄 aslr.patch
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -