介绍

Z3 在工业应用中实际上常见于软件验证、程序分析等。然而由于功能实在强大,也被用于很多其他领域。CTF 领域来说,能够用约束求解器搞定的问题常见于密码题、二进制逆向、符号执行、Fuzzing 模糊测试等。此外,著名的二进制分析框架 angr 也内置了一个修改版的 Z3。

安装

pip uninstall z3_solver

注意不要安装z3,这是另外一个模块了。

整型(Int)方程求解

from z3 import *a, s, d = Ints('a s d')
x = Solver()
x.add(a-d == 18)
x.add(a+s == 12)
x.add(s-d == 20)
check = x.check()
print(check)
model = x.model()
print(model)
# sat
# [a = 5, d = -13, s = 7]

有理数(Real)型解方程求解

from z3 import *x = Real('x')
y = Real('y')
s = Solver()
s.add(x**2 + y**2 == 3)
s.add(x**3 == 2)
check = s.check()
print(check)
model = s.model()
print(model)
# sat
# [y = -1.1885280594?, x = 1.2599210498?]

位向量(BitVec)型解方程

from z3 import *x, y, z = BitVecs('x y z', 8)
s = Solver()
s.add(x ^ y & z == 12)
s.add(y & z >> 3 == 3)
s.add(z ^ y == 4)
check = s.check()
print(check)
model = s.model()
print(model)
# sat
# [z = 27, y = 31, x = 23]

python z3库学习相关推荐

  1. python整数逆位运算_[python/工具] python z3库学习 减乘除位与运算 ctf一把梭

    今天在vidar的分享会上 s神跟我们讲了一个python的库叫做z3 可以在python中用这个库解决任何方程(只要有解) 网上找不到任何中文资料=.=看来我只能自己写了 z3库的介绍 Z3 在工业 ...

  2. python标准库学习笔记

    原创:python标准库学习笔记 数据结构 bisect 模块里实现了一个向列表插入元素时也会顺便排序的算法. struct - 二进制数据结构:用途:在 Python 基本数据类型和二进制数据之间进 ...

  3. Python pillow库学习笔记

    Python pillow库学习笔记 PIL( Python Imaging Library)是 Python 的第三方图像处理库,由于其功能丰富,API 简洁易用,因此深受好评. 自 2011 年以 ...

  4. python z3库的安装

    好离谱啊电脑重组我又忘了z3库怎么安装了www浅记一下吧 目录 下载安装包 添加环境变量 检验 下载安装包 下载网址Releases · Z3Prover/z3 (github.com) 下载这个就行 ...

  5. Python标准库学习——sys模块

    sys模块可以控制Python Shell窗口信息. 1.version 和 version_info 属性,可以列出目前所使用Python的版本信息. 列出目前所使用Python的版本信息. imp ...

  6. 【Python 标准库学习】安全哈希与摘要算法库 — hashlib

    欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/ hashlib 模块针对不同的安全哈希和消息摘要算法实现了一个通用的接口.提供了常 ...

  7. 【Python 标准库学习】时间相关的函数库 — time

    欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/ time 模块提供了各种时间相关的函数,该模块中的大多数函数是调用了所在平台 C ...

  8. python Fabric库学习

    fabric官网 http://www.fabfile.org/ wrapper封装 v1.12 fabric是一个python库,同时也是一个命令行工具,其利用ssh进行应用开发或是系统管理任务. ...

  9. python必备库 学习笔记 matplotlib

    文章目录 Matplotlib Matplotlib介绍 为什么要学习Matplotlib Matplotlib简单实例 Matplotlib图像结构 Matplotlib三层结构 容器层 辅助显示层 ...

最新文章

  1. [转]slf4j + log4j原理实现及源码分析
  2. python三个点画正弦线_python3绘图示例5(基于matplotlib:正弦图等)
  3. Ethercat解析(十三)之fsm_master状态机
  4. Android -- 屏幕适配
  5. WEB前端使用SheetJS读写excel文件
  6. ELF格式文件符号表全解析及readelf命令使用方法
  7. net idautomationhc39m条形码字体生成条形码
  8. 融云观察:壳壳语音新玩法,深挖语音社交市场
  9. 服务器开发是做什么的和必备技术汇总
  10. 【云原生之Docker实战】使用Docker部署ShowDoc文档工具
  11. 欧几里得扩展欧几里得
  12. Mac解决JAVA_HOME问题
  13. ABR CQP CRF码率控制总结
  14. 关于android 在黑屏情况下wifi下载速度慢的问题的解决。
  15. 一篇文章理解外汇知识
  16. TIA protal v17安装非C盘找不到step7 basic
  17. 前端学习——这十本书一定要看
  18. php querylist 404,Querylist批量采集碰到404咋办
  19. 安装程序找不到office.zh-cn/msvcr80.dll
  20. E40-80安装10.14.5 Mojave方式

热门文章

  1. Word字符输入问题:在方框内输入对号
  2. 解决安卓手机竖向拍照后,图像横屏展示的问题。
  3. 删除stale状态远端分支
  4. ChatGPT提示词指令大全调教指南,6个网站让你轻松玩转AI聊天机器人!
  5. ListActivity加上下文菜单
  6. linux增加用户命令哪些,Linux基础命令:增加用户
  7. 【苹果推】苹果imessage群发安装软件安装“便携式设备”
  8. JavaWeb开发之——DDL-操作表-查询表与创建表(07)
  9. 使用OpenGL挑战抖音蓝线特效
  10. iPhone锁屏密码已停用!不花钱就能解决的三种解锁方法