1.easyre
flag在文件最后的正确判断里
2.reverse1
strncmp函数,找到字符串,提交不对,又发现上面的函数执行时,会将o替换成0。
3.reverse1
strncmp函数,字符替换
4.内涵的软件
一串很像flag的字符串,就是flag
5.新年快乐
UPX脱壳
6.guessgame
IDA打开,直接搜字符串
7.helloword
JEB 打开,main直接看到字符串
8.xor
shift+e 导出字符串
数字和字符异或
tmp=['f',0x0A,'k',0x0C,'w','&','O','.','@',
0x11,'x',0x0D,'Z',';','U',0x11,
'p',0x19,'F',0x1F,'v','"','M','#','D',
0x0E,'g',6,'h',0x0F,'G','2','O']
tmp1=[0 for i in range(33)]
for i in range(33):
if(isinstance(tmp[i],str)):
if(isinstance(tmp[i-1],str)):
tmp1[i]=ord(tmp[i])^ord(tmp[i-1])
else:
tmp1[i]=ord(tmp[i])^tmp[i-1]
else:
tmp1[i]+=tmp[i]^ord(tmp[i-1])
print(''.join(map(chr,tmp1)))
9.reverse_3
复杂函数,归结到固定算法
base64,加法,得到最终字符串
import base64
tmp='e3nifIH9b_C@n@dH'
x=''
for i in range(0,len(tmp)):
x+=chr(ord(tmp[i])-i)
print(base64.b64decode(x))
10.不一样的flag
上下左右地图题
地图题
v4行坐标,v5列坐标,222441144222
11.SimpleRev
大小写,字符匹配,字符爆破
#include <iostream>
int main()
{
char key[] = "adsfkndcls";
char text[] = "killshadow";
int i;
int v3 = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 128; j++)
{
if (j< 'A'||j>'z'||j>'Z'&&j<'a')
{
continue;
}
if ((j-39-key[v3%10]+97)%26+97==text[i])
{
printf("%c", j);
v3++;
break;
}
}
}
}
有个奇怪的问题,python跑的话,小写也可,c跑的话就是大写。
flag=''
text='killshadow'
key='adsfkndcls'
s='ABCDEFGHIJKLMNOPQRSEUVWXYZ'
for i in range(10):
for x in s:
if ord(text[i])==(ord(x)-39-ord(key[i])+97)%26+97:
flag+=x
print(flag)