
先放exeinfo
无壳,但是不是windows的文件
放die比较好一点
很明显看到是64位,mac文件,所以在windows不能运行,但是如果只是静态分析,就可以直接用windows的ida
直接看main函数的代码
输入的是v6,v6长度要等于33,然后v6的每位都要与前一位异或运算(第一位不用)
最后比较的是v6和global,所以global的字符串就是flag异或后的字符串
双击主函数的global
双击aFKWOXZUPFVMDGH
这堆就是global的字符串
光标在字符串内,按下shift+E导出,得到异或之后的十六进制c无符号数组
再写exp再次异或得到原文
exp:
list_1 = [
0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11,
0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F,
0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F,
0x47, 0x32, 0x4F, 0x00
]
flag = chr(list_1[0])
for i in range(1, len(list_1)):
flag += chr(list_1[i]^list_1[i-1])
print(flag)