忽略查壳步骤
直接进入main,转伪代码
跟下几个重点
s
t
可以发现这里先输入了S
后面还有一串总的来说就是
SharifCTF{????????????????????????????????}
按照红色圈的逻辑上代码
t="SharifCTF{????????????????????????????????}"
s="c61b68366edeb7bdce3c6820314b7498"
i=0
t=list(t)
while(i<len(s)):
if(i & 1): #and
v3=1
else:
v3=-1
t[i+10]=chr(ord(s[i])+v3)
i+=1
print(t)
flag=''
for xx in t:
flag+=xx
print(flag)
出flag
SharifCTF{b70c59275fcfa8aebf2d5911223c6589}
这里附上一个我看来的C代码
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#pragma warning(disable:4996)
int main(void)
{
char v3;
__int64 v5;
char s[] = "c61b68366edeb7bdce3c6820314b7498";
char t[] = "SharifCTF{????????????????????????????????}";
v5 = 0;
while (v5 < strlen(s)) {
if (v5 & 1)
v3 = 1;
else
v3 = -1;
*(t + v5 + 10) = s[v5] + v3;
v5++;
}
printf("%s", t);
system("PAUSE");
return 0;
}