• re | [FlareOn3]Challenge1


    这是一题win32的逆向题。

    【做了好几个elf终于看到pe给我激动坏了】

    主函数逻辑非常清晰:

    输入密码,进行加密,然后和字符串常量进行对比。

    跟进加密函数:

    根据这里的encoding_map和加密方式可以很轻松的看出这是一个魔改的base64加密,解决方案与我之前做的一个题一样,直接按照加密表给他倒回去,推出正常的base64的结果,然后用工具解密【写到这里我突然疑惑了,我为什么不多写两行代码直接用脚本跑出来呢?】

    不管了,直接丢脚本:

     1 encoded_flag = "x2dtJEOmyjacxDemx2eczT5cVS9fVUGvWTuZWjuexjRqy24rV29q"
     2 
     3 #ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/
     4 #ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
     5 _list = list("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
     6 
     7 _flag = ""
     8 
     9 for i in encoded_flag:
    10     if (ord(i) <= ord('W') and ord(i) >= ord('A')) or (ord(i) <= ord('w') and ord(i) >= ord('a')):
    11         _flag += chr(ord(i) + 3)
    12     elif i == 'X':
    13         _flag += 'C'
    14     elif i == 'Y':
    15         _flag += 'B'
    16     elif i == 'Z':
    17         _flag += 'A'
    18     elif i == 'x':
    19         _flag += 'c'
    20     elif i == 'y':
    21         _flag += 'b'
    22     elif i == 'z':
    23         _flag += 'a'
    24     else:
    25         _flag += i
    26     
    27 print(_flag)

    再解base64就行了。

  • 相关阅读:
    AJAX---发送GET请求并传递参数
    AJAX---遵循http协议
    AJAX---onreadystatechange事件中获取相应内容和readystate状态
    AJAX---发送请求
    AJAX---简介
    AJAX---学习roadmap
    jQuery---jquery.ui实现新闻模块
    jQuery---jquery.color.js和jquery.lazyload.js的使用
    jQuery---jQuery插件
    通过JavaScript调用SOAP终结点执行实体消息
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/13688293.html
Copyright © 2020-2023  润新知