原创 HIT軟件構造經驗漫談(七)

本文主要總結第四章中的結構型設計模式 結構型模式 適配器模式 將某個類/接口轉換爲client期望的其他形式 其實就是對類/接口的一個再封裝 裝飾器模式 通過delegate的方式,由delegate的對象完成主要功能,對

原创 HIT軟件構造經驗漫談(八)

本文主要總結第四章中的行爲型設計模式 行爲型模式 策略模式 簡單地說,就是這個方法的參數中有一個是Lambda表達式或者某個實現了特定方法的對象(以接口的形式定義),而函數內部的實現依賴於這個Lambda表達式或特定方法。 一個

原创 HIT軟件構造經驗漫談(二)

HIT軟件構造經驗漫談(一)   在寫Lab2的時候,有一位同學問了我一個很有趣的問題(或者說是一系列很有趣的問題),這類問題的特徵概括起來就是:相同的代碼,在自己的電腦(IDE)會報warning或者error,但是在對方的電腦

原创 HIT軟件構造經驗漫談(五)

在本課程的第7章中介紹到了多線程,這在實際項目開發中是非常常用的一個操作,也是一個會產生大量難以排查的BUG的操作,本博客通過記錄一個我之前開發的程序的debug經歷來對多線程進行一個總結 1. 什麼是多線程   這裏直接援引課件

原创 HIT軟件構造經驗漫談(四)

本博客主要是記錄EclipseEE中的常用操作 1. 修改漢字編碼   在寫程序時,一個很常見的問題是打開別人的項目會發現全是亂碼,這往往是因爲漢字編碼不同,Windows通常使用的是GBK編碼,而Linux通常使用的是UTF-8

原创 HIT軟件構造經驗漫談(六)

本博客主要總結我個人對錯誤、異常和斷言的理解 其中,1是初步總結、2、3是對1的修正,4是對修正後總結的一些說明 另外,本博客不代表最終觀點,寫這篇博客的時候還忙着其他各種大作業和競賽的DDL,所以還沒來得及把課件再回顧一遍

原创 CTF總結-PWN篇

一、通用過程 通過file指令查看二進制文件是32位還是64位,這個影響特別大(涉及參數的傳遞方式) 通過checksec指令查看可執行文件的保護措施開啓情況 運行一下這個可執行文件,瞭解一些程序運行流程 開始通過pwntool

原创 CTF總結-工具篇

1. 本文僅列出工具,不提供下載地址 2. 工具排序全是隨緣的,不分先後 3. 其實最關鍵的工具還是一個好用的腦子 MISC stegsolve GIFSplitter 010Editor binwalk foremost p

原创 CTF總結-逆向篇

一、通用過程 通過file命令查看文件類型,判斷是ELF還是PE,32位還是64位。 通過strings並重定向標準輸出,然後搜索大括號 { ,看看是否能直接得到flag. 將程序運行一下,心裏有個數。 通過ExeinfoPe查

原创 HIT軟件構造經驗漫談(三)

針對HIT軟件構造Lab3常見問題的回答   首先回顧一下Lab3的實驗目標: 實驗目標回顧   本次實驗覆蓋課程第3、4、5 章的內容,目標是編寫具有可複用性和可維護性的軟件,主要使用以下軟件構造技術: 子類型、泛型、多態、重

原创 CTF總結-雜項篇

一、通用過程 右鍵查看文件屬性,可能有隱藏的備註、提示信息 檢查文件類型 1.1 通過file命令檢查文件類型 1.2 通過binwalk命令檢查文件中是否隱藏了其它文件 1.3 如果有,則通過binwalk -e命令分離,如果

原创 CTF總結-WEB篇

一、通用過程 按F12看一眼源代碼裏有沒有註釋提供提示 必要時可能還需要修改源代碼  如果進去後是一個不知所以的頁面,往往是SQL注入,或者嘗試尋找源代碼進行代碼審計(代碼泄漏) WEB協議相關知識點很少作爲獨立考點,往往

原创 HIT軟件構造經驗漫談(一)

HIT軟件構造經驗漫談(一)   在寫Lab2的時候,有一位同學問了我一個很有趣的問題(或者說是一系列很有趣的問題),這類問題的特徵概括起來就是:相同的代碼,在自己的電腦(IDE)會報warning或者error,但是在對方的電腦