仓酷云
标题:
ASP教程之收集编程:解密ASP源代码
[打印本页]
作者:
仓酷云
时间:
2015-1-16 22:14
标题:
ASP教程之收集编程:解密ASP源代码
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。编程|解密|收集|源代码 从网上兴趣冲冲地下载了ASP源代码,筹办进修研讨的时分,一翻开文件,天书般的代码.很让人忧郁吧:(
在网上是找到懂得密的办法,得一个文件挨一个文件地翻开,复制,粘贴,解密,再复制,再粘贴,再保留......
假如一个ASP程序有几百个文件???
办理举措来了..
decode.asp
<%@Language="JavaScript"%>
<%
/*
*---------------decode.asp-----------------
*功效:遍历某个目次下的一切文件,对加密过的.asp文件
*举行解密,并写进源文件中.
*实例:单个文件解密
*Response.Write(DncodeFile(Server.MapPath("conn.asp")));
*实例:目次下一切文件解密.
*DncodeFolderFiles(Server.MapPath("xml"))
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-1711:31
*---------------decode.asp-----------------
*/
functionDncodeFile(sFilePath)
{
/*
*---------------DncodeFile(sFilePath)-----------------
*DncodeFile(sFilePath)
*功效:翻开文件sFilePath,Encode解密,重写该文件.
*参数:sFilePath,字符串,文件的路径.
*前往:sFilePath,文件的路径.
*实例:Response.Write(DncodeFile(Server.MapPath("conn.asp")));
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-170:58
*---------------DncodeFile(sFilePath)-----------------
*/
varForReading=1,ForWriting=2,ForAppending=8;
varfso=Server.CreateObject("Scripting.FileSystemObject");
varf=fso.OpenTextFile(sFilePath,ForReading,true);
sFileText=f.ReadAll();
f.Close();
sDncodeText=strdec(sFileText)
varf=fso.OpenTextFile(sFilePath,ForWriting,true);
f.Write(sDncodeText);
f.Close();
//returnsDncodeText;
returnsFilePath;
}
functionGetFilesPath(sFolderPath)
{
/*
*---------------GetFilesPath(sFolderPath)-----------------
*GetFilesPath(sFolderPath)
*功效:遍历sFolderPath目次下的一切文件.前往数组.存储文件路径.
*参数:sFolderPath,字符串,目次相对路径.
*实例:Response.Write(GetFilesPath(Server.MapPath("xml")))
*update:2004-5-128:33
*author:wanghr100(灰豆宝宝.net)
*---------------GetFilesPath(sFolderPath)-----------------
*/
varsFilePath=newArray();
varfso=Server.CreateObject("Scripting.FileSystemObject");
varoFolder=fso.GetFolder(sFolderPath);
varoSubFolders=oFolder.SubFolders;
varoFiles=oFolder.Files;
icount=oFiles.Count;
varenmFiles=newEnumerator(oFiles);
for(;!enmFiles.atEnd();enmFiles.moveNext())
{
sFilePath[sFilePath.length]=enmFiles.item().Path
}
varenmFolders=newEnumerator(oSubFolders);
for(;!enmFolders.atEnd();enmFolders.moveNext())
{
/*Old数构成了多维.*/
//sFilePath[sFilePath.length]=GetFilesPath(enmFolders.item().Path);
/*Add2004-5-1711:09只为一维数组*/
sFilePath=sFilePath.concat(GetFilesPath(enmFolders.item().Path));
}
returnsFilePath;
}
functionGetFileType(sFileName)
{
/*
*---------------GetFileType(sFileName)-----------------
*GetFileType(sFileName)
*功效:经由过程后缀,获得sFileName的文件范例.
*参数:sFileName,字符串,文件名.
*实例:Response.Write(GetFileType("decode.asp"))
*update:2004-5-138:33
*author:wanghr100(灰豆宝宝.net)
*---------------GetFileType(sFileName)-----------------
*/
sFileName=String(sFileName);
returnsFileName.split(".")[sFileName.split(".").length-1];
}
/*Start解密完成:李光辉Start*/
functionscrencode(s,l)
{enc=newActiveXObject("Scripting.Encoder");
returnenc.EncodeScriptFile("."+l,s,0,l+"cript");
}
varSTATE_COPY_INPUT=100
varSTATE_READLEN=101
varSTATE_DECODE=102
varSTATE_UNESCAPE=103
varpick_encoding=newArray(
1,2,0,1,2,0,2,0,0,2,0,2,1,0,2,0,
1,0,2,0,1,1,2,0,0,2,1,0,2,0,0,2,
1,1,0,2,0,2,0,1,0,1,1,2,0,1,0,2,
1,0,2,0,1,1,2,0,0,1,1,2,0,1,0,2
)
varrawData=newArray(
0x64,0x37,0x69,0x50,0x7E,0x2C,0x22,0x5A,0x65,0x4A,0x45,0x72,
0x61,0x3A,0x5B,0x5E,0x79,0x66,0x5D,0x59,0x75,0x5B,0x27,0x4C,
0x42,0x76,0x45,0x60,0x63,0x76,0x23,0x62,0x2A,0x65,0x4D,0x43,
0x5F,0x51,0x33,0x7E,0x53,0x42,0x4F,0x52,0x20,0x52,0x20,0x63,
0x7A,0x26,0x4A,0x21,0x54,0x5A,0x46,0x71,0x38,0x20,0x2B,0x79,
0x26,0x66,0x32,0x63,0x2A,0x57,0x2A,0x58,0x6C,0x76,0x7F,0x2B,
0x47,0x7B,0x46,0x25,0x30,0x52,0x2C,0x31,0x4F,0x29,0x6C,0x3D,
0x69,0x49,0x70,0x3F,0x3F,0x3F,0x27,0x78,0x7B,0x3F,0x3F,0x3F,
0x67,0x5F,0x51,0x3F,0x3F,0x3F,0x62,0x29,0x7A,0x41,0x24,0x7E,
0x5A,0x2F,0x3B,0x66,0x39,0x47,0x32,0x33,0x41,0x73,0x6F,0x77,
0x4D,0x21,0x56,0x43,0x75,0x5F,0x71,0x28,0x26,0x39,0x42,0x78,
0x7C,0x46,0x6E,0x53,0x4A,0x64,0x48,0x5C,0x74,0x31,0x48,0x67,
0x72,0x36,0x7D,0x6E,0x4B,0x68,0x70,0x7D,0x35,0x49,0x5D,0x22,
0x3F,0x6A,0x55,0x4B,0x50,0x3A,0x6A,0x69,0x60,0x2E,0x23,0x6A,
0x7F,0x09,0x71,0x28,0x70,0x6F,0x35,0x65,0x49,0x7D,0x74,0x5C,
0x24,0x2C,0x5D,0x2D,0x77,0x27,0x54,0x44,0x59,0x37,0x3F,0x25,
0x7B,0x6D,0x7C,0x3D,0x7C,0x23,0x6C,0x43,0x6D,0x34,0x38,0x28,
0x6D,0x5E,0x31,0x4E,0x5B,0x39,0x2B,0x6E,0x7F,0x30,0x57,0x36,
0x6F,0x4C,0x54,0x74,0x34,0x34,0x6B,0x72,0x62,0x4C,0x25,0x4E,
0x33,0x56,0x30,0x56,0x73,0x5E,0x3A,0x68,0x73,0x78,0x55,0x09,
0x57,0x47,0x4B,0x77,0x32,0x61,0x3B,0x35,0x24,0x44,0x2E,0x4D,
0x2F,0x64,0x6B,0x59,0x4F,0x44,0x45,0x3B,0x21,0x5C,0x2D,0x37,
0x68,0x41,0x53,0x36,0x61,0x58,0x58,0x7A,0x48,0x79,0x22,0x2E,
0x09,0x60,0x50,0x75,0x6B,0x2D,0x38,0x4E,0x29,0x55,0x3D,0x3F
)
vartransformed=newArray()
for(vari=0;i<3;i++)transformed=newArray()
for(vari=31;i<=126;i++)for(varj=0;j<3;j++)transformed[j][rawData[(i-31)*3+j]]=(i==31)?9:i
vardigits=newArray()
for(vari=0;i<26;i++)
{
digits["A".charCodeAt(0)+i]=i
digits["a".charCodeAt(0)+i]=i+26
}
for(vari=0;i<10;i++)digits["0".charCodeAt(0)+i]=i+52
digits[0x2b]=62
digits[0x2f]=63
functionunescape(char)
{
varescapes="#&!*$"
varescaped="rn<>@"
if(char.charCodeAt(0)>126)returnchar
if(escapes.indexOf(char)!=-1)returnescaped.substr(escapes.indexOf(char),1)
return"?"
}
functiondecodeBase64(string)
{
varval=0
val+=(digits[string.substr(0,1).charCodeAt(0)]<<2)
val+=(digits[string.substr(1,1).charCodeAt(0)]>>4)
val+=(digits[string.substr(1,1).charCodeAt(0)]&0xf)<<12
val+=((digits[string.substr(2,1).charCodeAt(0)]>>2)<<8)
val+=((digits[string.substr(2,1).charCodeAt(0)]&0x3)<<22)
val+=(digits[string.substr(3,1).charCodeAt(0)]<<16)
returnval
}
functionstrdec(encodingString)
{
varmarker="#@~^"
varstringIndex=0
varscriptIndex=-1
varunEncodingIndex=0
varchar=null
varencodingLength=unEncodinglength=0
varstate=STATE_COPY_INPUT
varunEncodingString=""
varre,arr
while(state)
{
switch(state)
{
case(STATE_COPY_INPUT):
scriptIndex=encodingString.indexOf(marker,stringIndex)
if(scriptIndex!=-1)
{
unEncodingString+=encodingString.substring(stringIndex,scriptIndex)
scriptIndex+=marker.length
state=STATE_READLEN
}
else
{
stringIndex=stringIndex==0?0:stringIndex
unEncodingString+=encodingString.substr(stringIndex,encodingString.length)
state=0
}
break
case(STATE_READLEN):
encodingLength=encodingString.substr(scriptIndex,6)
unEncodinglength=decodeBase64(encodingLength)
scriptIndex+=(6+"==".length)
state=STATE_DECODE
break
case(STATE_DECODE):
if(!unEncodinglength)
{
stringIndex=scriptIndex+"DQgAAA==^#~@".length
unEncodingIndex=0
state=STATE_COPY_INPUT
break
}
char=encodingString.substr(scriptIndex,1)
if(char=="@")state=STATE_UNESCAPE
else
{
if(char.charCodeAt(0)<0xFF)
{
unEncodingString+=String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)])
unEncodingIndex++
}
else
{
unEncodingString+=char
}
scriptIndex++
unEncodinglength--
break
}
caseSTATE_UNESCAPE:
unEncodingString+=unescape(encodingString.substr(++scriptIndex,1))
scriptIndex++;unEncodinglength-=2
unEncodingIndex++
state=STATE_DECODE
break
}
}
re=newRegExp("(JScript|VBscript).encode","gmi")
while(arr=re.exec(unEncodingString))unEncodingString=RegExp.leftContext+RegExp.$1+RegExp.rightContext
returnunEncodingString
}
/*End解密完成:李光辉End*/
functionDncodeFolderFiles(sFolderPath)
{
/*
*---------------DncodeFolderFiles(sFolderPath)-----------------
*DncodeFolderFiles(sFolderPath)
*功效:遍历sFolderPath目次下的一切文件,对加密过的.asp文件
*举行解密,并写进源文件中.
*实例:DncodeFolderFiles(Server.MapPath("xml"));
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-178:07
*---------------DncodeFolderFiles(sFolderPath)-----------------
*/
vararrFiles=GetFilesPath(sFolderPath)
for(vari=0;i<arrFiles.length;i++)
{
if(GetFileType(arrFiles)=="asp")
{
Response.Write(DncodeFile(arrFiles))
Response.Write("OK.<br>")
}
}
}
//获得xml目次下的一切文件.解密.
DncodeFolderFiles(Server.MapPath("xml"))
//获得t.asp.解密.
Response.Write(DncodeFile(Server.MapPath("t.asp")))
%>
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。
作者:
因胸联盟
时间:
2015-1-17 16:28
那么,ASP.Net有哪些改进呢?
作者:
乐观
时间:
2015-1-20 23:52
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者:
第二个灵魂
时间:
2015-1-30 08:01
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
作者:
仓酷云
时间:
2015-2-6 09:05
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者:
灵魂腐蚀
时间:
2015-2-15 21:03
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者:
再现理想
时间:
2015-3-4 13:54
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
作者:
莫相离
时间:
2015-3-11 19:58
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者:
蒙在股里
时间:
2015-3-19 10:47
那么,ASP.Net有哪些改进呢?
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2