2019-2020-1 20175320 《信息安全系統設計基礎》第五週學習總結

2019-2020-1 20175320 《信息安全系統設計基礎》第五週學習總結

1、教材學習內容總結

本週咱們瞭解了在計算機系統中程序的機器級表示。經過反彙編器能夠將機器碼轉化爲相似彙編代碼的格式,而該章節內容的主要介紹了在x86-64中的彙編指令以及彙編指令與c代碼之間的轉化。雖然一樣是彙編,但與咱們上學期學習的8086中的彙編語句有着必定的區別,如下是本章節須要注意的內容:html

  • objdump命令:經過objdump -d 文件名+後綴能夠將機器碼轉化爲彙編代碼,這是進行分析的重要前提條件。
  • 寄存器的前綴不一樣,對應的存儲長度不一樣。%r是64位、%e是32位、%是16位及如下的寄存器,在進行算術和邏輯操做時,必須經過前綴選擇正確長度的寄存器。
  • 操做數有多種尋址方式,咱們須要熟悉各類虛擬地址的尋址方式。
  • x86-64中的數據傳送指令以及各類算術和邏輯操做指令的兩個操做數的關係相較於8086是相反的,這是與8086最大的區別。
  • 各類操做指令能夠經過後綴來指定數據的位數,或者進行數據長度之間的轉換,但操做指令規定的長度必定要與寄存器長度相匹配,好比movq、movabsq、movswl等指令。
  • 在使用mov指令時,不能夠兩個操做數同爲存儲器,且當即數不能做爲目的地址。
  • 在x86-64中,棧操做指令老是以四字做爲出以及入棧的單位。
  • 在移位操做中,左移與右移的效果有所區別。shl與sal的效果是同樣的,sar是補充零比特,shr是補充符號位。
  • cmp以及test指令的做用與8086中的效果相似,set指令根據條件碼的某種組合,將一個字節設置爲0或者1。
  • 有些指令分有符號數以及無符號數的狀況,經過這些指令能夠推出操做數的數據類型。
  • 跳轉指令有PC相對以及絕對兩種尋址方式,相對尋址方式會將目標指令的地址與緊跟在跳轉指令後面那條指令的地址之間的差做爲編碼,且該差值用補碼的方式表示,且跳轉指令自己佔據兩個字節的空間。
  • 經過條件控制以及條件傳送語句能夠實現條件分支。
  • 使用跳轉表能夠實現c語言中的switch語句,跳轉表中的內容是代碼指針,跳轉表名稱是一個指向代碼指針塊地址的指針。

2、教材學習中的問題和解決過程

因爲有上學期8086下彙編的基礎,對於教材內容的理解並無問題,只是須要注意x86-64彙編語言與8086彙編細節部分的區別,並熟悉x86-64中修改以及添加的概念以及指令。vim

3、代碼調試過程

主要是練習將生成的.s彙編文件經過vim進行查看,並經過objdump命令來將.o文件進行反彙編,運行結果如圖:

安全

4、上週考試錯題總結

問題一:

問題一解析:字符串與字符,ascii碼與字符要區分清楚。學習

5、其餘(感悟、思考等,可選)

本週內容的重點是如何看懂由機器碼反編譯而來的基於x86-64的彙編代碼,在學習過程當中能夠參考8086中的彙編語言,這能夠必定程度上減輕咱們的負擔,但必定要注意與8086的區別,不能夠用舊有的思惟方式看待x86-64中的問題。雖然能夠經過之前的內容來方便咱們的理解,但實際上本章的內容仍然十分繁瑣,須要咱們有必定的耐心。編碼

6、學習進度條

博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 30篇 400小時
第一週 1/1 13/13
第二週 1/2 22/35
第三週 1/3 30/65

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。 耗時估計的公式 :Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。設計

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法指針

參考資料

相關文章
相關標籤/搜索