ctf中的逆向工程一般指軟體逆向工程,即對已經編譯完成的可執行檔案進行分析,研究程式的行為和演算法,然後以此為依據,計算出出題人想隱藏的flag。
1.可執行檔案的形成過程
考慮到執行效能等因素的影響,在每一步過程中會伴隨著資訊的丟失。逆向則需要利用相關知識及經驗,還原其中的部分資訊,進而還原全部或部分程式流程。
2.不同格式的可執行檔案
目前主要有兩種不同格式的可執行檔案,windows下為pe(portable executable),linux下為elf(executable and linkable format)。兩種檔案格式均由coff(common object file format)格式發展而來,檔案結構中各種概念非常相似。
節是程式中各部分的邏輯劃分,如.text .code代表**節、.data代表資料節。執行時,各節會被載入到記憶體的各位置,為方便管理,乙個或多個節會被對映到乙個段中。
軟體逆向工程學習(一)
本專題學習軟體逆向的基本原理 方法,並針對具體案例進行逆向分析,從而學習一套完整 系統的軟體逆向的方法並獲取相關經驗。ollydbg 常用於動態除錯程式,無法除錯核心,ui功能強大。softice 工作在ring0態的偵錯程式,常用於除錯驅動程式,功能強大的命令列工具。windbg 介於上兩者之間的...
CTF逆向工程學習入門 二 組合語言基本知識
1.暫存器和記憶體 除此之外,cpu中還存在乙個標誌暫存器,其中的每位表示對於標誌位的值,常用標誌位如下 2.cpu的定址方式 定址方式 示例操作物件 立即定址 1000h 1000h這個數字 直接定址 1000h 記憶體位址1000h的單元 暫存器定址 raxrax這個暫存器 暫存器間接定址 ra...
逆向工程學習記錄
od基本指令 指令快捷鍵 含義restart ctrl f2 重新開始除錯 step info 單步步入 f7執行一句op code 操作碼 若遇到呼叫命令 call 將進入函式 內部 step over 單步步過 f8執行一句op code 操作碼 若遇到呼叫命令 call 將進入函式自身,不跟隨...