雜談 ICS課程中前6個lab的總結

2022-09-02 01:33:09 字數 1089 閱讀 7525

lab 1 : 位運算

貌似沒什麼好說的,學會svn提交**,然後就是智力題了。當時不清楚規則以為有30分是比誰的操作符少,最後幾個人喪心病狂到用離散的知識,語法的順序,簡化操作符,最後總數竟然從120+到了90+...最後發現只要下於規定個數就是滿分,sign~。不過在簡化的過程中還是略有所得的。

lab 2 : 二進位制炸彈

加深對彙編的理解,根據彙編**推測程式要幹的事情,所謂的」逆向工程「,或許破解大概就是這種過程吧。難度不是太大,一步一步慢慢推敲都能搞定,樂趣是在過程中用gdb修改暫存器各種jump過關以及乙個叫」卓神「的人在傳送給伺服器資訊之前用gdb修改資訊篡改別人的分數,其樂無窮。

lab 3 : bufferoverflow

乙個原來黑客攻擊的方法,加深對棧的理解,這個lab算棧的位數打草稿,意思感覺不是很大。

online test:

lab2和lab3的上機測試,lab2和lab3老老實實自己做過的人一般都沒什麼問題,但是我lab2跳過,在test過程中除了secret phase的跳了伺服器報錯嚇出一身冷汗,還好在之後只跳secret phase成功過了。

lab 4:模擬器

開始覺得工程量很大,其實後來發現就是按部就班寫**,很輕鬆,不怎麼說了。

lab 5:編譯器

慢慢上手,難點在於之後的標記和重定位,接觸到了鍊錶的操作,有一定難度,花花時間滿分也不是很難,就是時間花的略多。

lab 6:malloc庫

小學期做的,實現malloc,free,realloc功能,分數根據效率和速度計算,最後實際上還看你**提交是否正確,格式,以及編譯是否有警告,還好本人編譯的時候有潔癖,警告沒有所以沒扣分,^_^。

如果想拿滿分的話是這6個lab裡面最難的沒有之一,本人大概花了40個小時才做到97,除錯起來極蛋疼,可以充分鍛鍊除錯技巧。需要看檔案分配的方式和順序,打草稿設計相應的優化策略,尤其是2個realloc和2個binary,策略設計的好可以100%利用,賤一點可以煉表頭都去掉直接返回位址。 鍊錶的種類大概有 」隱式空閒「 」顯示空閒「 」顯示分離空閒「 以及各種樹分配?」隱式空閒「搜尋太慢速度不能滿分,」顯示分離「做起來麻煩但是前幾個檔案的利用率高於」顯示空閒「,但都能做到滿分。

啊,快樂的半個月暑假~

實驗6 實踐課程中的程式

2 程式設計,完成問題7.9中的程式 這裡就直接貼出 了。其實就是運用基址變址來使自己的位置不停變化,只要能徒手敲出實驗6.1的問題,6.2也就沒有問題了。assume cs codesg,ss stacksg,ds datasg stacksg segment dw 0,0,0,0,0,0,0,0...

N個數中的前k個

題目描述 n個數,列印出重複次數最多的前十個 方法 無序容器 優先順序佇列 資料結構 雜湊單重對映表 優先順序佇列 步驟 1 遍歷所有的數,放進雜湊表中 2 找到前十個重複率最高的 3 列印 include include include include include includeusing n...

前雅虎CTO Hadoop擴充套件過程中的7個危險訊號

zdnet至頂網軟體頻道訊息 本文作者raymie stata是hadoop即服務公司altiscale的創始人兼ceo,也是雅虎前任cto,協助雅虎完成開源策略,並參與apache hadoop專案的發起。hadoop的擴充套件和運維是非常複雜的過程,在其具體的實施過程中隱藏著潛在的危機,raym...