攻防世界 RE 三題WP

2021-09-19 16:33:38 字數 2049 閱讀 6624

開啟看看,發現需要乙個引數。在ida裡查詢這個luck next time,交叉引用

再次交叉引用,發現到main函式。

這裡就是關鍵的對比了,看起來像是v8經過某個處理後與明文表對比。動態除錯看看,下端點在v8,發現我們所輸入的字串沒有被處理過,那就更簡單了,直接最原始的明文對比。

每次將執行到這裡會出現乙個flag明文,在下面的跳轉指令初,修改的值使得程式一直驗證正確。最終得到明文flagalexctf

這篇c++的題從靜態上看著很複雜,但是找到驗證的點和參與驗證的引數,再追到引數變化即可,只是這裡的引數沒有進行變化。。可能還有更簡單的做法,我只做到這裡了,這題屬於c++簡單題。

開啟題目,發現有很多個檔案。我很少遇到這種題,一般遇到也是不會做。但裡面有乙個launcher檔案似乎是乙個elf

使用ida檢視也是一些正常的函式,但是位址似乎錯了。只能用edb除錯一下

當執行到這裡時候,看到獲取本地時間

結合靜態函式知道,接下來sub_45a會對該時間字串進行處理。跟進去看看

四個常數很像是md5加密的特徵。繼續動態除錯往下看看

在執行到第五個sprintf的時候看到引數裡出現了md5加密後的字元。但是題目互動裡沒有給出什麼失敗或者成功的字樣。有點迷惑,查閱得知瑪雅文明的終結是2012-12-21所以將時間設定之後再次執行,可以得到flag。

flag

有點像misc題,但是也有收穫。遇見很多個檔案的題,檢視關鍵檔案資訊,會有收穫。常用的直接在linux裡 strings [binary]

開啟試玩,確實是乙個小遊戲,就是在它給出乙個指令的時候需要輸入按下相應的按鍵。一共只有x m 空格 三種型別。如果失敗了就會提示

訪問該**沒有開啟。

在ida中查詢該字串,交叉定位到對應函式

我將它重新命名為了check。在od中找到該函式,下斷點。執行的時候會發現每次執行該函式的時候就是會進行輸入

只要沒有在一定時間內輸入,就會出錯。我試了試,有一些會特別快,沒有反應時間完成。所以按規則玩肯定是很難通過。後面發現每次在這裡之後,會有乙個判斷結果函式,jnz,所以每次修改對應的標誌位即可假裝通過驗證,到達下乙個驗證。類似於結果

即使一直在錯,也一直將遊戲進行下去。最後通過幾個迴圈,輸出了字串

flag就是括號裡的值。

這題給我學到的東西,也不多。但是屬於比較有趣的型別。考察的點應該在動態除錯,其實很多時候我感覺做逆向都是靠耐心的,技術上我還是太少了。開始時候以為sleep函式會很長,於是使用乙個時間加速軟體,加速時間。叫 變速齒輪,可能會對除錯有所幫助。

明天周五,有一節課要結課了,應該會著手做一些課程相關的作業。

攻防世界下一題。

攻防世界Re新手解新手題詳

得到為32bit,vc 6的程式。於是可用ida32開啟。並且切換到偽 檢視main函式 審查程式,先執行程式,並隨便輸入字串 得到wrong 結果,從上向下觀察 第22行有scanf as,v9 根據scanf的引數形式原函式為 scanf s v9 即輸入的字串被儲存在v8中。據此猜測 sub ...

攻防世界 RE 666

link 002wp 顯然是讓我們構造出flag ida pro,反編譯 key是12h也就是18,這樣就得到了flag的長度 然後就是encode這個函式 我們發現每三個字元為一組進行編碼 第乙個字元 a i 0 a i 0 6 key 第二個字元 a i 1 a i 1 6 key 第三個字元 ...

攻防世界 pwn1 wp

先看保護 除了pie全開了。開啟ida分析 因為有canary保護所以要想辦法洩露canary,回頭看那個棧溢位漏洞,發現可以利用先傳送0x88個a過去 後面會自動給你爆出canary,有了canary之後,就簡單了,所以思路就是 先利用棧溢位漏洞獲取canary,再利用拼接的方法將前面的填充補全之...