#include <stdio.h> #include <string.h> int main(){ FILE *fp; fp = fopen("/proc/self/maps", "re"); if (fp != NULL) { char buf[256]; while (fgets(buf, sizeof(buf), fp) != NULL) { if (strstr(buf, "[stack]") != NULL) { puts(buf); } } fclose(fp); } return 0; } 実行可属性とNXビット 今時のCPU+LinuxではMMUを介してページごとにメモリにアクセスするが、この時のページの属性の1つに実行可属性がある。xとかPROT_EXECとか。kernelに入るとこれはVM_EXECとして管理されるが、最終的には、CPUごとのARCHに依存したいわゆる