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)的更多相关文章

随机推荐

  1. 【Microstation】三维建模基础及软件入门到精通实验教程目录

    @ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 MicroStation是一款非常不错的二维和三维设计软件,由奔特力(Bentley)工程软件系统有限公司开发的一款软件.在C ...

  2. php5.6 + apache2.4+mysql5.7 配置

    ----------------------------------------------------- ★软件工具:(下载时注意下载相应版本,不同版本安装细节可能会有差异!!) 1>http ...

  3. Go语言协程并发---生产者消费者实例

    package main import ( "fmt" "strconv" "time" ) /* 改进生产者消费者模型 ·生产者每秒生产一 ...

  4. Linux下Flash-LED的处理

    Linux下Flash-LED的处理 一些LED设备提供两种模式-torch和flash.在LED子系统中,LED类(参见Linux下的LED处理)和LED Flash类,分别支持这些模式.torch ...

  5. python常识系列14-->正则表达式基础之re模块

    前言 勤奋的含义是今天的热血,而不是明天的决心,后天的保证. 一.正则表达式是什么? 描述了一种字符串匹配的模式(pattern) 功能一:用来检查一个字符串串是否含有某种子字符串 功能二:将匹配的子 ...

  6. 谷歌chrome浏览器network中Stalled分析和优化

    谷歌chrome浏览器network中Stalled分析和优化 问题由来 最近项目上要求首页的加载速度,查看浏览器的network发现接口加载速度非常慢. 问题解决思路 SSL 网上有人因为图片加载, ...

  7. 【NX二次开发】Block UI 指定平面

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  8. MySQL 页完全指南——浅入深出页的原理

    之前写了一些关于 MySQL 的 InnoDB 存储引擎的文章,里面好几次都提到了页(Pages)这个概念,但是都只是简要的提了一下.例如之前在聊 InnoDB内存结构 时提到过,但当时的重点是内存架 ...

  9. NOIP模拟测试「简单的区间·简单的玄学·简单的填数·简单的序列」

    简单的区间 $update$ 终于$AC$了 找到$(sum[r]+sum[l](sum表示以中间点为基准的sum)-mx)\%k==0$的点 注意这里$sum$表示是以$mid$为基准点,(即$su ...

  10. Serverless Web Function 实践教程(一):快速部署 Node.js Web 服务

    作为目前广受欢迎的 Web 服务开发语言,Node.js 提供了众多支持 HTTP 场景的相关功能,可以说是为 Web 构建而生.因此,基于 Node.js,也诞生了多种 Web 服务框架,它们对 N ...