用户
搜索
  • TA的每日心情
    开心
    前天 09:57
  • 签到天数: 50 天

    连续签到: 5 天

    [LV.5]常住居民I

    管理员

    Rank: 9Rank: 9Rank: 9

    74

    主题

    77

    帖子

    1266

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2019-6-14
    发表于 2019-9-23 11:14:40 02246
    1、crypto-rsa

    描述:简单的加密解密哦
    首先访问得到一部分源码:

    11.png

    然后访问/encode,带着参数p:

    12.png

    然后发现存在\n无法直接发送,于是使用python:

    13.png
    14.png

    看上去得到了n 和e还有密文,使用rsa解密:

    15.png
    16.png

    得到明文:/aes_encode
    于是访问

    17.png

    得到flag的密文,因为是aes的,所以拿去解密:
    密钥为/aes_encode

    18.png

    得到flag

    2、normal_re_fight

    程序整体的逻辑是一个类似魔塔的走迷宫游戏,要求以给定的步数从起点走到终点。路径用类似4进制的编码方式,将每三个上下左右的移动操作映射到32-96,作为程序的输入。

    逆向游戏逻辑,可以看出地图上共有五种格子:
    ' ':空地无效果
    '#':墙,不能走
    'C':糖果,+10HP
    'E':敌人,-10HP
    'B':障碍物,可以用锤子打开
    'H':锤子
    通过字符串查找找到的地图是被打乱的,通过引用可以找到映射的公式`(i*10007+233)%925`并恢复出原来的地图:
    ```
    #####################################
    # #       #      E  #         #     #
    # # ### # # ### # ### ##### # ### # #
    # # #C# # # #H# # #   #   # #     # #
    # # # # ### # # # # ### # # ####### #
    #  E# # #   # #C#   #   #   #CCE#   #
    # ### # # ### ####### #######C# # ###
    # #   #   # #      E# #     ###     #
    # ### ##### ####### # # ### # ### # #
    #       #   # #     # #   # #   ### #
    ####### # # # # ##### ### # # # #C# #
    #   # #   #   # #     #   #   # #CCE#
    # # # ##### ### # ##### ####### #####
    # #   #     #   #       #     #     #
    # ### # ##### ########### ### # ### #
    #   # # #C  #           # #   # EC# #
    ### # # ### ########### # # ####### #
    #   # #         # #     # #     #   #
    # ### ######### # # ##### ##### # # #
    #E#   #   #H#   # #   #       #   # #
    # ### # # # # ### ### ###E### ##### #
    #   #   #   #     # #E  # B #   #C# #
    # # ############# # ### ####### #B# #
    # #                   #         #   #
    #####################################
    ```
    接下来就可以人肉走迷宫了,当然也可以写程序跑,得到解后编码即可
    ```python
    t='wsad'
    l=map(lambda x:t.index(x), 'ssaassaaaassssddddwwaaddssaaaawwwwddddwwwwaassaawwaawwwwwwssssssaaaawwwwddwwwwddddssssssddwwddwwwwddddsssswwwwddssssddwwddwwddddddddssddddwwddssssaassaawwaaswddssddwwddwwwwaassaaaawwaassssaawwaassaassssssaaaassddddddwwddwwaawwddddssssddwwddssssddddssssaassaawwaaaawwddwwaaaassssssddddssddssaaaaaaaawwaawwaawwddddwwaaaaaaaaaawwddwwwwddddwwaaaaaawwwwssssddddddssaaaassssaassddddddddddssaaaassddssddssddddddddwwaawwaaaassdd')
    out = ''
    for i in range(0, len(l), 3):
            out += chr(l*16 + l[i+1]*4 + l[i+2] + 32)
    print out
    ```
    将得到的结果输入到程序中
    `6EJE7_"O6J /\ I:"@ %5:H \ _U5?#P#_50#U7P\/__7_#U6EH*3U\/ *6J"E6@I:55JE__#PH/]5\/5?]5I:"J#PJE5?]?6JJ@H*#_"JJJ#P#_"JH 5?_UJE6E___UJE]?7__PH*I?`


    得到flag{f1gH7_y05R_w4Y_0u7!!}

    3、easyRE1


    首先加载进IDA,先看一下基本逻辑,输入的flag首先要小于25,然后进行判断进行判断,如果flag[5]=Y,且flag[8] = flag[11],flag[16] = flag[18],上面的都实现了就执行输出flag函数,我们跟进去看一下然后仔细观察一下flag里的内容,可以看出是base64编码过的,我们找个网站进行解码就可以。

    发新帖
    您需要登录后才可以回帖 登录 | 立即注册