zoukankan      html  css  js  c++  java
  • 攻防世界 reverse parallel-comparator-200

    parallel-comparator-200 school-ctf-winter-2015

    https://github.com/ctfs/write-ups-2015/tree/master/school-ctf-winter-2015/reverse/parallel-comparator-200

    linux平台,mark,以后解决。

    给出了源代码,关键在于checking函数返回0

    void * checking(void *arg) {
        char *result = malloc(sizeof(char));
        char *argument = (char *)arg;
        *result = (argument[0]+argument[1]) ^ argument[2];
        return result;
    }

    另一点是

        while ((initialization_number = random()) >= 64);
        
        int first_letter;
        first_letter = (initialization_number % 26) + 97;
    initialization_number 其实是个固定值,调试时可得到

    wp:

    differences = [0, 9, -9, -1, 13, -13, -4, -11, -9, -1, -7, 6, -13, 13, 3, 9, -13, -11, 6, -7]
    first_letter = 108
    print (''.join([chr(first_letter+differences[i]) for i in range(len(differences))]))

    lucky_hacker_you_are

  • 相关阅读:
    方法
    Go中的OOP
    GO 结构体
    指针
    闭包
    回调函数
    匿名函数
    函数的数据类型及本质
    defer语句
    递归函数
  • 原文地址:https://www.cnblogs.com/DirWang/p/11545619.html
Copyright © 2011-2022 走看看