2020年DASCTF六月團隊賽 REVERSE Magia

2020年DASCTF六月團隊賽 REVERSE Magia

IDA靜態分析

程序爲32位Windows程序,拖入IDA3Pro分析

字符串輸入檢測

在這裏插入圖片描述
在這裏插入圖片描述
輸入字符串後進入sub_403290()函數檢測,滿足以下條件:
1.字符串必須爲32位。
2、第1、2、3、4、32位分別爲‘N’、‘e’、‘p’、‘{’、‘}’。
不滿足,則退出。滿足則進入下一步檢測。

字符間邏輯檢測

在這裏插入圖片描述
依次對第一個字符與最後一個、第二個字符與到數字二個、第三個與倒數第三…第16個與第32個,兩個字符滿足以下條件:
設key爲字符串,i(0-16)爲字符串的下標
1.key[i] ^ key[-(i+1)],依次等於:

0x33 0x00 0x15 0x09 0x0B 0x36 0x06 0x0C 0x02 0x3A 0x2C 0x08 0x31 0x0B 0x37 0x0C

2 .key[i] & key[-(i+1)],依次等於:

0x4C 0x65 0x60 0x72 0x64 0x49 0x70 0x63 0x6C 0x45 0x53 0x61 0x4E 0x64 0x48 0x61

3.key[i] & 0xf,依次等於:

0x0E 0x05 0x00 0x0B 0x0D 0x09 0x02 0x03 0x0C 0x05 0x0F 0x01 0x0E 0x04 0x0F 0x0D

4.key[-(i+1)] & 0xf,依次等於:

0x01 0x08 0x0F 0x0F 0x09 0x03 0x0F 0x0E 0x0F 0x04 0x0F 0x06 0x02 0x05 0x05 0x0D 

根據以上邏輯關係可以爆破出input:
|:------::-------|第幾位1
根據題目中提示的格式爲

abcd_efgh_...

可確定爲:

Nep{mircle_and_maho_is_not_free}

輸入驗證:
在這裏插入圖片描述
說明正確,但提示:

It_is_that_true?

這還不是flag。

繼續IDA分析

在這裏插入圖片描述
輸入驗證正確後,首先對word_403006的數據進行了計算處理
在這裏插入圖片描述
在這裏插入圖片描述
然後將sub_403000();作爲函數調用。word_403006與輸入的字符串進行計算轉換後轉換爲執行代碼。
在這裏插入圖片描述

利用XDBG進行動態分析

text:004019F6 call sub_403000,在004019F6出下斷,跟蹤,經過幾個循環
在這裏插入圖片描述
sub_403000爲生成flag的函數,在函數中跟蹤運行。
在這裏插入圖片描述
跟蹤到地址00403221處在0018FE70處找到生成的flag:8b272473500a451286ab225413f1debd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章