问题描述
转好贴下面,马上结贴.#!/usr/bin/envpython#-*-coding:cp936-*-importsys,osimportstructdefmain():iflen(sys.argv)>2:filename,step=sys.argv[1:3]if(step!='123')and(step!='3'):returnelse:print"用法:./解密.py文件名步数n"print"pimage中的文件需要3步,lcinfo中的文件只需要第三步n"print"步数为123和3"returnifstep=='123':f=open(filename,'rb')lens,=struct.unpack('I',f.read(4))srcbuf=f.read()f.close()dstbuf=''i=0iford(srcbuf[i])>0x11:#处理刚开始的falsepass#结束标志enddecrypt=1while(enddecrypt):start1=ord(srcbuf[i])end1=ord(srcbuf[i])i=i+1#块头ifstart1<0x10:temp=start1ifnotstart1:whilenot(ord(srcbuf[i])):i=i+1temp=temp+0xfftemp=temp+ord(srcbuf[i])+0x0fi=i+1dstbuf=dstbuf+srcbuf[i:(i+temp+3)]i=i+temp+3#块尾ifend1>=0x10:while(1):ifend1>=0x40:pos=(end1>>2)&7end2=ord(srcbuf[i])i=i+1pos=pos+(end2*8)+1pos_len=(end1>>5)-1if0x40>end1>=0x20:pos_len=end1&0x1Fifnotpos_len:while(notord(srcbuf[i])):i=i+1pos_len=pos_len+0xffpos_len=pos_len+ord(srcbuf[i])+0x1fi=i+1end2,=struct.unpack('H',srcbuf[i:(i+2)])i=i+2pos=(end2>>2)+1if0x20>end1>=0x10:pos=(end1&8)<<0x0bpos_len=end1&7ifnotpos_len:while(notord(srcbuf[i])):i=i+1pos_len=pos_len+0xffpos_len=pos_len+ord(srcbuf[i])+0x7i=i+1end2,=struct.unpack('H',srcbuf[i:(i+2)])i=i+2pos=pos+(end2>>2)if(pos==0):#解密结束enddecrypt=0breakelse:pos=pos+0x4000ifend1<0x10:pos=ord(srcbuf[i])*4i=i+1pos_len=end1>>2pos=pos+pos_len+1pos_len=0#复制数据pos_len=pos_len+2while(pos_len>=pos):dstbuf=dstbuf+dstbuf[(-pos):]pos_len=pos_len-pospos=pos+posdstbuf=dstbuf+dstbuf[(-pos):(pos_len-pos)]#特殊块尾temp=ord(srcbuf[i-2])&3iftemp:dstbuf=dstbuf+srcbuf[i:(i+temp)]i=i+tempend1=ord(srcbuf[i])i=i+1else:breakout=''lens=len(dstbuf)foriinrange(lens):if(i%2):out=out+chr(ord(dstbuf[i])^0x53)else:out=out+chr(ord(dstbuf[i])^0x69)#第三步ifstep=='3':f=open(filename,'rb')out=f.read()f.close()key=''lens,=struct.unpack('I',out[0:4])key=out[4:(lens+4)]out_len=len(out)-lens-8final=''foriinrange(out_len):final=final+chr(ord(out[i+lens+8])^ord(key[i%lens]))f=open(os.path.basename(filename)[0:-4]+'.luac','wb')#跳过md5f.write(final[0x20:])f.close()if__name__=='__main__':main()
解决方案
解决方案二:
解决方案三:
引用1楼wangnaisheng的回复:这个好像只有topy的,没有pytoC#的啊
解决方案四:
不要取这么误导人的题目好吗?福音?我以为你要share什么好东西呢!
解决方案五:
引用2楼adssdda000的回复:
Quote: 引用1楼wangnaisheng的回复:这个好像只有topy的,没有pytoC#的啊
没有的话也留着备用吧,说不定以后就用到了.不懂Python,等大神吧。
解决方案六:
不懂