gcc編譯,無殼:
看一下程式結構:
程式有函式分析錯誤,堆疊的原因,我就沒改它了,因為彙編也簡單,上手就擼:
第乙個關鍵塊:
4017dd就是乙個字串拷貝函式,動態可見,然後4017eb是第乙個無用函式,看一下:12
3456
78910
1112
1314
1516
1718
1920
char
*__cdecl wrong(
char
*a1)
else
}
return
result;
}
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"
);
return
result;
}
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...