打開IDA直接F5以下c++
通過分析箭頭處纔是最關鍵的函數
encode函數雖然是引用,可是函數內並無對其進行修改,而是將其副本base64加密網站
查詢到 flllag 和 sttr_home 的值 計算v13的值加密
計算過程直接複製粘貼,修改到能編譯就好了spa
而後異或出來goal 也就是咱們的輸入code
#include<bits/stdc++.h> using namespace std; string str="664e06226625425d562e766e042d422c072c45692d125c7e6552606954646643"; string str2=str; string fflag="flag{hello_player_come_on_hahah}"; string flag=str; signed __int64 A(char a1) { if ( a1 > 47 && a1 <= 57 ) return (unsigned int)(a1 - 48); if ( a1 > 64 && a1 <= 70 ) return (unsigned int)(a1 - 55); if ( a1 <= 96 || a1 > 102 ) return 0xFFFFFFFFLL; return (unsigned int)(a1 - 87); } __int64 B(char a1,char a2) { int v2; v2 = 16 * (unsigned __int64)A(a1); return v2 + (unsigned int)A(a2); } int main() { freopen("b.out","w",stdout); int j=0; for(int i=0;i<64;i+=2) { str2[j++]=B(str[i],str[i+1]); } for(int i=0;i<32;i++) { flag[i]=fflag[i]^str2[i]^i; printf("%c",flag[i]); } return 0; } /* flag{hello_player_come_on_hahah} 664e06226625425d562e766e042d422c072c45692d125c7e6552606954646643 */
可是輸出結果不太使人滿意blog
查錯很久都沒辦法 後來直接傳參給file運行了一下發現它就是正確答案get
而後把文件在這個網站 (http://www.atool9.com/) MD5一下獲得答案string