zoukankan      html  css  js  c++  java
  • hackme.inndy.tw

    0x01 反编译

    1.第一次尝试的时候我直接在线反编译,部分结果如下。

      for (i, f) in enumerate(F):
          n = pow(f, m, g)
          this_is = 'Y-Combinator'
          l = (lambda f: ((lambda x: x(x)),)((lambda y: (f,)((lambda : y(y)(*args)))
      ))
      )((lambda f: (lambda x: if x < 2:
      1None(x - 1) * x % n)
      ))(g % 27777)
          c = raw_input('Channenge #%d:' % i)
          if int(c) != l:
              print 'Wrong~'
              exit()
          z.append(l)
      print ''.join((lambda .0: continue)(range(16))) % ''.join((lambda .0: continue)(range(32)))
    

    可以看到,在有lambda的地方它反编译的效果很差。。。根本看不懂,于是有了第二步。

    2.第二次我使用了uncompyle2工具反编译,效果不错

    安装及使用参考

    反编译结果我就不放出来了,关键代码如下

      for i, f in enumerate(F):
          n = pow(f, m, g)
          this_is = 'Y-Combinator'
          l = (lambda f: (lambda x: x(x))(lambda y: f(lambda *args: y(y)(*args))))(lambda f: lambda x: (1 if x < 2 else f(x - 1) * x % n))(g % 27777)
          c = raw_input('Channenge #%d:' % i)
          if int(c) != l:
              print 'Wrong~'
              exit()
          z.append(l)
    

    ### 0x02 分析代码

    可以看到只需输入的c和l相等即可,既然我们得到了源码,那么直接把这段check注释掉就好了,然后运行一发就可得到flag~。


    > ### 作者: LB919 > > ### 出处:http://www.cnblogs.com/L1B0/ > > ### 如有转载,荣幸之至!请随手标明出处;
  • 相关阅读:
    leetcode 136 只出现一次的数字
    echo命令 显示内容
    cat 命令 查看文件内容
    more命令 分屏查看文件
    tree 命令 以树形显示目录
    leetcode 16 最接近三数之和 双指针问题
    破解NFC卡
    小米手机root
    软件设计文档
    下属做事拖拉怎么办
  • 原文地址:https://www.cnblogs.com/L1B0/p/8686450.html
Copyright © 2011-2022 走看看