軟體為什么有漏洞
軟體為什么會有漏洞,嚴重的漏洞更甚至會被壞人用來執行惡意代碼,造成巨大的經濟損失,
我們舉一個簡單例子,這個例子是達內C語言培訓時,一位老師提到的,具體如下:
#include <stdio.h>
#include <unistd.h>
void bar(void)
{
printf("Hello,World\n");
_exit(0);
}
void foo(void)
{
void *a[1];
a[2]=(void *)bar;
}
int main()
{
foo();
return 0;
}
代碼解釋:main( )函式呼叫了foo( )函式;foo( )函式定義了一個陣列,并且越界賦值;還有一個孤零零的bar( )函式,向終端輸出Hello World,貌似沒有在任何地方被呼叫,好像沒有什么作用,
代碼作用已經弄明白了,下面看運行結果,測驗環境是centos32bit
結果是不是很詫異!!!源代碼中并沒有呼叫bar( )函式,為什么在程式運行時呼叫了bar( )函式呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296814.html
標籤:其他
上一篇:【歷史上的今天】9 月 1 日:Pascal 語言誕生;世界上首批大規模生產的個人電腦出現;世界上第一家網吧開業
下一篇:[工具使用]WhatWeb
