ELF Analysis

#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;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值