标题 | vbs 加解密 for ms script encode |
内容 | 一、加密 代码如下: dim objectfso if (lcase(right(wscript.fullname,11))=wscript.exe) then wscript.quit(0) end if if wscript.arguments.count<2 then wscript.echo vbs code encoder v1.0 powered by enun. http://www.enun.net/ wscript.echo notes: dfilename must be '*.vbe'! wscript.echo usage: cscript.exe //nologo sfilename dfilename wscript.echo eg: cscript.exe //nologo test.vbs enc.vbe wscript.quit(0) end if sfilename = wscript.arguments(0) dfilename = wscript.arguments(1) set objectfso = createobject(scripting.filesystemobject) set readdata = objectfso.opentextfile(sfilename, 1) objectfso.opentextfile(dfilename, 8, true).write(encoder(readdata.readall)) function encoder(data) encoder = createobject(scripting.encoder).encodescriptfile(.vbs, data, 0, vbscript) end function 二、解密 代码如下: option explicit dim oargs, nomfichier 'optional argument : the encoded filename nomfichier= set oargs = wscript.arguments select case oargs.count case 0 'no arg, popup a dialog box to choose the file nomfichier=browseforfolder(choose an encoded file, &h4031, &h0011) case 1 if instr(oargs(0),?)=0 then '-? ou /? => aide nomfichier=oargs(0) end if case else wscript.echo too many parameters end select set oargs = nothing if nomfichier<> then dim fso set fso=wscript.createobject(scripting.filesystemobject) if fso.fileexists(nomfichier) then dim fic,contenu set fic = fso.opentextfile(nomfichier, 1) contenu=fic.readall fic.close set fic=nothing const taginit=#@~^ == const tagfin===^#~@ '& chr(0) dim debutcode, fincode do fincode=0 debutcode=instr(contenu,taginit) if debutcode>0 then if (instr(debutcode,contenu,==)-debutcode)=10 then 'if == follows the tag fincode=instr(debutcode,contenu,tagfin) if fincode>0 then contenu=left(contenu,debutcode-1) & _ decode(mid(contenu,debutcode+12,fincode-debutcode-12-6)) & _ mid(contenu,fincode+6) end if end if end if loop until fincode=0 wscript.echo contenu else wscript.echo nomfichier & not found end if set fso=nothing else wscript.echo please give a filename wscript.echo usage : & wscript.fullname & & wscript.scriptfullname & <filename> end if function decode(chaine) dim se,i,c,j,index,chainetemp dim tdecode(127) const combinaison=1231232332321323132311233213233211323231311231321323112331123132 set se=wscript.createobject(scripting.encoder) for i=9 to 127 tdecode(i)=jla next for i=9 to 127 chainetemp=mid(se.encodescriptfile(.vbs,string(3,i),0,),13,3) for j=1 to 3 c=asc(mid(chainetemp,j,1)) tdecode(c)=left(tdecode(c),j-1) & chr(i) & mid(tdecode(c),j+1) next next 'next line we correct a bug, otherwise a ) could be decoded to a > tdecode(42)=left(tdecode(42),1) & ) & right(tdecode(42),1) set se=nothing chaine=replace(replace(chaine,@&,chr(10)),@#,chr(13)) chaine=replace(replace(chaine,@*,>),@!,<) chaine=replace(chaine,@$,@) index=-1 for i=1 to len(chaine) c=asc(mid(chaine,i,1)) if c<128 then index=index+1 if (c=9) or ((c>31) and (c<128)) then if (c<>60) and (c<>62) and (c<>64) then chaine=left(chaine,i-1) & mid(tdecode(c),mid(combinaison,(index mod 64)+1,1),1) & mid(chaine,i+1) end if end if next decode=chaine end function function browseforfolder(byval pstrprompt, byval pintbrowsetype, byval pintlocation) dim shellobject, pstrtempfolder, x set shellobject=wscript.createobject(shell.application) on error resume next set pstrtempfolder=shellobject.browseforfolder(&h0,pstrprompt,pintbrowsetype,pintlocation) browseforfolder=pstrtempfolder.parentfolder.parsename(pstrtempfolder.title).path if err.number<>0 then browseforfolder= set pstrtempfolder=nothing set shellobject=nothing end function |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。