往googler的路上day2

Han-Ru Chen
Feb 8, 2021

--

今天在輔大資工閎安的幫助下,完成了人生第一次的逆向工程 (Reverse engineering)答題,且在完成答題之後,與閎安一起完成了這次HackMD的學習共筆。

本來今天打算學一點點動態規劃跟GIT的,但是因為自己有點懶惰了所以沒學,明天請繼續加油!

以下為此次逆向工程簡述過程

cd /Downlaods
./lab1 //這個指令是for 本次逆向工程main.c的exe(執行檔)
想要使用gdb操作時,需要跟組合語言有關

1.gdb (執行檔名稱)//代表對 (執行檔名稱).exe執行 gdb
進去之後
2.disas flag()// 現在我們反組譯flag之後,可以將機器語言轉成組合語言
此時利用組合語言尋找自己所需地址給breakpoint所用
3.利用breakpoint再 if(password == input) 即組合語言中的cmp執行前,將兩者改成相同數字,破解密碼

r //run the code 直接跑
n //the next code
b *(address) //下中斷點
b (函式) // ex: b main, b flag
disas (函式)// disassemble 程式 即反組譯

附錄:本次逆向工程使用GDB,全名是GNU Debugger,能夠透過設置多個breakpoint
讓程式再執行的時候分非常多段,本次逆向工程即是利用設置breakpoint來更改程式碼中的"input" 來符合 password,最終得到索求答案。

--

--

Han-Ru Chen
Han-Ru Chen

Written by Han-Ru Chen

如果能夠重新投胎選擇任一人的人生,我想選擇我自己。 \ linktr: https://linktr.ee/future_outlier\ ted talk: https://youtu.be/aV-Pvb-qmC0?si=lvCFpZde5erQH-wZ \

No responses yet