# HW4 ## AMessageBox ### 觀察&解題 本題先依照助教上課所說設定好斷點  之後按F9兩次執行程式,並輸入flag,此時x64-dbg也會停在我預設的斷點 而我則去呼叫堆疊那邊,點擊amessagebox_904ac0c699abc2f6.00351108  如此即可跳到執行比較那邊的組語 這邊會拿使用者的input的每個Byte做三件事: 1. 循環左移3個Bit 2. 跟0x87做xor 3. 與某常數做比較  此常數內容如下  ## OOXX ### 觀察&解題 此題ooxx其實只要下贏電腦就會獲得FLAG,但實際上下不贏,所以需要用動態分析方式修改變數來取得勝利 因為輸贏的判斷是由某個函式決定的,這邊我採取IDA分析找出決定勝負的函式  這個函式反編譯後長這樣  他會先檢查X方是否勝利,在檢查O方是否勝利,在檢查是否平手,若都不是則表示局尚未下完,Continue 如果O方勝利,會將對應暫存器的值改成1 而我們的目標就是在檢查完O是否勝利後下斷點,修改暫存器的值 修改的暫存器如下:PF:1->0 TF:1->0 RAX:0->1  之後繼續執行即可贏得勝利 可以在程式跟x64-dbg上看到FLAG   ## trojan ## 觀察&解題 本題直接執行沒有任何事情發生 拿到IDA分析後發現下圖為一個Socket的函式,會做socket、bind、accept  而透過Wireshark打開題目的pcapng檔,發現三個packet特別大,猜測裡面應該是圖片的內容。  綜合上述資訊,猜測這支程式會將電腦畫面截圖後再把圖片透過socket傳送 由於之前猜測packet資料內容是放圖片的16進位,但透過header看不出來是一張圖片,可能是被xor過,隨便拿一張圖片的前4 Byte跟packet資料內容的前4 Byte做xor,得到0vCh  由於四個Byte透過xor轉過來的都是ASCII字元,所以又回去分析了一下IDA看看有沒有0vCh的存在,發現了下圖  這函式會把圖片的每個Byte去xor "0vCh8RrvqkrbxN9Q7Ydx" 而我透過相同邏輯將圖片轉回來,其中packet字串就是Wireshark封包內的資料部分  如此操作後就得到FLAG!! 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up