查看完整版本: 批量对加密的asp代码解密的asp程序

hahj 2008-1-3 15:27

批量对加密的asp代码解密的asp程序

[code]
<% @Language="javascript" %>
<%
/*
*--------------- decode.asp -----------------
* 功能:遍历某个目录下的所有文件,对加密过的.asp文件
*      进行解密,并写入源文件中.
* 实例:单个文件解密
* Response.Write(DncodeFile(Server.MapPath("conn.asp")));
* 实例:目录下所有文件解密.
* DncodeFolderFiles(Server.MapPath("xml"))
* author:wanghr100(灰豆宝宝.net)
* update:2004-5-17 11:31
*--------------- decode.asp -----------------
*/
function DncodeFile(sFilePath)
{
/*
*--------------- DncodeFile(sFilePath) -----------------
* DncodeFile(sFilePath)
* 功能:打开文件sFilePath,Encode解密,重写该文件.
* 参数:sFilePath,字符串,文件的路径.
* 返回:sFilePath,文件的路径.
* 实例:Response.Write(DncodeFile(Server.MapPath("conn.asp")));
* author:wanghr100(灰豆宝宝.net)
* update:2004-5-17 0:58
*--------------- DncodeFile(sFilePath) -----------------
*/
    var ForReading = 1, ForWriting =2, ForAppending =8;
    var fso = Server.CreateObject("Scripting.FileSystemObject");
    var f = fso.OpenTextFile(sFilePath,ForReading,true);
    sFileText = f.ReadAll();
    f.Close();
    sDncodeText = strdec(sFileText)
    var f = fso.OpenTextFile(sFilePath,ForWriting,true);
    f.Write(sDncodeText);
    f.Close();
    //return sDncodeText;
    return sFilePath;
}
function GetFilesPath(sFolderPath)
{
/*
*--------------- GetFilesPath(sFolderPath) -----------------
* GetFilesPath(sFolderPath)
* 功能:遍历sFolderPath目录下的所有文件.返回数组.存储文件路径.
* 参数:sFolderPath,字符串,目录绝对路径.
* 实例:Response.Write(GetFilesPath(Server.MapPath("xml")))
* update:2004-5-12 8:33
* author:wanghr100(灰豆宝宝.net)
*--------------- GetFilesPath(sFolderPath) -----------------
*/
    var sFilePath = new Array();
    var fso = Server.CreateObject("Scripting.FileSystemObject");
    var oFolder = fso.GetFolder(sFolderPath);
    var oSubFolders = oFolder.SubFolders;
    var oFiles = oFolder.Files;
    icount = oFiles.Count;
    var enmFiles = new Enumerator(oFiles);
    for(;!enmFiles.atEnd();enmFiles.moveNext())
    {
        sFilePath[sFilePath.length] = enmFiles.item().Path
    }
    var enmFolders = new Enumerator(oSubFolders);
    for(;!enmFolders.atEnd();enmFolders.moveNext())
    {
        /* Old 数组成了多维. */
        //sFilePath[sFilePath.length]=GetFilesPath(enmFolders.item().Path);
        /* Add 2004-5-17 11:09 只为一维数组 */
        sFilePath=sFilePath.concat(GetFilesPath(enmFolders.item().Path));
    }
    return sFilePath;
}
function GetFileType(sFileName)
{
/*
*--------------- GetFileType(sFileName) -----------------
* GetFileType(sFileName)
* 功能:通过后缀,取得sFileName的文件类型.
* 参数:sFileName,字符串,文件名.
* 实例:Response.Write(GetFileType("decode.asp"))
* update:2004-5-13 8:33
* author:wanghr100(灰豆宝宝.net)
*--------------- GetFileType(sFileName) -----------------
*/
    sFileName = String(sFileName);
    return sFileName.split(".")[sFileName.split(".").length-1];
}
/* Start 解密实现:李辉煌 Start*/
function screncode(s,l)
{enc=new ActiveXObject("Scripting.Encoder");
return enc.EncodeScriptFile("."+l,s,0,l+"cript");
}

    var STATE_COPY_INPUT        = 100
    var STATE_READLEN       = 101
    var STATE_DECODE        = 102
    var STATE_UNESCAPE      = 103
    var pick_encoding = new Array(
        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
    )
    var rawData = new Array(
        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
    )
    var transformed = new Array()
    for (var i=0; i<3; i++) transformed[i] = new Array()
    for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i
   
    var digits = new Array()
    for (var i=0; i<26; i++)
    {
        digits["A".charCodeAt(0)+i] = i
        digits["a".charCodeAt(0)+i] = i+26
    }
    for (var i=0; i<10; i++)    digits["0".charCodeAt(0)+i] = i+52
    digits[0x2b] = 62
    digits[0x2f] = 63
    function unescape(char)
    {
        var escapes = "#&!*$"
        var escaped = "\r\n<>@"
        if (char.charCodeAt(0) > 126)   return char
        if (escapes.indexOf(char) != -1)    return escaped.substr(escapes.indexOf(char), 1)
        return "?"
    }
   
    function decodeBase64(string)
    {
        var val = 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)
        return val
    }
    function strdec(encodingString)
    {
        
        var marker = "#@~^"
        var stringIndex = 0
        var scriptIndex = -1
        var unEncodingIndex = 0
        var char = null
        var encodingLength = unEncodinglength = 0
        var state = STATE_COPY_INPUT
        var unEncodingString = ""
        var re, 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
                    }
                    
                case STATE_UNESCAPE:
                    unEncodingString += unescape(encodingString.substr(++scriptIndex, 1))
                    scriptIndex++;  unEncodinglength -=2
                    unEncodingIndex++
                    state = STATE_DECODE
                    break
            }
        }
        
        re  = new RegExp("(JScript|VBscript).encode", "gmi")
        while(arr = re.exec(unEncodingString))  unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext
        return unEncodingString
    }
/* End 解密实现:李辉煌 End*/

function DncodeFolderFiles(sFolderPath)
{
/*
*--------------- DncodeFolderFiles(sFolderPath) -----------------
* DncodeFolderFiles(sFolderPath)
* 功能:遍历sFolderPath目录下的所有文件,对加密过的.asp文件
*      进行解密,并写入源文件中.
* 实例:DncodeFolderFiles(Server.MapPath("xml"));
* author:wanghr100(灰豆宝宝.net)
* update:2004-5-17 8:07
*--------------- DncodeFolderFiles(sFolderPath) -----------------
*/
    var arrFiles = GetFilesPath(sFolderPath)
    for(var i=0;i<arrFiles.length;i++)
    {
        if(GetFileType(arrFiles[i])=="asp")
        {
            Response.Write(DncodeFile(arrFiles[i]))
            Response.Write("OK.<br>")
        }
    }
}
//取得xml目录下的所有文件.解密.
DncodeFolderFiles(Server.MapPath("xml"))
//取得t.asp.解密.
//Response.Write(DncodeFile(Server.MapPath("t.asp")))
%>
[/code]

毅烃秀 2008-8-25 14:11

PR2购物网站友情链接

网站名称 :平购宝购物商城
网站网址:http:\\www.pgbao.com
友情链接要求,购物相关网站PR2以上
                    与购物无关的,PR4 以上   

           都首页链接的好,如果有申请内页的  那么内页也要在PR2上哦   


联系QQ 712297578    长期在线

一帘幽梦 2008-9-18 13:04

不错,学习了。。。。。支持下

敏潇湛 2008-9-30 18:10

手机密码破解 手机短信息内容查询 手机通话清单查询 020-61132559

*** 作者被禁止或删除 内容自动屏蔽 ***

颉萍生 2008-10-17 04:54

提供核销单进出口货物报关13313197276林小姐

*** 作者被禁止或删除 内容自动屏蔽 ***

yvh1022 2008-10-20 05:38

不错,学习了.....

寡继绫 2008-11-28 14:31

好帖好帖,顶!

好帖好帖,顶就一个字!



















[url=http://www.vcsale.com/]world of warcraft gold[/url] [url=http://www.vcsale.com/cheap.Anarchy_Online.11.aspx]ao credits[/url] [url=http://www.vcsale.com/service.Cabal_Online.13.aspx]cabal alz[/url] [url=http://www.vcsale.com/cheap.EVE_Online.1.aspx]eve isk[/url] [url=http://www.vcsale.com/service.Final_Fantasy_XI.3.aspx]FFXI Gil[/url] [url=http://www.vcsale.com/cheap.2Moons.12.aspx]2moons dil[/url] [url=http://www.vcsale.com/cheap.EverQuest.15.aspx]eq plat[/url] [url=http://www.vcsale.com/cheap.Rose_Online.20.aspx]rose zulie[/url] [url=http://www.vcsale.com/cheap.Guild_Wars.16.aspx]guild wars gold[/url] [url=http://www.vcsale.com/cheap.Lineage_2.4.aspx]lineage 2 adena[/url] [url=http://www.vcsale.com/service.Perfect_World.32.aspx]perfect world gold[/url] [url=http://www.vcsale.com/]buy wow gold[/url], [url=http://www.vcsale.com/]cheap wow gold[/url], [url=http://www.vcsale.com/]cheapest wow gold[/url], [url=http://www.vcsale.com/]wow gold[/url]

娟育卉 2008-12-3 20:01

论全国最大的游戏营运商上海盛大

传奇与[url=http://www.125sf.com]传奇私服[/url] 传奇2001年开始的最早的中国大型的网络游戏,他以强大的适应人群和简单的PK操作赢了很多玩家的认可。7年的历史,并没有使这样的一款游戏给淘汰掉,反之是一直保持了这么多的人群的玩家,据统计,四川地区和广东地区是2个最大的传奇玩家所在的省,其次就是江苏,浙江。。。等地拉。7年来,传奇从最早的1.50版本发展到了1.70---1.76---1.80---1.85--1.90 以至于现在的[url=http://www.gmbbb.cn]英雄合击[/url]。一步一步的更新和发展,这说明了,盛大网络公司的强悍技术,盛大的发展从一开始销售的点卡,到后来的月卡,到目前的充元宝,一步一步的发展也说明了盛大网络公司的经赢手法。最近常听说某某人在盛大多少区花了多少万,做了什么排行第一,还有什么人充了多少元宝,冲到了多少级,这都是花钱练出来,无数人花了无数的钱 ,在盛大的传奇里打造了神话,这是传奇私服不可以相比较的,传奇私服只是盛大传奇的一个辅助品,我相信有了[url=http://www.zhaokf.cn]传奇私服[/url]的话,这样才会有个比较,其实很多的私服做的也是很出色的,比如武易传奇,天下传奇,惠丰传奇,老传奇 ,英雄网络uc789。。。等知名的[url=http://www.pppsf.com]传奇私服[/url]和变态传奇,很多玩家也很喜欢大家做的私服游戏,甚至于没有任何玩家去批评这些私服,因为他们做的实在是很维护玩家的利益,也没乱出售装备,大家可以花很少的钱就在游戏里一起个大家开心的游戏,PK,交流,谈论天下事。盛大传奇现在的元宝功能出现,很多人认为是纯粹叫大家去用钱去和高手比拼,我个人认为还是一开始出售点卡和月卡的时候比较适合广告传奇游戏的爱好者,传奇里的元宝是1元1个,传奇私服里的元宝是1元几百个,这就是私服和盛大之间的差距。。。。    最进的盛大与私服的风波也已经过去拉,盛大要想抓私服,这是不现实的,要是盛大真的把所有私服关闭拉,我个人认为也未必大家会回到盛大传奇里或者[url=http://www.pk987.com]传奇外传[/url]里,因为很多玩家已经在私服里找到了他的朋友,和一起的行会,天天在一起的开心使得他们爱上了私服游戏,盛大要抓私服的话,也是应该要先关闭掉大型指名发布站,而关闭了 短短了1个月不到了几大站点 包括haosf在内的发布站,都全部一一的恢复起来了,这说明了什么???说明了盛大没有花什么功夫去搞私服,确实大家都认为私服的存在对盛大没什么坏处,他要玩你官方的玩家始终还是会去你官方的传奇里去玩的,私服的玩家几乎很少会去官方,因为毕竟2个游戏之间有很大的区别的。
    未来的时间里,还不知道传奇能发展到什么样子,总之我希望盛大网络在盈利方面可以多为了广大中国人民群众多想想可以把利润再放低一些,这样的话,会多了许多玩家去支持你们,在练级别方面可以再改一改,装备的价格也要调整。 在私服里呢我建议大家找指名的一条龙代理去做,这样的话维护的比较好,开的长久一些,这样玩家们也会越来越多的认可你们的私服,装备也不要出售的太高,便宜的出售只要每个月不亏本,维持的了服务器和昂贵的广告费就可以拉,希望众多私服可以开的越来越好,也希望盛大传奇可以赢得更多的人知心的认可。。。玩[url=http://www.111ww.cn]私服[/url]的朋友也要观察好了这一款私服是否可以放心的去玩,以后再做决定,先看他开的时间长短,首先先去他的老区去看是否变态,然后再咨询老区的玩家这个游戏的质量和开放的时间,这样就基本没什么关系拉。。。

忠i绫 2009-1-6 10:45

**代开13794499393杨先生

可开全国税票13794499393杨先生全国**代开13794499393杨先生
可开上海税票13794499393杨先生深圳**代开13794499393杨先生
可开山东税票13794499393杨先生广州**代开13794499393杨先生
可开四川税票13794499393杨先生浙江**代开13794499393杨先生
可开广西税票13794499393杨先生江苏**代开13794499393杨先生
页: [1]
查看完整版本: 批量对加密的asp代码解密的asp程序