欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp解密、还原chrw、chr编码文件的方法

程序员文章站 2022-04-15 10:32:15
将asp函数的参数通过chrw编码加密后,如何解码chrw内容。下面的解码函数,原来很简单,用正则提取内容中的chrw串,然后eval动态执行获取的chrw串得到内容,再执...

将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加密的文件名称及路径,如果是客户端提交的内容