open-source

题目来源: HackYou CTF

题目描述:菜鸡学逆向学得头皮发麻,终于它拿到了一段源代码

 

 

程序源码如下:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]) {
    if (argc != 4) {
        printf("what?\n");
        exit(1);
    }

    unsigned int first = atoi(argv[1]);
    if (first != 0xcafe) {
        printf("you are wrong, sorry.\n");
        exit(2);
    }

    unsigned int second = atoi(argv[2]);
    if (second % 5 == 3 || second % 17 != 8) {
        printf("ha, you won't get it!\n");
        exit(3);
    }

    if (strcmp("h4cky0u", argv[3])) {
        printf("so close, dude!\n");
        exit(4);
    }

    printf("Brr wrrr grr\n");

    unsigned int hash = first * 31337 + (second % 17) * 11 + strlen(argv[3]) - 1615810207;

    printf("Get your key: ");
    printf("%x\n", hash);
    return 0;
}

 

因此只需要再传入3个参数,第一个等于0xcafe也就是51966,第二个满足模5不等于3且模17等于8,比如25即可,第三个为h4cky0u即可得到flag

c0ffee

posted @ 2021-08-20 15:38  hktk1643  阅读(62)  评论(0编辑  收藏  举报