攻防世界 REVERSE 新手區/re1
先看題,題目描述沒啥有用資訊,直接下附件

打開

先隨便輸個數

估計是個字串匹配的題,接下來用IDA32位打開

看到有個strcmp函式,比較v5和v9,然后判斷v3,根據v3給出相應的結果,這時我看到了個printf(aFLAG),滿懷欣喜地點進去看了

啊?這么快就得到答案了么?(并沒有,,)

看下描述,和運行的那個程式一樣結果,看來是假的

那么那個else后輸出的就應該是代表正確的答案了,跟進unk_413E90

看到flag get,證明沒錯

之后就從判斷條件開始入手v9是要輸入的數,接下來就是找找v5的數值是多少了,直接點擊v5跳轉,看到除了xmmword就沒別的了,那就回傳,

看到開始有個函式包括了v5和xmmword,應該是將xmmword_413E34的值賦給v5,

跟進查看一下


xmmword的值已經出來了:那么v5的值就是 3074656D30633165577B465443545544h了
v5應該是16進制表示的,看下strcmp函式,有個將v5轉換為字串的函式,

百度一下16進制轉字串

這串字符0tem0c1eW{FTCTUD看著不像flag,但是在中間看到了個FTC,再看下題目來源

這不就是flag翻轉過來了嘛,百度了個文字倒序網站,翻轉一下
百度了一下找到了這個:“匯編里面存盤字符是采用小端格式”

啊,天真的我以為得到了flag,直接去提交了
然后,,,試了幾次都不正確,,,,,看下里面的字串,可以看出是串英文:Welcometo,那應該是少了東西在后面,但是也沒看到有啥拼接字串的函式了哇,,,,然后我看到了v6這串字符

跟進去看下

誒?好像沒有哪個地方用了這串字符,那轉下字串試試

然后得到了這串字符: }FTCTUD
嗯?這不就是后半段字符么,拼在之前得到的字串前面(因為是小端格式排列,所以要拼到前面): }FTCTUD0tem0c1eW{FTCTUD
再次翻轉,得到flag: DUTCTF{We1c0met0DUTCTF}

再輸入那個程式驗證一下

但是真的不知道在哪把v6拼到v5前面去了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272564.html
標籤:其他
上一篇:樹莓派從無屏開機到VNC連接桌面

