日韩性视频-久久久蜜桃-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库的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91jk制服白丝超短裙大长腿 | 涩里番在线观看 | 女人舌吻男人茎视频 | 成人在线免费看 | 无码一区二区三区 | 五月婷婷综 | 亚洲一级影片 | bbbbbxxxxx性欧美 | 毛片网站在线观看 | 欧美性猛交xxx乱大交3蜜桃 | 欧美高清在线一区 | 精品人妻少妇嫩草av无码专区 | 国产乱码精品一区二区三区忘忧草 | 日韩福利网站 | 最好看的电影2019中文字幕 | 日本韩国在线观看 | 无码久久精品国产亚洲av影片 | 亚洲国产成人综合 | 国产a网站 | 狠狠躁日日躁 | 中文字幕一区二区三区免费 | 日本少妇大战黑人 | 丰满岳妇乱一区二区三区 | 91综合精品 | 91精选| 亚洲女人天堂网 | 91av影视 | 亚洲精品三级 | 二区在线观看 | 日本啪啪片 | 欧美卡一卡二卡三 | 四虎国产成人精品免费一女五男 | 在线看视频 | 中文字幕在线播放av | 亚洲国产欧美精品 | 人人夜| 色哟哟视频在线观看 | 国产中文字字幕乱码无限 | 午夜精品免费观看 | 成人在线免费看片 | 国产欧美日韩在线播放 | 久久av不卡 | 六月婷婷网 | 麻豆av在线 | 免费黄色片网站 | 香蕉二区 | 嫩草天堂| 日本网站在线免费观看 | 操操av| 七月丁香婷婷 | aaa黄色大片| 1024在线视频 | 成人av高清 | 国产精品麻豆一区 | 综合狠狠 | 国产高清一区在线观看 | 国产污视频在线 | 久久99精品波多结衣一区 | 91黄色免费版 | 久久e热| 久久一区二区电影 | 麻豆精品视频 | 国产人妖在线视频 | 琪琪av在线 | 日韩女同互慰一区二区 | 色哟哟入口国产精品 | 国产女人与zoxxxx另类 | 精品国产三级片在线观看 | 中文字幕综合 | av免费看网站 | 激情婷婷六月天 | 91黄色大片| 日韩精品在线视频 | 日韩丝袜一区 | 内射国产内射夫妻免费频道 | 2020国产精品视频 | 国模婷婷 | 成人午夜精品福利 | 免费三片在线视频 | 麻豆成人在线观看 | 四虎影视成人永久免费观看亚洲欧美 | 成年人av在线播放 | 懂色tv| 黑人乱码一区二区三区av | 成人自拍av| 国产一区二区在线免费 | 亚洲综合五月天婷婷丁香 | 国产亚洲91| 日韩精品你懂的 | 亚洲熟妇av日韩熟妇在线 | 521a人成v香蕉网站 | 亚洲少妇18p | 青青操原| 涩涩涩涩涩涩涩涩涩 | 天天干夜夜干 | 久精品在线 | 日本在线不卡一区二区 | 国产又粗又长 | 色视频免费看 |