今天逆向並找出循環的特徵。包括常見的 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 透過匯流排與記憶體互動時的不同方法。今天,來說明記憶體的定址方式。 記憶體定址 分成三類,直接存取、直...
多數組合語言指令(instructions)需透過運算元(operand)來存取資料[可以把運算元想像成容器]。有一些指令不需要運算元即可存取資料,而另一些指令...
我在 Day2 的文章裡有講到暫存器(e.g. eax, ebx),可能對初學者而言相對陌生。這篇主要來介紹這些暫存器代表的意義與使用時機。 為什麼要使用暫存器...
記憶體在電腦中扮演極重要的角色。生活中,每次想多開幾個瀏覽器,電腦就開始 lag 甚至最後當機、跑不動,與記憶體的使用息息相關。本篇中,會說明程式在記憶體中的配...
今天的重頭戲,正是逆向昨天剛寫好的 Hello world,從反方向觀察程式碼的長相。如果運用得宜,你可以更了解程式的具體行為。在生活中,逆向工程使用時機就好比...
學習一門新的程式語言,大多會從 Hello world 切入。完成後,總覺得離這門語言更親近一步XD Day2,我會講解如何使用組合語言寫 Hello worl...
前言 嗨大家好,昨天的練習應該不難。請看下面的解答: //第一題:請問下面 console.log 會出現哪個顏色? let color = ["re...