当前位置: 移动技术网 > IT编程>脚本编程>VBScript > VBS 加解密 For MS Script Encode

VBS 加解密 For MS Script Encode

2017年12月08日  | 移动技术网IT编程  | 我要评论

功夫派冰火珠,去除皱纹多少钱,天上人间夜总会

一、加密

复制代码 代码如下:

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="#@~^" '#@~^awqaaa==
                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



原文: http://www.enun.net/?p=866

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网