網鼎盃2020 joker逆向

2022-03-09 16:19:12 字數 1941 閱讀 3434

gcc編譯,無殼:

看一下程式結構:

程式有函式分析錯誤,堆疊的原因,我就沒改它了,因為彙編也簡單,上手就擼:

第乙個關鍵塊:

4017dd就是乙個字串拷貝函式,動態可見,然後4017eb是第乙個無用函式,看一下:12

3456

78910

1112

1314

1516

1718

1920

char*__cdecl wrong(char*a1)

else

}

returnresult;

}

a1就是輸入的flag,簡單操作之後到4017f9函式判斷:12

3456

78910

1112

1314

1516

1718

1920

int__cdecl omg(char*a1)

if( v4 == 1 )

result =puts("hahahaha_do_you_find_me?");

else

result =puts("wrong ~~ but seems a little program");

returnresult;

}

byte_4030c0是硬編碼字元,大概逆一下得到虛假flag:

byte_4030c0=[0x66, 0x6b, 0x63, 0x64, 0x7f, 0x61,  0x67, 0x64, 0x3b, 0x56, 0x6b, 0x61, 0x7b, 0x26, 0x3b, 0x50, 0x63, 0x5f, 0x4d, 0x5a, 0x71, 0x0c, 0x37, 0x66]

flag=""

for i in range(23):

if i &1:

byte_4030c0[i]+=i

else:

byte_4030c0[i]^=i

for i in range(23):

flag+=chr(byte_4030c0[i])

print(flag)

flag的異或答案,那麼:答案就是b37a}

所以flag

總結:感染函式,自解密很到位,但最後的函式確實有點無腦,這樣盲猜不適合大型比賽,不行就好好整演算法題目像kctf一樣(手動狗頭.jpg)

2020網鼎盃 逆向青龍組 Joker

拉入 ida,f5 反編譯,有幾處函式呼叫後不正常的棧指標,alt k 修改即可 即此函式或指令執行後棧指標的變化是多少 根據 wrong 和 omg 兩個函式,可以寫出 解出字串 ida 中選中字串,shift e 即可拿出資料 明顯不是,繼續向後看 encrypt 函式。這個函式是一串亂碼,根據...

網鼎盃2020朱雀組 web

nmap那題就基本命令然後還有乙個別的方法。用的是nmap,提示 一開始以為是ping命令,後來發現過濾了php。後來試了下nmap的命令組合成功了。payload il flag on flag.txt 存入flag.txt之後直接訪問就行了 php escapeshell 命令執行 因為過濾了p...

網鼎盃 2020 朱雀組 phpweb

在這裡插入 片 重新整理過後 看到他兩個post引數 他名字提示的很明顯了,就是這個函式可以進行任意更改 我起初換成system 直接命令執行 可能他過濾了某些函式,那就讀一下index.php的內容 disable fun array exec shell exec system passthru...