ida 64 位打开,
先看字符串,shift +f12 查看
我就直接从success 这里跟过去了,双击字符串,然后选中字符串ctrl+x跟进
其实和直接进main函数没什么区别,我就想碰碰运气的,嘿嘿.
main函数
注释写的很清楚了
异或是什么也不用管,就是一种运算法则,都是电脑算的,也不用知道具体算法.
global
脚本
因为时从1开始得,所以要把f补上去,这里把所有字符都换成16进制的了
#include <iostream>
using namespace std;
int main(){
char z[] = {0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26,
0x4F, 0x2E, 0x40, 0x11, 0x78, 0x0D,
0x5A, 0x3B, 0x55, 0x11,
0x70, 0x19, 0x46, 0x1F, 0x76, 0x22,
0x4D, 0x23, 0x44, 0x0E, 0x67,
0x06, 0x68, 0x0F, 0x47, 0x32,0x4F};
char flag[66];
int index=0;
for(int i=1;i<33;i++){
(char)flag[index++] = z[i]^z[i-1];
}
flag[index] = '\0';
cout<<"f";
cout<<flag<<endl;
system("pause");
return 0;
}
}
flag:flag{QianQiuWanDai_YiTongJiangHu}
千秋万代,一统江湖
嗷嗷嗷啊