hfctfwp(re)
1.easy python revering
看字节码操作,昂哥直接看直接写exp太强了,我就直接手动写了个源码出来(昂哥永远滴神)
arr0=[249,91,149,113,16,91,53,41,8]
arr1=[43,1,6,69,20,62,6,44,24,113,6,35,0,3,6,44,20,22,127,60]
arr2=[90,100,87,109,86,108,86,105,90,104,88,102]
def check0(flag):
for x in flag:
if ord(x)<32 and ord(x)>=128:
return True
return False
def check1(flag):
if len(flag)<100==False:
return False
if ((len(flag)*len(flag))%777)^233==513:
return True
else:
return False
def check2(flag):
if (((((ord(flag[0])*128)+(ord(flag[1])))*128+(ord(flag[2])))*128+(ord(flag[3])))*128+ord(flag[4]))*128+ord(flag[5])!=3533889469877:
return False
else:
if ord(flag[-1])+1!=125:
return False
return True
w=lambda x,y:x^y #前一个和后一个异或
def check3(flag):
arr=map(ord,flag)
a=arr[6:30:3]
for i in range(len(a)):
if((a[i]*17684+372511)%257)!=arr0[i]:
return False
b=arr[-2:33:-1]*5
c=map(w,zip(b,arr[7:27]))
if c!=arr1:
return False
p=0
for i in range(28,34):
if ((arr[i]+107)/16+77)!=arr2[p] and ((arr[i]+117)%16+99)!=arr2[p]:
return False
else:
return True
根据第一个check1,知道flag长度39
第二个check2,前五个其实盲是flag{这五个字符,代入验证也是对的
同时最后一个字符也就出来了,}是这个。
第三个check3()里面之前是验证出ASCII码值大于32小于128,直接爆破,先将6,30,3的爆破出来,之后再继续往下看发现是38倒序过来,的才能求,所以要先求出38,33的值,之后求完后,列表乘以5,是一模一样复制5个,说明是周期性,就用求余,再异或回去,再将剩余的也爆破一下。搞定。
总结一下,不要盲目的用z3来求,直接爆破,简单快捷,然后就是py的一些性质,这次也见到了之前很多没学过的东西,完全是边打边学,其他题太难了,顶不住。
hfctfwp(re)的更多相关文章
随机推荐
- 手机POS机
资质查询 http://www.pbc.gov.cn/zhengwugongkai/127924/128041/2951606/1923625/1923629/d6d180ae/index4.html ...
- MYSQL数据库快速添加测试数据方法
先添加两条数据,这里最好添加两条不一样的数据 INSERT INTO "表名"(**, **) VALUES (**,**),(**,**) 然后再次添加数据,这次把查询到的数据添 ...
- 『动善时』JMeter基础 — 27、通过JMeter函数助手实现参数化
目录 1.测试计划中的元件 2.数据文件内容 3.函数助手配置 (1)函数助手的打开方式 (2)函数助手界面介绍 (3)编辑后的函数助手界面 4.HTTP请求组件内容 5.线程组元件内容 6.脚本运行 ...
- 【odoo14】【用户侧】权限配置
以下内容仅适用于odoo的客户,不适用于开发人员. 下文介绍中涉及的概念及UI均是在odoo14社区版中进行. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2.2 UI方式实现权限 ...
- Deformable 可变形的DETR
Deformable 可变形的DETR This repository is an official implementation of the paper Deformable DETR: Defo ...
- 微信架构 & 支付架构(上)
微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边 ...
- JAVA并发(7)-并发队列PriorityBlockingQueue的源码分析
本文讲PriorityBlockingQueue(优先阻塞队列) 1. 介绍 一个无界的具有优先级的阻塞队列,使用跟PriorityQueue相同的顺序规则,默认顺序是自然顺序(从小到大).若传入的对 ...
- 『言善信』Fiddler工具 — 10、Fiddler自动响应器(AutoResponder)的应用
目录 1.图片重定向 2.URL重定向 3.本地调试js文件 4.模拟Mock接口测试 5.综合练习 6.总结 介绍几个Fiddler自动响应器(AutoResponder)应用场景: 场景一:生产环 ...
- Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer
作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...
- Linux面试题(史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...