asp解密、还原chrw、chr编码文件的方法
2018-09-06 11:16
将asp函数的参数通过chrw编码加密后,如何解码chrw内容。下面的解码函数,原来很简单,用正则提取内容中的chrw串,然后eval动态执行获取的chrw串得到内容,再执行替换即可。注意事项参考源代码里面的注释,注意将源代码保存为vbs格式的文件后执行,如果是asp文件,需要将createobject修改为server.createobject。
function readfile(fn)读取编码文件的内容 set fso=createobject(scripting.filesystemobject) set ts=fso.OpenTextFile(fn,1,false,-2)注意这里的最后一个参数,如果你的是unicode编码,将-2(系统默认编码)修改为-1(unicode编码)。0为ascii readfile=ts.ReadAll ts.close set ts=nothing set fso=nothing end function function decodechrw(s)解码chrw编码的内容 set rx=new RegExp rx.Global=true rx.IgnoreCase=true rx.Pattern=ChrW\s*\(\s*\d+\s*\)(\s*&\s*ChrW\s*\(\s*\d+\s*\))*解码chrw串 set mc=rx.Execute(s) for each m in mc s=replace(s, m.value,&eval(m.value)&) next rx.Pattern=Chr\s*\(\s*\d+\s*\)(\s*&\s*Chr\s*\(\s*\d+\s*\))*‘急吗chr串 set mc=rx.Execute(s) for each m in mc s=replace(s, m.value,&eval(m.value)&) next decodechrw=s end function function decodechrwfile(fn)解码内容包含chrw编码的文件 s=readfile(fn) s=decodechrw(s) 将解码内容写回文件 set fso=createobject(scripting.filesystemobject) set ts=fso.OpenTextFile(replace(fn,.,_decode.),2,true,-2)写入解码后的内容到原来文件名替换为 _decode的文件里面,如fn为encode.txt,则解码后的文件为encode_decode.txt ts.write s ts.close set ts=nothing set fso=nothing end function decodechrwfile(encode.txt)注意修改这里被chrw加密的文件名称及路径,如果是客户端提交的内容