On 21-Apr-20 12:06 PM, Feng Li wrote:
#include <sys/mman.h>
#include <time.h>
#include <stdint.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv) {
// FIXME(fengli): XXXXX
uint64_t gb = atoi(argv[1]);
void* ptr = mmap(0, gb << 30, PROT_NONE, MAP_PRIVATE |
MAP_ANONYMOUS, -1, 0);
if (ptr == (void*)-1) {
perror("[-] mmap failed with MAP_PRIVATE | MAP_ANONYMOUS");
exit(1);
}
while(1)
sleep(1);
return 0;
}
DONTDUMP is available since Linux 3.4. I presume our minimum kernel
version is higher than that.
I have little idea of how dumping works, but reading the manpage for
madvise, DONTDUMP should be the way to go here. Also, reading up on
PROT_NONE, i can't find any references to this memory necessarily being
excluded from core dumps.
That said, I've run the program above, and i got a core dump sized
~100K. Do i need any special configuration to trigger core dump that
would include that anonymous memory?
--
Thanks,
Anatoly