zoukankan      html  css  js  c++  java
  • 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就行了。

  • 相关阅读:
    DOM对象
    多态
    封装和继承
    析构函数
    构造函数
    二维数组
    javascript的基本语法
    javascript数组
    js
    BOM和DOM的区别
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/13688293.html
Copyright © 2011-2022 走看看