2023
08
23
18
22
[linux] 讓程式的address不會randomize.
寫下來記錄 setarch -R 實際上是call personality(ADDR_NO_RANDOMIZE).
如果不想安裝setarch.
可以直接用以下程式取代.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/personality.h>
int main(int argc, char *argv[])
{
pid_t pid = fork();
int status = 0;
personality(ADDR_NO_RANDOMIZE);
if (pid == 0) {
execvp(argv[1], argv+1);
} else {
waitpid(pid,&status,0);
}
return 0;
}