Bugku加密pythonwriteup

Bugku 加密 python  writeup
一上來就給了兩個文件,一個是加密的源代碼,一個是加密過程文件,

成都創(chuàng)新互聯(lián)服務(wù)項目包括江蘇網(wǎng)站建設(shè)、江蘇網(wǎng)站制作、江蘇網(wǎng)頁制作以及江蘇網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,江蘇網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到江蘇省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

Bugku 加密 python  writeup
challenge.py

Bugku 加密 python  writeup

                                                                N1ES.py

N1ES.py里一共有四個函數(shù),一個類,類里含有兩個函數(shù),除了最后一個encrypt函數(shù)外其他函數(shù)都是在對key進行運算,然后通過key來對flag進行加密,所以我直接跑了一下程序,獲得了key加密后的數(shù)據(jù),然后只對encrypt函數(shù)進行逆向
解密腳本:

Kn=[['~', 'w', 'Y', 'k', 'k', '\x02', '\x05', '\x05'],['w', 'd', '}', '\x14', '?', '\x13', '\x04', 'W'],['l', '6', '\x08', '\x04', '\x13', '3', '\x19', '\x10'],['\x08', 'P', '2', '\x02', '/', 'W', '/', 'W'],['\x08', '\x14', '?', '@', 'W', '^', ' ', 'k'],['\x1b', '6', '^', '(', 'M', 'Y', '\x19', '\x02'],['3', 'f', 'w', '(', '\x13', '}', '\x08', 'u'],['=', '_', '\x13', 'M', '2', '=', '@', '\x04'],['z', '_', '~', '\x08', 'L', 'f', '\x19', 'z'],['I', 'Y', '\x01', '}', '/', '}', 'L', 'o'],['\x19', '\x05', '3', '\x01', 'z', 'w', '~', '?'],['L', 'B', '~', '\x13', '@', '6', '@', '\x05'],['\x08', 'd', '\x13', 'L', '^', '?', 'L', 'u'],['\x05', '{', 'M', 'P', 'M', '\n', 'z', 'P'],['k', '~', 'k', '/', 'o', 'u', '\x19', '\x04'],['o', 'k', '(', '\x13', 'I', 'f', ' ', '='],['~', '\x04', '\x08', '^', '\x02', '\n', '6', '3'],['/', '\x05', 'w', '2', ' ', 'd', '\x13', '6'],[' ', '/', '}', '?', '\x04', '}', 'z', '\x19'],['\x05', '\n', '\n', 'l', '\x02', 'l', '^', 'l'],['k', '3', '}', '\x19', 'u', 'I', ' ', '^'],['~', 'B', '\x02', '}', 'k', '\x05', '\x02', '/'],['\n', '\x05', '^', '^', 'P', '}', '!', '{'],['\x08', 'W', 'u', 'o', ' ', '2', 'd', '\x04'],['/', 'W', 'w', '\x08', 'z', '\x19', '@', 'I'],['\x14', ' ', 'P', '!', '6', '6', ' ', '}'],['(', '!', '\x01', '\x08', 'd', '\x08', 'w', '?'],['u', 'W', '@', '\x13', '}', '~', '6', 'o'],['3', 'B', 'd', '\x01', 'W', '2', '\n', '6'],['}', '\x08', '6', '\x19', '&', '\x04', 'k', 'u'],['\x13', '2', '2', '(', '\x19', '{', '/', 'w'],['\x02', 'Y', ' ', 'W', '\x08', 'u', '\x01', 'I']]

import base64

s=base64.b64decode('HRlgC2ReHW1/WRk2DikfNBo1dl1XZBJrRR9qECMNOjNHDktBJSxcI1hZIz07YjVx')

flag=[]

for i in range(3):

    flag.append(s[i*16:(i+1)*16])

from z3 import *

def fun(a,b):

    x=[BitVec('x%d'%i,32) for i in range(8)]

    solver=Solver()

    res=''

    for i in range(len(a)):

        exec("solver.add(x[i]-2*(x[i]&ord(b[i]))==ord(a[i])-ord(b[i]))")

        solver.check()

        try:

            exec("res+=chr(solver.model()[x[i]].as_long())")

        except:

            print solver

    return res

res=''

for i in flag:

    L=i[:8]

    R=i[8:]

    L,R=R,L

    for k in range(32):

        L,R=R,fun(L,Kn[k])

    res+=L+R

print res

分享題目:Bugku加密pythonwriteup
分享網(wǎng)址:http://bm7419.com/article44/gocgee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站維護、小程序開發(fā)、網(wǎng)站改版、、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計