天天看點

BUUCTF Reverse Java逆向解密

BUUCTF Reverse Java逆向解密

一天一道CTF題目,能多不能少

下載下傳檔案,發現是個class檔案,這好辦直接使用jd-gui打開,反編譯:

BUUCTF Reverse Java逆向解密

邏輯是如此清晰簡單,就是我們輸入一個字元串

然後經過一個for循環進行異或

然後将得到的新字元串與KEY進行比較,看看是否相等~

這裡我想看看在JAVA中的異或與python中的異或是否一樣,我就進行了java代碼的編譯:

BUUCTF Reverse Java逆向解密

再貼上python的代碼:

strs = [180, 136, 137, 147, 191, 137, 147, 191,
 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]

flag = ""
for i in range(0,len(strs)):
	flag += chr(strs[i] - ord('@') ^ 0x20)
print(flag)
           

也能得到:

BUUCTF Reverse Java逆向解密

事實證明我想的太多了~

結果就得到了flag:

flag{This_is_the_flag_!}