2025 09 30 12 17 [linux] 關掉linux程式的ASLR

 

#include <stdio.h>
#include <sys/personality.h>

int main(int argc, char **argv) {
    const int old_personality = personality(ADDR_NO_RANDOMIZE);
    if (argc <= 1) {
        printf("usage: %s [exe name] [args]\n",argv[0]);
        return -2;
    }
    if (!(old_personality & ADDR_NO_RANDOMIZE)) {
        const int new_personality = personality(ADDR_NO_RANDOMIZE);
        if (new_personality & ADDR_NO_RANDOMIZE) {
            execv(argv[1], argv+1);
        }
    }
    return -1;
}

或者用指令 setarch -R 去關掉 ASLR