加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Bugku 加密 python writeup

发布时间:2020-12-20 10:49:15 所属栏目:Python 来源:网络整理
导读:一上来就给了两个文件,一个是加密的源代码,一个是加密过程文件, challenge.py N1ES.py N1ES.py里一共有四个函数,一个类,类里含有两个函数,除了最后一个encrypt函数外其他函数都是在对key进行运算,然后通过key来对flag进行加密,所以我直接跑了一下程


一上来就给了两个文件,一个是加密的源代码,一个是加密过程文件,


challenge.py

N1ES.py

N1ES.py里一共有四个函数,一个类,类里含有两个函数,除了最后一个encrypt函数外其他函数都是在对key进行运算,然后通过key来对flag进行加密,所以我直接跑了一下程序,获得了key加密后的数据,然后只对encrypt函数进行逆向
解密脚本:

Kn=[[‘~‘,‘w‘,‘Y‘,‘k‘,‘x02‘,‘x05‘,‘x05‘],[‘w‘,‘d‘,‘}‘,‘x14‘,‘?‘,‘x13‘,‘x04‘,‘W‘],[‘l‘,‘6‘,‘x08‘,‘3‘,‘x19‘,‘x10‘],[‘x08‘,‘P‘,‘2‘,‘/‘,‘W‘,‘@‘,‘^‘,‘ ‘,‘k‘],[‘x1b‘,‘(‘,‘M‘,‘x02‘],[‘3‘,‘f‘,‘u‘],[‘=‘,‘_‘,‘=‘,‘x04‘],[‘z‘,‘~‘,‘L‘,‘z‘],[‘I‘,‘x01‘,‘o‘],[‘x19‘,‘z‘,‘?‘],[‘L‘,‘B‘,[‘x05‘,‘{‘,‘n‘,‘P‘],[‘k‘,‘o‘,‘u‘,[‘o‘,‘I‘,‘=‘],[‘~‘,‘3‘],[‘/‘,‘6‘],[‘ ‘,‘x19‘],‘l‘,‘l‘],‘^‘],‘/‘],[‘n‘,‘!‘,‘{‘],‘I‘],[‘x14‘,‘}‘],[‘(‘,[‘u‘,[‘}‘,‘&‘,[‘x13‘,‘w‘],[‘x02‘,‘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,fun(L,Kn[k])

    res+=L+R

print res

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读