#include <stdio.h>
#include <stdlib.h>
int g_uninit; // .bss
int g_init = 0x12; // .data
static int g_sta_var = 0x34; // .data
const int c = 0x34; // .rodata
char *s = "zeku"; /* s: .data
"zeku": .rodata */
void fun()
{
printf("zzz...\n");
}
int main (void)
{
static int s_local_var = 0x56; // .data
int m = 5; // stack
int n = 6; // stack
int *p = (int *)malloc(4); // heap
printf("var -- addr\n");
printf(".txt\n");
printf("func() -- %p\n", fun);
printf("main() -- %p\n", main);
printf("heap\n");
printf("int *p -- %p\n", p);
printf("stack\n");
printf("int m -- %p\n", &m);
printf("int n -- %p\n", &n);
printf(".data\n");
printf("int g_init -- %p\n", &g_init);
printf("static int g_sta_var -- %p\n", &g_sta_var);
printf("char *s, &s -- %p\n", &s);
printf(".rodata\n");
printf("const int c -- %p\n", &c);
printf("\"zeku\" -- %p\n", s);
printf(".bss\n");
printf("g_uninit -- %p\n", &g_uninit);
free(p);
p = NULL;
return 0;
}
ELF Analysis
最新推荐文章于 2022-10-24 23:10:37 发布