PixPin_2026-03-31_10-50-40.png
先放exeinfo
PixPin_2026-03-31_10-52-39.png
无壳,但是不是windows的文件
放die比较好一点
ScreenShot_2026-03-31_105545_937.png
很明显看到是64位,mac文件,所以在windows不能运行,但是如果只是静态分析,就可以直接用windows的ida
ScreenShot_2026-03-31_105719_060.png
直接看main函数的代码
输入的是v6,v6长度要等于33,然后v6的每位都要与前一位异或运算(第一位不用)
最后比较的是v6和global,所以global的字符串就是flag异或后的字符串
双击主函数的global
ScreenShot_2026-03-31_110603_903.png
双击aFKWOXZUPFVMDGH
ScreenShot_2026-03-31_110639_937.png
这堆就是global的字符串
光标在字符串内,按下shift+E导出,得到异或之后的十六进制c无符号数组
ScreenShot_2026-03-31_110752_167.png
再写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)

ScreenShot_2026-03-31_111438_896.png