新手一枚,如有错误(不足)请指正,谢谢!!
题目链接:你大概需要一个优秀的mac

IDA64打开,进入main函数
挨个函数进行分析

写脚本

#include <stdio.h>
int main(void)
{
    char str[56] = {
    0x00000015, 0x0000001F, 0x00000012, 0x00000014, 0x00000008, 0x0000003A, 0x00000046, 0x0000002C,
    0x00000007, 0x0000001B, 0x00000051, 0x00000013, 0x0000003F, 0x00000057, 0x00000008, 0x00000005,
    0x0000003F, 0x00000030, 0x00000032, 0x00000051, 0x00000052, 0x00000002, 0x0000006E, 0x00000078,
    0x00000016, 0x0000007C, 0x0000006E, 0x00000061, 0x00000070, 0x00000048, 0x0000001C, 0x0000003B,
    0x00000032, 0x0000002A, 0x00000013, 0x00000045, 0x00000007, 0x0000002A, 0x00000018, 0x0000000C,
    0x0000006E, 0x00000041, 0x00000070, 0x00000004, 0x00000006, 0x0000006E, 0x0000005C, 0x00000000,
    0x00000042, 0x00000045, 0x00000070, 0x0000005A, 0x00000002, 0x00000004, 0x0000000E, 0x0000004C
    };
    char flag[57] = {0};
    int i;
    for(i=55;i>39;i--)
        flag[i] = str[i] ^ 239;
    for(i=39;i>29;i--)
        flag[i] = str[i] ^ 171;
    for(i=29;i>19;i--)
        flag[i] = str[i] ^ 239;
    for(i=19;i>9;i--)
        flag[i] = str[i] ^ 190;
    for(i=9;i>=0;i--)
        flag[i] = str[i] ^ 173;
    for(i=0;i<56;i++)
        flag[i] ^= 222;
    puts(flag);
    return 0;
}


flag{I5_th1s_7he_PR1c3_I’M_PAyiNG_f0r_my_pA57_m1stAk35?}