0
点赞
收藏
分享

微信扫一扫

攻防世界新——区re

迪莉娅1979 2022-03-22 阅读 92

re_1___game

直接ida,找到返回flag的函数,跟进,如图

在这里插入图片描述

根据反编译代码写脚本

在这里插入图片描述

得flag

在这里插入图片描述

re_2__open-source

源码如下


#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;

}


first=0xcafe

由下式计算second


second=1

while 1:

    if second % 5 != 3 :

        if second % 17 == 8:

            break

    second+=1

后计算


hash = first * 31337 + (second % 17) * 11 + 7 - 1615810207

以16进制输出


print(hex(hash))

0xc0ffee

将c0ffee提交即可

re_3__simple-unpack

将下载的文件放入exeinfope

在这里插入图片描述

发现有壳

将其传入kali进行脱壳

在这里插入图片描述

再将文件传回Windows放入ida

在mian中得到flag

在这里插入图片描述

re_4__logmein

拖入exeinfope查看后直接用ida64打开

在这里插入图片描述

发现了一个疑似flag的运算

在这里插入图片描述

直接写脚本


key_1=":\"AL_RT^L*.?+6/46"

key_2="harambe"

key_3=""

for i in range(len(key_1)):

    key_3+=chr(ord(key_2[i%7]) ^ ord(key_1[i]))

print(key3)

得flag


RC3-2016-XORISGUD

攻防世界srm-50

我们先查个壳

在这里插入图片描述

发现32位,扔ida看看

在这里插入图片描述

我们可以直接看到flag就是v11

注意下顺序,将v11输出就得到flag:CZ9dmq4c8g9G7bAX

攻防世界Mysterious

先将得到的文件扔进exeinfo看看

在这里插入图片描述

发现是32位,拉进ida瞅瞅

在这里插入图片描述

啊哈,我们看到了flag,

其中有一段未知

 strcat(Text, Source);

我们追踪一下Source

_itoa(Value, Source, 10);

找到Value

Value = v4 + 1;

我们通过判断条件可知v4=122,即Value=123.

if ( v4 == 122 && String[3] == 120 && String[5] == 122 && String[4] == 121 )

得flag{123_Buff3r_0v3rf|0w}

举报

相关推荐

0 条评论