这个题真的好玩 核心其实 就是这个
#include <stdio.h>
#include<iostream>
#include<iomanip>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<iostream>
#include<map>
#include<time.h>
#include<queue>
#include <Windows.h>
#include "windows.h"
using namespace std;
int main()
{
int s,i=0;
s=-10000000;
while(s)
{
i++;
s--;
}
printf("%d\n",i);
return 0;
}
运行的话 就是
也就是说 其实这个循环就是 s=i 其实也很好猜想 就是 s 要减到0 那么需要循环的次数 就是 -1000000的补码 而 补码打印出来 也就是 这个数 所以 还是那个数。。。。。 说起来有点绕。 但确实是这样
然后 修改一下 直接运行就好了
#include <stdio.h>
#include<iostream>
#include<iomanip>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#include<iostream>
#include<map>
#include<time.h>
#include<queue>
#include <Windows.h>
#include "windows.h"
using namespace std;
int mul(int a,int b)
{
return a*b;
}
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int main()
{
int v3; // eax
int v4; // ST1C_4
int v5; // ST20_4
int v6; // ST20_4
signed int i; // [esp+4h] [ebp-90h]
signed int j; // [esp+8h] [ebp-8Ch]
int v10[32]; // [esp+Ch] [ebp-88h]
int v11; // [esp+8Ch] [ebp-8h]
for ( i = 0; i < 32; ++i )
v10[i] = 1;
v11 = 0;
puts("Your flag is:");
v3 = mul(v10[0], 1000000000);
v3 = sub(v3, 999999950);
v10[0]=mul(v3, 2);
v3 = add(v10[1], 5000000);
v3 = sub(v3, 6666666);
v3 = add(v3, 1666666);
v3 = add(v3, 45);
v3 = mul(v3, 2);
v10[1]=add(v3, 5);
v3 = mul(v10[2], 1000000000);
v3 = sub(v3, 999999950);
v3 = mul(v3, 2);
v10[2]=add(v3, 2);
v3 = add(v10[3], 55);
v3 = sub(v3, 3);
v3 = add(v3, 4);
v10[3]=sub(v3, 1);
v3 = mul(v10[4], 100000000);
v3 = sub(v3, 99999950);
v3 = mul(v3, 2);
v10[4]=add(v3, 2);
v3 = sub(v10[5], 1);
v3 = mul(v3, 1000000000);
v3 = add(v3, 55);
v10[5]=sub(v3, 3);
v3 = mul(v10[6], 1000000);
v3 = sub(v3, 999975);
v10[6]=mul(v3, 4);
v3 = add(v10[7], 55);
v3 = sub(v3, 33);
v3 = add(v3, 44);
v10[7]=sub(v3, 11);
v3 = mul(v10[8], 10);
v3 = sub(v3, 5);
v3 = mul(v3, 8);
v10[8]=add(v3, 9);
v3 = add(v10[9], 0);
v3 = sub(v3, 0);
v3 = add(v3, 11);
v3 = sub(v3, 11);
v10[9]=add(v3, 53);
v3 = add(v10[10], 49);
v3 = sub(v3, 2);
v3 = add(v3, 4);
v10[10]=sub(v3, 2);
v3 = mul(v10[11], 1000000);
v3 = sub(v3, 999999);
v3 = mul(v3, 4);
v10[11]=add(v3, 50);
v3 = add(v10[12], 1);
v3 = add(v3, 1);
v3 = add(v3, 1);
v3 = add(v3, 1);
v3 = add(v3, 1);
v3 = add(v3, 1);
v3 = add(v3, 10);
v10[12]=add(v3, 32);
v3 = mul(v10[13], 10);
v3 = sub(v3, 5);
v3 = mul(v3, 8);
v3 = add(v3, 9);
v10[13]=add(v3, 48);
v3 = sub(v10[14], 1);
v3 = mul(v3, -294967296);
v3 = add(v3, 55);
v10[14]=sub(v3, 3);
v3 = add(v10[15], 1);
v3 = add(v3, 2);
v3 = add(v3, 3);
v3 = add(v3, 4);
v3 = add(v3, 5);
v3 = add(v3, 6);
v3 = add(v3, 7);
v10[15]=add(v3, 20);
v3 = mul(v10[16], 10);
v3 = sub(v3, 5);
v3 = mul(v3, 8);
v3 = add(v3, 9);
v10[16]=add(v3, 48);
v3 = add(v10[17], 7);
v3 = add(v3, 6);
v3 = add(v3, 5);
v3 = add(v3, 4);
v3 = add(v3, 3);
v3 = add(v3, 2);
v3 = add(v3, 1);
v10[17]=add(v3, 20);
v3 = add(v10[18], 7);
v3 = add(v3, 2);
v3 = add(v3, 4);
v3 = add(v3, 3);
v3 = add(v3, 6);
v3 = add(v3, 5);
v3 = add(v3, 1);
v10[18]=add(v3, 20);
v3 = mul(v10[19], 1000000);
v3 = sub(v3, 999999);
v3 = mul(v3, 4);
v3 = add(v3, 50);
v10[19]=sub(v3, 1);
v3 = sub(v10[20], 1);
v3 = mul(v3, -294967296);
v3 = add(v3, 49);
v10[20]=sub(v3, 1);
v3 = sub(v10[21], 1);
v3 = mul(v3, 1000000000);
v3 = add(v3, 54);
v3 = sub(v3, 1);
v3 = add(v3, 1000000000);
v10[21]=sub(v3, 1000000000);
v3 = add(v10[22], 49);
v3 = sub(v3, 1);
v3 = add(v3, 2);
v10[22]=sub(v3, 1);
v3 = mul(v10[23], 10);
v3 = sub(v3, 5);
v3 = mul(v3, 8);
v3 = add(v3, 9);
v10[23]=add(v3, 48);
v3 = add(v10[24], 1);
v3 = add(v3, 3);
v3 = add(v3, 3);
v3 = add(v3, 3);
v3 = add(v3, 6);
v3 = add(v3, 6);
v3 = add(v3, 6);
v10[24]=add(v3, 20);
v3 = add(v10[25], 55);
v3 = sub(v3, 33);
v3 = add(v3, 44);
v3 = sub(v3, 11);
v10[25]=add(v3, 42);
v10[26]=add(v10[26], v10[25]);
v10[27]=add(v10[27], v10[12]);
v4 = v10[27];
v3 = sub(v10[28], 1);
v3 = add(v3, v4);
v10[28]=sub(v3, 1);
v5 = v10[23];
v3 = sub(v10[29], 1);
v3 = mul(v3, 1000000);
v10[29]=add(v3, v5);
v6 = v10[27];
v3 = add(v10[30], 1);
v10[30]=mul(v3, v6);
v10[31]=add(v10[31], v10[30]);
printf("CTF{");
for ( j = 0; j < 32; ++j )
printf("%c", (v10[j]));
printf("}\n");
return 0;
}
get 到flag