当前位置: 首页 > news >正文

做网站时的兼容问题参考消息网国内新闻

做网站时的兼容问题,参考消息网国内新闻,江诗丹顿手表网站,浙江省建设执业注册中心网站z3基础学习 ​ z3是一个微软出品的开源约束求解器,能够解决很多种情况下的给定部分约束条件寻求一组满足条件的解的问题。 安装:pip install z3-solver 1. 简单使用 from z3 import * x Int(x) #创建名为x的int类型变量 y Int(y) solve(x y10,2*x…

z3基础学习

​ z3是一个微软出品的开源约束求解器,能够解决很多种情况下的给定部分约束条件寻求一组满足条件的解的问题。

安装:pip install z3-solver

1. 简单使用

from z3 import *
x = Int('x') #创建名为x的int类型变量
y = Int('y')
solve(x + y==10,2*x+4*y==32) #求解并输出结果
#[y = 6, x = 4]

添加约束条件

from z3 import *
a,b=Ints('a b')
s=Solver() #创建一个约束求解器
s.add(a+b==10) #添加约束条件
s.add(a+3*b==12)if s.check()==sat: #有解r=s.model() #求解
print(r) #[b = 1, a = 9]
print(r[a]) #9
print(r[b]) #1

精度设置,简化表达式

from z3 import *
x=Real('x')
y=simplify(3*x+1==2) #化简表达式
print(y) #x == 1/3
solve(y) #[x = 1/3]
set_option(rational_to_decimal=True) #实数结果以小数呈现,默认10位小数
solve(y) #[x = 0.3333333333?]
set_option(precision=30) #精度设为30位
solve(y) #[x = 0.333333333333333333333333333333?]
#有问号说明输出有精度限制x, y = Reals('x y')
# 简化为单项式之和
t = simplify((x + y)**3, som=True)
print (t) #x*x*x + 3*x*x*y + 3*x*y*y + y*y*y
# 幂运算符简化
t = simplify(t, mul_to_power=True)
print (t) #x**3 + 3*x**2*y + 3*x*y**2 + y**3

快速添加变量

s=[Real('s%d' % i) for i in range(50)] #添加50个Real变量
s.add(s[18]*s[8]==5)

可见字符

s.add(x<127)
s.add(x>=32)

注意:

  • 当问题有多个解时,z3求解器只会输出一个解
  • z3不允许列表与列表间添加==约束

2. 数据类型

数据类型格式解释
整数x=Int('x')
实数y=Real('y')
RealVal(1)实数1
布尔b=Bool('b')
有理数Q(1,3)表示1/3
位向量x=BitVec('x',16)长度16位的变量x
BitVecVal(10,32)大小为32的位向量,其值为10
数组a=Array('a',IntSort(),IntSort())索引为整数,值为整数

3. 布尔逻辑与常见运算符

>> <<
== >= > !=
And() Or() Not() 
Implies(P,Q) #蕴含式 p->Q,若P则Q
z=If(b,x,y) #b为真,则z=x,否则z=y

4. 尝试一下

useZ3.bin

main函数

在这里插入图片描述

跟踪一下

在这里插入图片描述

a1,a2是Dword数组的地址,按Y改一波类型

在这里插入图片描述

在这里插入图片描述

from z3 import *
dword_602120=[0x0000007A, 0x000000CF, 0x0000008C, 0x00000095, 0x0000008E, 0x000000A8, 0x0000005F, 0x000000C9, 0x0000007A, 0x00000091, 0x00000088, 0x000000A7, 0x00000070, 0x000000C0, 0x0000007F, 0x00000089, 0x00000086, 0x00000093, 0x0000005F, 0x000000CF, 0x0000006E, 0x00000086, 0x00000085, 0x000000AD, 0x00000088, 0x000000D4, 0x000000A0, 0x000000A2, 0x00000098, 0x000000B3, 0x00000079, 0x000000C1, 0x0000007E, 0x0000007E, 0x00000077, 0x00000093]
dword_6021C0=[0x00000010, 0x00000008, 0x00000008, 0x0000000E, 0x00000006, 0x0000000B, 0x00000005, 0x00000017, 0x00000005, 0x0000000A, 0x0000000C, 0x00000017, 0x0000000E, 0x00000017, 0x00000013, 0x00000007, 0x00000008, 0x0000000A, 0x00000004, 0x0000000D, 0x00000016, 0x00000011, 0x0000000B, 0x00000016, 0x00000006, 0x0000000E, 0x00000002, 0x0000000B, 0x00000012, 0x00000009, 0x00000005, 0x00000008, 0x00000008, 0x0000000A, 0x00000010, 0x0000000D]
unk_602080=[0x00000008, 0x00000001, 0x00000007, 0x00000001, 0x00000001, 0x00000000, 0x00000004, 0x00000008, 0x00000001, 0x00000002, 0x00000003, 0x00000009, 0x00000003, 0x00000008, 0x00000006, 0x00000006, 0x00000004, 0x00000008, 0x00000003, 0x00000005, 0x00000007, 0x00000008, 0x00000008, 0x00000007, 0x00000000, 0x00000009, 0x00000000, 0x00000002, 0x00000003, 0x00000004, 0x00000002, 0x00000003, 0x00000002, 0x00000005, 0x00000004, 0x00000000]
s=Solver()
a1=[BitVec('%d' % i, 8) for i in range(36)] #8位位向量
ptr=[0]*36
v7=[0]*36
v8=[0]*36
v9=[0]*36for i in range(36):s.add(a1[i] <127)   #添加约束条件①s.add(a1[i] >=32)for i in range(36):ptr[i] = a1[i] >> 4v7[i] = a1[i] & 15for i in range(6):for j in range(6):for k in range(6):v8[6*i+j] += ptr[6*i + k] * unk_602080[6*k+j]for i in range(6):for j in range(6):v9[6*i+j]=v7[6*i+j]+unk_602080[6*i+j] #原函数识别一下数组for i in range(36):s.add(v8[i] == dword_602120[i])s.add(v9[i] == dword_6021C0[i])flag=[]
if s.check()==sat:r=s.model()for i in a1:flag.append(r[i].as_long())#BitVecNumRef转长整型print("".join(chr(x) for x in flag))
else:print("无解")
#hgame{1_think_Matr1x_is_very_usef5l}

参考

  1. z3学习 lancer0rz
http://www.yidumall.com/news/34730.html

相关文章:

  • 销售网站制作危机公关
  • 公司企业邮箱是什么搜索引擎优化宝典
  • 做淘宝美工和网站设计那个好专业seo优化公司
  • 牛b叉网站建设网络营销推广工作内容
  • 做编程的+网站百度资源平台
  • 超酷网站欣赏最新军事新闻今日最新消息
  • 邯郸网站建设推广佛山网站建设正规公司
  • 安徽工程建设信息网站王开林常用的网络推广的方法有哪些
  • wordpress 连接丢失南宁网站运营优化平台
  • 电商网站 服务器长春关键词优化公司
  • 如果建网站广告推销网站
  • 海拉尔网站建设平台搜索引擎是软件还是网站
  • 佛山网站建设品牌品牌宣传推广策划方案
  • 网站改版原则巢湖网站制作
  • 哪家做网站公司营业推广
  • flash网站设计百度云登录入口
  • 哪里有学市场营销培训班上海seo网站推广
  • 网站怎么做全站搜索搜索引擎优化的定义是什么
  • 服务器销售网站源码做一套二级域名网站怎么做
  • 做网站接私活流程百度seo教程网
  • 安徽省建设厅网站证书查询关键词排名是什么意思
  • 成全视频免费观看在线看下载动漫seo整站优化方案案例
  • 做网站的中文名字免费推广网址
  • wix如何做网站百度推广下载
  • 网站建设新闻稿百度网站的网址
  • 有没有专做水果网站云搜索引擎
  • 搜狗网站入口百度seo引流怎么做
  • html网站开发教程班级优化大师
  • 成都网站排名 生客seo怎么样新冠疫情最新情况
  • 为什么用wp做网站企业网站推广方案设计