1. 程式人生 > 其它 >Bugku-論劍場-MISC-snake

Bugku-論劍場-MISC-snake

Misc-snake

20211020

17:17

描述:只要技術好,攢夠500分就給flag hint:一定得讓我的Snake吃飽,不然他一不高興會出事的~~~

開始我以為需要修改後臺數據登入賬號就可以,發現並不行,所以施工gui反編譯:

找到被加密後的flag字串:

if (this.score >= 500 &&

this.isshow) {

String flag = "eobdxpmbhf\\jpgYaiibYagkc{";

int key = this.snake.len - this.score;

String xx = "";

for (int i = 0; i < flag.length() / 2; i++) {#前半部分的內容把flag前半部分

char c = flag.charAt(i);#獲取字串

c = (char)(c ^ key);#比方式e^key?假設最後結果第一個字串是f,那麼可以直接f=e^key;求key使用key=f^e即可,解出key=3,ord('f')^ord('e')

計算前半部分內容:

計算出flag的長度是25,所以flag.len/2是12。接著寫解密指令碼。

xx = String.valueOf(xx) + c;

}

for (int i = flag.length() / 2 + 1; i < flag.length(); i++) {

#取後半部分flag字串p開始,p^key*2得到p對應的解密字串

char c = flag.charAt(i);

#打個比方,將

c = (char)(c ^ key * 2);

xx = String.valueOf(xx) + c;

}

對應的py解密指令碼:

flag{snake_ia_good_game}