直接把key打印出来,然后整理一下result,让key和result进行异或
- key=[242,168,247,147,87,203,51,248,17,69,162,120,196,150,193,154,145,8]
- data=[0xbc,0xfb,0xa4,0xd0,0x03,0x8d,0x48,0xbd,0x4b,0x00,0xf8,0x27,0x96,0xd3,0x93,0xdf,0xec]
- for i in range(len(key)):
- print(chr(key[i]^data[i]),end="")
就是一个简单的替换
- flag='{34sy_r3v3rs3}'
- print('NSSCTF',end="")
- for i in flag:
- if i=="3":
- print('e',end="")
- elif i=='4':
- print('a', end="")
- else:
- print(i,end="")
- str="d`vxbQd"
- for i in str:
- print(chr((ord(i)^0x2)-1),end="")
看到了主函数
strcmp函数在init中替换了
实际上调用的是一个base64加密函数
找到密文
直接解密就可以
加了UPX壳,直接脱
也是一个base64加密
直接解密就可以了
一片爆红,有花指令,改一下
然后反编译
’
是先替换再异或,逆一下
- str='c~scvdzKCEoDEZ[^roDICUMC'
- data=[]
- flag=""
- for i in str:
- data.append(chr(ord(i)^0x30))
- for i in range(len(data)):
- if i%2==0:
- flag+=data[i+1]
- flag+=data[i]
- else:
- continue
- print(flag)
使用一个工具
得到了一个文件夹
给src添加.pyc文件后缀名
用struct文件头来修改src文件头
然后反编译就可以了