日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

CTF Re-Python z3库的使用

發布時間:2025/3/21 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTF Re-Python z3库的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 安裝:

z3是由微軟公司開發的一個優秀的SMT求解器(也就定理證明器),它能夠檢查邏輯表達式的可滿足性。

我是在windows下pyCharm 里面自己添加包 包名為z3-slover(不是z3)

二 使用:

庫內函數:

1.創建一個解的聲明對象:

s = Solver()

2.添加條件:

s.add(判斷公式)

3.判斷是否有解:

s.check()

如果有解 則反回sate/sat?反之 返回 unsate/unsat

4.返回最后的解:

result=s.modul()print(result)

5.聲明不同類型的未知數:
?

a, s, d = Ints('a s d')#創建一個‘int’類型的對象,但其實運算時候是'ArithRef'類型,#并且無法使用按位運算 x = Real('x') #創建一個有理數類型的變量。 y = Real('y')

z3庫最牛逼的來了:上面兩個就是比正常多元未知數復雜了點,求解按位運算才是這個庫最吊的!

BitVecs(name,bv,ctx=None),創建一個有多變量的位向量,name是名字,bv表示大小 #a,b,c=s=BitVecs('a b c',32) Bitvex(name,bv,ctx=None),創建一個位向量,name是他的名字,bv表示大小 BitVecSort(bv,ctx=None),創建一個指定大小的位向量 BitVecVal(val,bv,ctx=None),創建一個位向量,有初始值,沒名字

三:例題

大概使用流程:

from z3 import * a, b, c=BitVecs('a b c',32) d, e, f=BitVecs('d e f',32) g, h, i=BitVecs('g h i',32) key=[a,b,c,d,e,f,g,h] s = Solver() s.add()check = s.check() print(check) model = s.model() print(model)

四:CTF逆向的使用

對于一些較為復雜的算法,我們很難逆向或者爆破求出他的最終結果,這時可以使用z3庫正向幫助我們解決問題。

特殊代碼

X = ?[BitVec(('x%s' % i),8) for i in range(0x22) ]? ?聲明一個列表,數據類型是向量,形式是 xi,向量的大小是8

[x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33]

.as_long()函數可以把z3庫里面特殊的類型轉換成long類型

例如: res.append(chr(m[flag[i]].as_long()))

例題:第八屆極客大挑戰REConvolution

關鍵代碼:

int __cdecl main(int argc, const char **argv, const char **envp) {unsigned int ii; // esiunsigned int v4; // kr00_4char flag_i; // blunsigned int jj; // eaxchar *v7; // edxchar v8; // clint v9; // eaxchar xor_result[80]; // [esp+8h] [ebp-A4h]char flag[80]; // [esp+58h] [ebp-54h]sub_DC1020("Please input your flag: ");sub_DC1050("%40s", flag);memset(xor_result, 0, 0x50u);ii = 0;v4 = strlen(flag);if ( v4 ){do{flag_i = flag[ii];jj = 0;do{v7 = &xor_result[jj + ii];v8 = flag_i ^ data1[jj++];*v7 += v8;}while ( jj < 0x20 );++ii;}while ( ii < v4 );}v9 = strcmp(xor_result, (const char *)&data2);if ( v9 )v9 = -(v9 < 0) | 1;if ( v9 )puts("No, it isn't.");elseputs("Yes, it is.");return 0; }

逆向很難求解,我們試試z3正向求解。

from z3 import * s = Solver() X = [BitVec(('x%s' % i),8) for i in range(0x22) ] print (X) data1 = [0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x3A, 0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x7B,0x7C,0x7D,0x7E] data2 = [0x72,0xE9,0x4D,0xAC,0xC1,0xD0,0x24,0x6B,0xB2,0xF5,0xFD,0x45,0x49,0x94,0xDC,0x10, 0x10,0x6B,0xA3,0xFB,0x5C,0x13,0x17,0xE4,0x67,0xFE,0x72,0xA1,0xC7,0x04,0x2B,0xC2, 0x9D,0x3F,0xA7,0x6C,0xE7,0xD0,0x90,0x71,0x36,0xB3,0xAB,0x67,0xBF,0x60,0x30,0x3E, 0x78,0xCD,0x6D,0x35,0xC8,0x55,0xFF,0xC0,0x95,0x62,0xE6,0xBB,0x57,0x34,0x29,0x0E,3] xor_result = [0]*0x41 for m in range(0,0x22):for n in range(0,0x20):xor_result[n+m] += X[m] ^ data1[n] for o in range(0,0x41): s.add(xor_result[o] == data2[o]) print (s.check()) m = s.model() print("traversing model...") flag='' for i in range(0,0x22):flag+=chr(int("%s" % (m[X[i]]))) print(flag)

總結

以上是生活随笔為你收集整理的CTF Re-Python z3库的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情成人综合网 | 欧美性生交大片免费看app麻豆 | 久久中文字幕人妻 | 欧美一级免费看 | 色婷婷狠狠爱 | 天天干干天天 | 日韩福利社| 在线观看sm | 五月婷婷深爱 | 一区三区视频在线观看 | 欧美激情免费在线 | 成人福利视频网站 | 中文字幕国产一区二区 | 日本少妇xxxxxx | 精品一区欧美 | 91精品国产自产精品男人的天堂 | 久久伊人精品视频 | 日韩精品无码一区二区三区久久久 | 视频在线观看网站免费 | 久久伊人精品 | 国产亚洲电影 | 一级性生活黄色片 | 国产精品秘 | 亚洲人妻电影一区 | 中文字幕5566 | 国产激情在线观看 | 韩日三级视频 | 强辱丰满人妻hd中文字幕 | 男女性生活视频网站 | 嫩草视频在线观看免费 | 香蕉久久精品 | 好屌妞视频这里有精品 | 国产特级黄色片 | 青青草在线视频免费观看 | 亚洲精品国产成人久久av盗摄 | 欧美少妇诱惑 | 欧美性猛交性大交 | 久久综合第一页 | 亚洲一本在线 | 懂色av中文字幕 | 95看片淫黄大片一级 | 在线天堂中文字幕 | 日本高清视频免费观看 | 国产精品天天操 | 久久久久网站 | 粉嫩av一区二区三区免费观看 | 欧色图 | 国产欧美日韩视频 | 风韵丰满熟妇啪啪区老熟熟女 | 日韩av在线直播 | 日韩福利在线视频 | 天天色天天看 | 日韩在线激情视频 | 色婷婷777 | 欧美视频一区二区三区四区在线观看 | 亚洲国产成人精品女人久久久 | 欧美爽妇 | 69人妻精品久久无人专区 | 伊人激情视频 | 国产精品久久久久久中文字 | 美女mm131爽爽爽免费动视频 | 国产孕妇一区二区三区 | 国产二区av | 亚洲欧洲av在线 | 日本a在线免费观看 | 久久久久一级 | 91香蕉国产在线观看软件 | 天堂网中文字幕 | 中文在线观看av | 1024精品一区二区三区日韩 | 成人自拍网| 97成人资源站| 伊人www22综合色 | 999在线观看视频 | 亚洲一区二区三区人妻 | 女同一区二区 | 熟女高潮一区二区三区视频 | 黄色污小说 | 男人插入女人阴道视频 | 欧美日韩视频在线播放 | 性高湖久久久久久久久免费 | 黄色一毛片| 欧美性猛交xxxx偷拍洗澡 | 美女脱了内裤喂我喝尿视频 | 国产精品一区二区三区免费观看 | 91久久精品一区二区 | 日韩欧美一区二区三区在线观看 | 亚洲精品成人在线视频 | 久久在线免费观看 | 久久激情免费视频 | 日韩欧美福利 | 麻豆成人精品 | 久久精品二区 | 蜜臀一区二区三区精品免费视频 | 日韩二级片 | 欧美一级激情 | 成熟人妻av无码专区 | 欧美日韩综合视频 | 国产毛片精品国产一区二区三区 |