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就行了。

  • 相关阅读:
    若干排序算法简单汇总(二)
    合并两个链表的问题
    pl/sql(2)
    jQuery的DOM操作之加入元素和删除元素
    怎样优雅的研究 RGSS3 (四) 使窗体从画面边缘弹出
    Android经常使用UI组件
    在Hadoop监控页面怎样查看Hive的完整SQL
    HDU4911:Inversion
    AIX系统开启ftp服务
    JavaScript 模拟策略模式
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/13688293.html
Copyright © 2011-2022 走看看