使用常量指针或常量数据的好处是什么?

问题描述 投票:-1回答:1

如何利用非常量指针(可以在附近的内存中访问)或非常量数据?

我研究过非常量指针可以被利用来访问计算机的附近内存。

但我的问题是:如何利用?

我的意思是:怎么做?如果我已经启动了我的编译程序,如果它已经被编译并运行,攻击者如何利用它?

这是一个危险的漏洞吗?还是说这个漏洞并不那么重要?

c security pointers const buffer-overflow
1个回答
-1
投票

常量指针在C语言中,一个常量指针不能改变它所指向的变量的地址,也就是说,地址将保持不变。因此,我们可以说,如果一个常量指针指向某个变量,那么它就不能指向任何其他变量。

恒定数据

  1. 代码维护假如我在整个项目中需要使用光速进行计算。光速是不会改变的,所以不需要变量。我可以简单地复制和粘贴300,000,000(显然没有逗号),随时需要光速(单位是米/秒)。现在这样做很好,但是以后我的计算可能需要更多的精度,所以如果我想把300,000,000改成299,792,458,如果我在我的代码中经常使用这个值,这将是一个相当痛苦的过程。如果我使用一个const,我可以在整个代码中使用这个const的名字,所以如果我需要改变它的值,我可以只在代码的开始处改变一次。
  2. 内存考虑到现代设备的计算能力,这通常并不相关,但对于嵌入式设备上的软件来说,可能没有RAM空间来存放变量,而通过使用const,当代码被编译时,其值就会被放入程序中。这允许使用存储空间(在HDDSSD上)来代替RAM。
  3. 意外更改如果你需要一个值保持不变,就使用const,这样你就不会因为忘记了你需要它的值保持不变而在以后不小心改变它的值。想想看,如果它的值在整个代码中都不会改变,为什么不使用const呢?

-2
投票

C中的指针是最危险的实体,它有可能利用你的RAM。如果你以某种方式知道指针的基地址,它指向哪里,就用这个地址在内存中向前或向后移动,做任何你想做的事情,因为在C中没有OutofBoundException的异常处理。

为此,你需要对指针有一个很好的理解。

© www.soinside.com 2019 - 2024. All rights reserved.