
直接把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文件头



然后反编译就可以了