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}

posted @ 2021-10-21 10:13  逆向菜狗  阅读(77)  评论(0编辑  收藏  举报