總是好奇:電腦是如何讀懂程式碼?電腦不是0和1的邏輯電路構成的嗎、為什麼在寫程式的時候不用寫一大堆0與1就能與它溝通?如果它跑得動,不就代表他中間有經過處理、剖析、那它到底是怎麼運作的?我能不能夠過逆向來更加了解電腦(CPU)的運作邏輯?打CTF的時候很常遇到Reverse題目,有哪些工具、技巧可以運用?惡意程式到底有什麼行為、我應該如何分析?
引言我有說到,因為好奇,才分享逆向工程的文章。今天就要來揭秘電腦是如何通過重重關卡,才能識別並執行程式設計師所寫的程式碼。不囉唆,先上圖, Reference...
昨天我們討論到程式的編譯過程,今天就來將理論化為實際。透過手把手教學,我會使用 C 語言講解程式碼是如何一步步變成電腦能理解的語言。 首先,我們回顧這張圖: R...
這張圖是 Hello world 執行後,歷經的過程。Reference User space v.s. Kernel space 這裡要先辨別,作業系統的 U...
今天,準備要開始逆向程式碼。在介紹工具之前,先來解說逆向工程的邏輯。基本上,對於逆向,有很多現成的工具可以直接套用,但許多有其極限(當然,有工具可以提升效率,我...
工欲善其事,必先利其器。今天要介紹資安界的女神(對我而言) - IDA Pro。IDA Pro 是跨平台的逆向工具,Windows、MacOS、Linux 都有...
昨天介紹跨平台的神器(IDA Pro),今天介紹個人主要在 Linux 使用的逆向工具 - Radare2 Radare2 介紹 Wiki Radare2(...
今天來介紹另一款 Linux 逆向工具,我主要拿來動態分析使用。 GDB 介紹 Wiki GNU偵錯器(英語:GNU Debugger,縮寫:GDB),是...
今天介紹 Mac 專用的逆向工具 - Hopper Disassembler。我使用的試用版,雖然半小時後就會自動斷開、也不能儲存更動過的地方,不過仍不失為一個...
今天開始練基礎功,逆向我們常見的條件判斷式。包括:if、if-else、if-else-if。這些判斷式用高階語言寫都不難,但如果變成組合語言呢?請各位讀者挑戰...
今天逆向並找出循環的特徵。包括常見的 for、while、do-while、break、continue。今天換一套逆向工具,使用 Hopper Disasse...