hackme.inndy.tw - pyyy - Writeup
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/
>
> ### 如有转载,荣幸之至!请随手标明出处;
hackme.inndy.tw - pyyy - Writeup的更多相关文章
- hackme.inndy.tw - pyyy
0x01 反编译 1.第一次尝试的时候我直接在线反编译,部分结果如下. for (i, f) in enumerate(F): n = pow(f, m, g) this_is = 'Y-Combin ...
- hackme.inndy.tw的一些Writeup(5月30更新)
hackme.inndy.tw的一些Writeup(6月3日更新) 原文链接:http://www.cnblogs.com/WangAoBo/p/7706719.html 推荐一下https://ha ...
- Hackme.inndy -> Onepunch
Onepunch 这个题的想法必须得称妙了,需要对以往简单的认知进行一定的颠覆.特殊性在于程序的代码段(0x401000)具有写权限 1.通过修改程序代码段控制程序流程 程序中只能对任意一个字节改写一 ...
- jarvis OJ部分writeup
[XMAN]level 0 [XMAN]level 1 —— 简单shellcode利用 [XMAN]level 2 [XMAN]level 3 —— ret2libc尝试 [XMAN]level2& ...
- pyc反编译-uncompyle2的安装及使用
pyc反编译-uncompyle2的安装及使用 0x00 安装 1.下载并解压到安装目录 python setup.py install //安装 2.下载链接: 链接:https://pan.bai ...
- 24.command-executor
这里先给出题目链接: https://command-executor.hackme.inndy.tw/ 这是一道不错的ctf题,首先说一下考察点: 文件包含读源码 代码分析结合CVE CVE导致的命 ...
- HITCON-Training-Writeup
HITCON-Training-Writeup 原文链接M4x@10.0.0.55 项目地址M4x's github,欢迎star~ 更新时间5月16 复习一下二进制基础,写写HITCON-Train ...
- 2018年度 35 个最好用 Vue 开源库
在本文中,我们将推荐一些非常好用的 Vue 相关的开源项目.无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠 ...
- 35 个最好用的 Vue 开源库
35 个最好用的 Vue 开源库 Vue.js 是一个非常易用的渐进式 JavaScript 框架,用于构建用户界面. 1.Vue Dark Mode Vue.js 的一个极简主义的深色设计系统.它提 ...
随机推荐
- SecurityError:Error #2048:安全沙箱冲突
1.错误描述 SecurityError:Error #2048:安全沙箱冲突:http://localhost:8080/YHD/flash/YHD.swf 不能从 http://123.89.45 ...
- 把连续动态bmp转换为avi
把动态bmp24转换为avi BYTE tmp_buf[1024*768*4]; //生成avi void BMPtoAVI(CString szAVIName, CString strBmpDir) ...
- 自用公共js文件
// 加载配置文件var instance = axios.create({ baseURL: 'http://zy-shop.tincent.me/Wechat/', headers: { 'Con ...
- ajax就收data的参数
一,变量 "data": ${cityData},//数据(必传) 二,json data:{"state":"Front"},
- HDU 1392 Surround the Trees(凸包)
题面 懒得粘贴了... 大致题意:坐标系内有若干个点,问把这些点都圈起来的最小凸包周长. 题解 直接求出凸包,统计一遍答案即可 #include<iostream> #include< ...
- 使用Ant打包Java后台程序
概述 本文通过一个简单的Java Application例子描述如何用ANT完成基本的程序打包工作.包含文件拷贝.编译.打包三部分:完成这三部就可以得到一个可运行的程序包了. ANT的安装,环境变量的 ...
- npm包管理器相关知识
关于npm包安装命令的介绍,如下图:
- 简单谈谈js中Promise的用法
首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ...
- CSS3 translate、transform、transition区别
translate:移动, transform的一个方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) ...
- parted分区及挂载实战操作大全
个人原创博客,转载请注明,否则要负法律责任 2017-09-29-14:46:25[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mo ...