-
-
[分享]又一个RedScissorTools小工具软件的源码,读写进程的环境变量。
-
发表于: 2012-2-2 15:05 3244
-
http://www.redscissortools.com/redscissor_014.htm
和Linux系统一样,Windows在每个运行的进程中用环境变量(environment variable)储存和其相关的各种设置。通常来讲不同进程的环境变量基本相同,但也不是绝对的。这里的源代码可以让你
1. 列出某个进程里用到的环境变量。
2. 把一个新的变量加到进程中去(Vista及以后的系统不行)
3. 更改进程中的一个变量的值(Vista及以后的系统不行)
4. 删除进程中的一个变量及其值(Vista及以后的系统不行)
有意思的是,在32位机器上,Windows用两个4KB的内存页保存环境变量,而在64位系统上,却只用一个4KB的内存页 ---- 没准儿是个bug。
在XP和Server 2003上,系统用字符串“=::=::\”标记环境变量的开始,而在Vista及以后的系统上,用“=C:=C:\”作为标记。这些环境变量都是按照英文字母的顺序排列的。
在XP和Server 2003上,你可以用这个工具乱改这些变量都没有什么关系,比如用Notepad做实验,因为微软没有为它们提供相应的保护。而在Vista及以后的系统上,我们只要改动了一下(添加、更新或者删除某个变量),Windows马上就能发现,几秒钟后在那个进程中插入一个坏了的线程,让该进程立马崩溃。
Enjoy
和Linux系统一样,Windows在每个运行的进程中用环境变量(environment variable)储存和其相关的各种设置。通常来讲不同进程的环境变量基本相同,但也不是绝对的。这里的源代码可以让你
1. 列出某个进程里用到的环境变量。
2. 把一个新的变量加到进程中去(Vista及以后的系统不行)
3. 更改进程中的一个变量的值(Vista及以后的系统不行)
4. 删除进程中的一个变量及其值(Vista及以后的系统不行)
有意思的是,在32位机器上,Windows用两个4KB的内存页保存环境变量,而在64位系统上,却只用一个4KB的内存页 ---- 没准儿是个bug。
在XP和Server 2003上,系统用字符串“=::=::\”标记环境变量的开始,而在Vista及以后的系统上,用“=C:=C:\”作为标记。这些环境变量都是按照英文字母的顺序排列的。
在XP和Server 2003上,你可以用这个工具乱改这些变量都没有什么关系,比如用Notepad做实验,因为微软没有为它们提供相应的保护。而在Vista及以后的系统上,我们只要改动了一下(添加、更新或者删除某个变量),Windows马上就能发现,几秒钟后在那个进程中插入一个坏了的线程,让该进程立马崩溃。
Enjoy
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: