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

  • 相关阅读:
    vi 的使用,很详细
    Linux文件的打包与压缩
    Linux初学者学习资料
    正确的关机方法: sync, shutdown, reboot, halt, poweroff, init
    Linux命令下,cp,rm,mv命令的使用
    Linux的文件权限(简单易懂)
    FireBug与FirePHP
    Git进一步学习
    jQuery插件开发
    人生就如做项目
  • 原文地址:https://www.cnblogs.com/Mz1-rc/p/13688293.html
Copyright © 2020-2023  润新知