首页
社区
课程
招聘
[旧帖] [求助]环境变量在内存的存储位置 0.00雪花
发表于: 2010-1-27 11:03 1556

[旧帖] [求助]环境变量在内存的存储位置 0.00雪花

2010-1-27 11:03
1556
环境 :
Linux version 2.6.32-ARCH (tobias@T-POWA-LX)
(gcc version 4.4.2 20091208 (prerelease) (GCC) )

提取环境变量内存地址函数

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        printf("%s is at %p\n",argv[1],getenv(argv[1]));
}


[linkin@linkin 3.3]$ export aa="aaaaaa"
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbfee6c6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbf898c6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbfb7bc6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbf97dc6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbfefcc6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbffbac6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbf88cc6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbf951c6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbfa05c6f
[linkin@linkin 3.3]$ ./get_env aa
aa is at 0xbfe46c6f


咋是这样呢??偶看不出它的规律阿

函数名: getenv
  功 能: 从环境中取字符串,获取环境变量的值
  用 法: char *getenv(char *envvar);

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶阿  不顶要掉下来了阿!!!
2010-1-27 19:53
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
argv 这个应该是你给程序传递的参数,和环境变量是两个概念吧。
2010-1-27 20:13
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
aa 已经被加入到环境变量中了 。aa作为命令行参数读入程序中 ,getenv()函数是获取指定参数的内存地址 ,参数只能是环境变量, 否则出错。

环境变量 和 函数参数 在进程的存储空间中是处于高内存地址的,所以我想地址变化范围并不大,结果 .....
2010-1-27 20:42
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
自己顶一下..............
2010-1-28 09:36
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
求助ing。。。。
2010-1-29 08:46
0
游客
登录 | 注册 方可回帖
返回
//