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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |