2017年11月22日 星期三

C++ 程式語言基本教學---型態

C++ 程式語言基本教學---型態


宣告變數這個部分,可以宣告很多不同型態的變數。

整數部分: shortintlong

浮點數部分: floatdoublelong double

字元部分: char

布林型態部分: bool

程式碼




因為沒有多餘的空間,所以我就拿較明顯的來當代表示範。


總共宣告了4個變數,但變數型態都不同,char型態要注意,兩個單引號裡面只能放1個字母,如果放兩個字母,他就只會讀取最後一個字母而已,請各位留意一下。

有中括號的變數,這個就是陣列元素(這邊帶過就好,之後會深入探討),後面有兩個雙引號,那麼裡面可以輸入很多的字母,電腦就會讀取他裡面所有的字元



執行畫面



另外有個是布林型態

這個型態只有兩種,不是0 就是 1 "true"跟"false",很簡單。




執行畫面






講到這邊,初學者都了解了,當然,各位可以嘗試多種不同的用法,常練習就不容易忘掉。






C++ 程式語言基本教學---if和else

C++ 程式語言基本教學---if和else

程式碼


這樣的程式碼感覺有點複雜,跟著小編的腳步走,會很輕鬆。




我們設定了兩個變數,分別為 "a"  "b" ,再把數字 "1"  "2"  分別帶入變數內。

這時候  "a" 裡面的數字為1,"b" 裡面的數字為2

接著我們使用關鍵字 "if" 做個比較。

"if" 後面有個小括號,裡面有個判斷式 "a>b",這代表了 "a" 大於 "b"

如果這句話成立,那就執行大括號裡面的程式碼。反之,就執行下一個判斷式。


我們可以看到下一個判斷式有個 "else"關鍵字,因為上一個不成立,所以就開始執行這行的判斷,"a==b",電腦經過判斷之後,會發現一樣不成立,大括號裡面的就不會執行。電腦就執行下一行的判斷式。


第3個判斷式,"a


執行畫面



到這邊為止,小編的腳步已經很慢了,初學者應該都能夠接受吧。


所以程式語言沒這麼難懂,觀念通了,學習的辛苦程度大大減少,而效果會加倍,往後的很多東西都是建立在這個基礎之上,萬丈高樓平地起(除非高樓是漂浮的)。







C++ 程式語言基本教學---加減乘除

C++ 程式語言基本教學---加減乘除


程式碼



宣告三個變數   第三個變數是用前兩個變數相加

輸出的部分,也很容易理解。


執行畫面



其他運算符號,只要把 "+" 改成其他運算符號即可。



本篇教學到此,說實在的,很多初學者到這邊,應該都差不多是躺著就理解了。


毫無難度~~~



C++ 程式語言基本教學---輸入

C++ 程式語言基本教學--輸入


程式碼



跟前面的文章很像,只不過多加了一行cin >> a   這行代表著 "輸入",宣告完變數a,裡面不帶有數字,所以為空,沒任何資料。

cin >> a 把使用者輸入的數字存放在變數裡面,然後交給下一行做輸出。

如果使用者不輸入任何數字,一直按enter不放,他是會一直往下空行,不會輸出變數的資料。

執行狀態






一不小心就學會了。





C++ 程式語言基本教學---輸出變數

C++ 程式語言基本教學---輸出變數


程式碼


這兩行不難看出只是輸出宣告的變數,雙引號內的為字串,沒有雙引號的是變數,其他就是運算符。


執行他




cout 輸出   endl換行   其他我就不多說了,可以自行往前翻  前面的基本教學文。


再多增加幾行都由你自己決定,保證語法沒錯,都能順利運行。




C++ 程式語言基本教學---變數

C++ 程式語言基本教學---變數


C++基本的設定變數教學


程式碼部分


在主程式裡面,int a  這行,我們設定了"變數"為 "a",型態"int"寫在變數前面,這個int 就是integer "整數" 的縮寫。

他可以通過編譯,也可以執行,但他不會出現任何東西,因為我們沒有輸出任何字串。

所以,這個程式只是宣告了一個整數型態的變數。


我們把數字移動到變數內



現在變數a內的數字為0,這都還是宣告部分,宣告部分很重要,對將來的大型程式碼是不可或缺的元素。

同樣的執行他,也不會顯示出任何東西。


當然,我們也能自己在同一行新增不同的變數,也能夠把數字放進去。


這也一樣不會顯示任何東西。



多行宣告也可以,看各位要如何利用。



變數很輕鬆,一不小心就學會了。






C++ 程式語言基本教學---基本輸出

C++ 語言基本教學---基本輸出


想必各位都聽過C++,但有些人不知道如何下手。

本編依據自己學習的經驗,把知識分享給大家。

-----------------------------------------------------------------------

Dev c++各位應該都知道,安裝過程就不再說明,就跟安裝線上遊戲一樣簡單。


來寫第一個程式碼



#include 的意思就是"包含"

iostream 則是導入的檔案。  如果各位去看devc++的安裝路徑,在內部文件找,會找到真的有iostream這個檔案,裡面都是定義過的一些變數與運算符。

using namespace std   各位會看不懂這行,這行其實是牽扯到命名空間的問題。
因為開發者為了不想讓名稱重疊而發展出這樣子的概念。
初學者如果想深入理解,網路上有很多命名空間的資料。
這邊只需要知道需要寫入這行即可。


int main(){}    這邊是主程式進入點。

說實在的,他其實也是一個宣告函數的形式。
這個main函數,裡面沒有任何參數,因此直接執行內部的程式碼。


裡面的程式碼沒有任何運算符,只有字串,所以無法輸出字串。



下面增加了cout的程式碼


這樣代表的有運算符的出現,可以正常輸出字串。





再更深入點


我們可以把它寫成這樣



增加了一個 endl,我們執行看看。



嘿~  我們發現了,他空一行,所以endl指令,也就是空行的指令,也很容易理解。



本篇教學到此結束。


這只是個基本觀念,往後會教更有趣的東西。






知識開放共享計畫

知識開放共享計畫


很多人在網路上爬文找相關電腦資料,有些有相關的問題,但留言區都沒有該問題的解決方式,更沒有人會去留言。

當然,有些問題爬文可以找得到解答但解答不見得就是正確有時候解答只適合在某個版本下面才能正常運作而在別的版本不見得可以正常執行


本編在學習電腦初期,就曾經因為電腦病毒與任何程式語言和其他各式各樣的電腦應用軟體問題而爬過無數的文,常常發現有人與本編有相同的問題,可是下面的留言區塊,根本無人回應,而且這個問題,並沒有完整解決且還過了好幾十年


所以本編決定提出此計畫,並打算未來推出不同程式語言的相關教學


知識開放共享,光看名字就知道在做什麼了。


所有的知識皆會寫到本部落格分享,有問題的就來這邊找資料。


這邊會開放使用者向本編投遞文章,本編會予以認可,但投遞文章同時,也請注意一下,如果其他部落格或是國內外有相同的問題本編將不會把已經有的解答與相同問題寫在本部落格內

註:  有關的黑客技術文章會納入本部落格但本編不可能開放讀者詢問有關[求助]誰能教我入侵(破解)網路(電腦)網站(密碼)此類型的問題。不然一律退貨(不請自離)。


如果是要問一些黑客技術文章

我可以給你幾個網站:

www.52pojie.cn

http://bbs.fishc.com

http://bbs.vc52.cn/

https://bbs.kafan.cn/

http://www.freebuf.com/

http://bobao.360.cn/

https://www.pediy.com/

http://www.secist.com/

bbs.safewiki.org

https://paper.seebug.org/

以上這些都是那些大神的技術分享文章






防毒軟體整體架構分析與免殺繞過 (七)

防毒軟體整體架構分析與免殺繞過 (七)

關於免殺方式有很多種,常見的也被偵測出來,但又只要改變一些,又繞過去了。

====================================================

繞過方式:

一個有惡意程序的特徵碼,只要在後面多加幾個無意義的數字甚至英文字母,那麼這個惡意程序就能夠被繞過。

=======================================================
本編做過一些實驗:

卡巴可以被繞過,ESET可以被繞過,AVG可以被繞過,AVAST可以被繞過,連最基本的Windows defender也照樣可以被繞過,可見得防毒軟體不是完全安全。

=======================================================

繞過方式:

加殼。

=======================================================

這不用說,從古至今,加殼技術演變最多,而且一次又一次的挑戰防毒的防禦性能。




當然,如果讀者還有其他繞過方式,請在下面的留言給小編。












Ollydbg 2.01 繁體中文版

Ollydbg 2.01 繁體中文版 Ollydbg 2.01 繁體中文版下載: Mega:   https://mega.nz/#!I2Qy1aQD!-T5zO3PaANjBHU73I4NlkY8SHMxRptbBV8TpmeFt1fo GD: h...