我用C字写了一个应用程序, 我试图在编译时了解 < code>- fno- stack- protector code> 命令的目的是什么。 对于我的具体应用程序, 使用此命令或不使用缓冲溢出来保护它没有区别 。
我在网上读到, < code>- fstack- protector 和 - fno- stack- protector
命令分别启用和禁用了烟囱冲洗保护器,但如果我亲自编集程序,如何事先启用保护器?命令的使用是否取决于应用程序运行的系统?
我用C字写了一个应用程序, 我试图在编译时了解 < code>- fno- stack- protector code> 命令的目的是什么。 对于我的具体应用程序, 使用此命令或不使用缓冲溢出来保护它没有区别 。
我在网上读到, < code>- fstack- protector 和 - fno- stack- protector
命令分别启用和禁用了烟囱冲洗保护器,但如果我亲自编集程序,如何事先启用保护器?命令的使用是否取决于应用程序运行的系统?
在标准/库存的海合会中,书架保护者默认关闭。 但是, 一些 Linux 发行者已经修补了海合会的默认开关 。 在我看来, 这相当有害, 因为它打破了编译任何未与标准用户空间图书馆连接的东西的能力, 除非 Makefile 具体禁用书架保护者 。 它甚至会打破 Linux 的内核结构, 除非与这项黑客的发行者在海合会中增加了更多的黑客, 以检测内核正在建造并禁用。
如果您使用 -fstack- protector
进行编译,那么堆叠上将会多分配一点空间,当代码设置检查并实际检查您是否在函数中将堆叠覆盖时,进入和返回一个函数时会多加一些管理费。
这将改变您的应用程序 。 如果启用它, 它将会很快地停止堆叠溢出攻击 。 只有您在代码中没有功能调用, 它才会让您的程序不受影响( 而且由于您通常写入 < code> main () , 这是启动代码所呼唤的函数, 这会对您的程序产生影响 ) 。 但是, 堆叠溢出攻击并不是唯一可以使用的攻击, 所以它不是灵丹妙药。 但是它是一种有用的保护, 费用有限 。
保护并不取决于系统本身;它取决于您正在使用的编译器版本,但仅此而已。
堆叠保护符是编译器生成的代码, 并被 < em> 放置到您的程序中。 它不是程序所调用的外部程序或系统调用 。
符合默认编译器设置的选项何时可用 :
当您重新使用可能具有复杂配置的构建系统时,您想要对它进行调试。它可能选择使用 fstack-protector
(例如),它可能很容易地通过其他选项,这些选项只是被拖到选项列表的末尾。如果海合会在选项集中看到 fstack-protector
和 fno-stack-protector
,则命令行上的最后一个选项就会生效。
其它时间, 类似的事情可能会很方便( 似乎不适用于 < code>- fstack- protector code> ) 。 当您有一个选项可以打开一系列子选项时, 您可能会很方便( 但它似乎并不适用于 < code>- fstack- protector code> 。 例如, 设置 - O2 打开了 < code>- fxxxx code> 优化选项的滚动, 您可以指定 < code >- fno- stric- alize code > 来将该特定选项设置回默认设置 。 (注意: 此案例实际上与上述案例相当) 。
您之所以想关掉它 有三个原因
For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...
最好、最小、最快、开放的来源、C/C++ 3d 提供方(在3ds max模型的支持下),而不是通用公平市价,
Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...
I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...
I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...
I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...
Is there anything other than DDD that will draw diagrams of my data structures like DDD does that runs on Linux? ddd is okay and runs, just kind of has an old klunky feeling to it, just wanted to ...
Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...