拿到題,查殼後用ida64開啟。
老樣子查詢字串,找到
點選進入,找到交叉函式f5反編譯,
由下到上分析,如果要輸出
即v18不為0,即v13=v16^v12,v13可以查到資料,不是flag,v16是整型,也不會是flag,所以猜測v12是我們要求的flag,v12[i]=v13[i]^v16就可以求出v12。
這個函式是解題關鍵,但是我看不懂,
但與v6相關的都%22了,所以嘗試一下遍歷0-21個數字來寫指令碼跑一下。
以下是指令碼**
#include
using namespace std;
int main()
;int v6,v15,v11,v16;
//表示byte時,都用unsigned char
unsigned char v13= ;
//擷取了前22個
int i;
for(i=0; i<22; i++)
v12[i]=v13[i]^v16;
}for(i=0; i<22; i++)
攻防世界Reverse題目writeup
小白最近做了一些reverse題目,整理整理 import base64 defencode message s for i in message x ord i 32 x x 16 s chr x return base64.b64encode s correct xlnkvmtui1mgxwbz...
pwn 練習6 攻防世界 level3
這個題做的蠻久的,老樣子,基本操作來一遍 通過ida分析後,沒有system函式,也沒有 bin sh這樣的字眼,但題目給了乙個動態庫,於是我們可以通過另乙個庫,來調出system bin sh 兩個呼叫的動態函式庫相同,所以write函式和system函式之間的位址差值是相同的,所以我們的目的是求...
pwn 練習3 攻防世界 level2
nc連線,file一下32位的 拖進ida 看到熟悉的read想到棧溢位,接著搜尋字串找有用的資訊 看到了如圖花圈的關鍵字 於是我們想到利用棧溢位覆蓋之前的位址,使之能跳轉到system bin sh 通過控制vulnerable function 返回到該偽棧幀執行system bin sh 來g...