[ACTF新生赛2020]usualCrypt
进入
盲猜base64
swapcase
import base64
flag = ''
dict = {}
offset = 10
string = 'zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9'.swapcase() # sub_401030()
myb = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for i in range(len(myb)):
dict[myb[i]] = myb[i]
for i in range(6, 15): # sub_401000()
dict[myb[i]], dict[myb[i + offset]] = dict[myb[i + offset]], dict[myb[i]] # 恢复base64密钥表
for i in range(len(string)):
flag += dict[myb[i]]
flag = base64.b64decode(flag)
print(flag)
[HDCTF2019]Maze
参考: http://t.csdnimg.cn/TDMSW参考:http://t.csdnimg.cn/TDMSW
先不参考呢
32位有壳
open
有花指令耶
本来程序题写不出来就烦,还得研究这sexy的东西(#>д<)ノ
花指令
先Nop掉那个jnz,然后call那里按n转换为数据Nop那个0e8h然后选择再p
过程别深究(人的认识是从实践到认识,再从认识到实践的过程)
反编译了就
然后发现是迷宫问题,导出数据
*******+********* ****** **** ******* **F****** ********
数了一下算上空格70个,所以应该是10*7的,还给了一个坐标
按空格从加号到f ssaaasaassdddw
[MRCTF2020]Xor
32位打开
反编译失败
尝试,反编译成功
可以不看那头疼的汇编φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′
这个代码好顺啊
#include<stdio.h>
int main()
{
int i,j,n;
char a[28];
char c[]="MSAWB~FXZ:J:`tQJ\"N@ bpdd}8g";
for(i=0;i<27;i++)
{
a[i]=c[i]^i;
printf("%c",a[i]);
}
return 0;
}
[MRCTF2020]hello_world_go
这系一堆什么!!!
查看字符串
就..........离谱