前言 今天準備好了 Ubuntu 的環境來解題,題目是 Hackme CTF 的 helloworld。 在開始之前 因為我是在 Windows 環境安裝 WS...
前言 今天一樣是在 Hackme CTF 找題目~因為很多題目都是 linux 環境的執行檔,時間應該會來不及,最後選了一題應該是 Python 環境的題目 p...
前言 今天會嘗試使用 Ghidra 這個逆向工具來逆向昨天那支很簡單的 Hello world 程式,流程其實意外的不複雜 XD,那我們就開始吧~ 逆向工具 最...
前言 越後面的主題越難寫啊 QQ,今天開始逆向的主題,希望我可以繼續撐下去 😵💫 逆向工程是什麼 這邊我們需要複習一下一支程式是怎麼從高階語言變成一個執行檔的...
Abstract reverse() 不像其他咩色需要帶入參數甚至是 callback,使用起來可以說是相對簡單,但它的演算法稍嫌複雜且有一些讓人迷惑的地方,因...
今天,我們來解決一個問題吧! 給定一個遞增的鏈結串列,回傳一個遞減的鏈結串列。 其實,這個問題有兩個解決方法! 將原本鏈結串列的數值儲存於陣列中,再將它們以遞...
看日常分享: AwesomeCS FB 看技術文章: AwesomeCS Wiki 筆者最近在閱讀 aaaddress1 的大作: Windows...
惡名昭彰的 WannaCry 讓 Windows 使用者欲哭無淚。今天來逆向 WannaCry,看這隻病毒到底有什麼實際行為?為什麼新聞說有人買下特定的網域,就...
WannaCry 還沒逆完,把最後一天的內容拿出來擋一下。請讀者見諒XD今天不會講解技術,會推薦基礎的逆向工程資源。以下是我覺得不錯的教材,推薦給讀者。 Roa...
reversing kr 是一個很不錯的練習逆向的地方。 reversing .kr 介紹 This site tests your ability to...
昨天有嘗試將驗證字串編碼,但還是容易被逆向找到程式邏輯並繞過。今天嘗試透過 Fuzzing 將程式位元反轉使得 Debugger 無法逆向。 目標: 如下圖,B...
Day14 我們說到的驗證程式,透過 strings 搜尋就可以找到。於是我們想要提升逆向的成本,何不將驗證方式改掉?改成駭客想不到的方式? 實作 原本的程式太...
今天介紹簡單的 Buffer Overflow 題目。 Buffer Overflow 是什麼? 根據Wiki: (Buffer Overflow) 緩衝區...
今天介紹入門的 CTF 題目,可以檢驗過去的學習知識是否夠紮實(當然某些題目可能需要通靈XD)。基本上,會挑一些基礎的、可以解釋的題目當作練習題,並且把它寫成...
今天逆向並找出指標的特徵。指標意即記憶體位置,系統在傳資料的時候大多使用指標進行資料傳遞。 指標 disassemble main 跟上圖大同小異。 解答公...
今天準備逆向並找出陣列的特徵。包括陣列基本特徵、使用 for loop 遍歷陣列元素、二維陣列。 基本特徵 可以看到數字 10h, 20h, 30h 被 mo...
因為是函式呼叫所以能觀察到 main() 裡面去 call 其他 function 。今天介紹呼叫單一函數、函數裡僅有單一參數、雙參數、函數中再呼叫其他函數的情...
今天逆向並找出循環的特徵。包括常見的 for、while、do-while、break、continue。今天換一套逆向工具,使用 Hopper Disasse...
今天開始練基礎功,逆向我們常見的條件判斷式。包括:if、if-else、if-else-if。這些判斷式用高階語言寫都不難,但如果變成組合語言呢?請各位讀者挑戰...
今天介紹 Mac 專用的逆向工具 - Hopper Disassembler。我使用的試用版,雖然半小時後就會自動斷開、也不能儲存更動過的地方,不過仍不失為一個...
今天來介紹另一款 Linux 逆向工具,我主要拿來動態分析使用。 GDB 介紹 Wiki GNU偵錯器(英語:GNU Debugger,縮寫:GDB),是...
昨天介紹跨平台的神器(IDA Pro),今天介紹個人主要在 Linux 使用的逆向工具 - Radare2 Radare2 介紹 Wiki Radare2(...
工欲善其事,必先利其器。今天要介紹資安界的女神(對我而言) - IDA Pro。IDA Pro 是跨平台的逆向工具,Windows、MacOS、Linux 都有...
今天,準備要開始逆向程式碼。在介紹工具之前,先來解說逆向工程的邏輯。基本上,對於逆向,有很多現成的工具可以直接套用,但許多有其極限(當然,有工具可以提升效率,我...
這張圖是 Hello world 執行後,歷經的過程。Reference User space v.s. Kernel space 這裡要先辨別,作業系統的 U...
昨天我們討論到程式的編譯過程,今天就來將理論化為實際。透過手把手教學,我會使用 C 語言講解程式碼是如何一步步變成電腦能理解的語言。 首先,我們回顧這張圖: R...
引言我有說到,因為好奇,才分享逆向工程的文章。今天就要來揭秘電腦是如何通過重重關卡,才能識別並執行程式設計師所寫的程式碼。不囉唆,先上圖, Reference...
介紹 Syscall (system call),中文翻成系統呼叫,可以把它理解成系統的 API (Application Programming Interf...
今天來正式介紹一下 Intel x86 的指令。雖然前面已經偷渡了很多次XD,不過這裡分門別類的描述各個指令的使用時機。有點多,不過還是請讀者慢慢服用。 複製資...
昨天我們知道:暫存器定址、立即定址、記憶體定址,是CPU 透過匯流排與記憶體互動時的不同方法。今天,來說明記憶體的定址方式。 記憶體定址 分成三類,直接存取、直...