asp加密文件解密破解方法asp加密文件解密破解方法asp加密文件解密破解方网上有很多好的程序,但为了商业用途,有一些asp程序的文件是加密了的,如果他加密的方式不是很麻烦的话,那么是可以解密的。
目前网上使用较多而且方便的加密就是脚本编码器(SRCENC.EXE)加密,这种加密方法破解比较容易,在文章的尾部有破解方法。
本人尝试使用这种方法成功破解。
目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法……如今,用ASP技术构建的网站随处可见。
由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法。
一、如何加密ASP程序?目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法。
1、使用微软的MS Script Encode进行加密微软提供了脚本编码器MS Script Encode(sce10chs.exe下载地址点击下载sce10chs.exe),可以对ASP程序进行加密。
这是一个简单的命令行工具,其执行文件是SRCENC.EXE,需要在DOS下运行。
它只加密页面中嵌入的脚本代码,把网页中之间的ASP代码转换成不可读的乱码,其他部分则保持原样不变。
加密后的程序,必须使用Internet Explorer 5.0以上版本才能正常浏览。
用SRCENC加密之后,文件中被加密过的部分将变成只读类型,假如你修改了加密部分(哪怕只改动一个字),就会导致整个文件不能使用。
对于VBScript,加密后在源文件的第一行会显示:<SCRIPT LANGUAGE="VBScript.Encode">;而JScript(或JavaScript)则会显示:<SCRIPT LANGUAGE="JScript.Encode">(1)加密方法官方加密程序:从微软免费下载到sce10chs.exe 直接运行即可完成安装过程。
安装完毕后,将生成screnc.exe文件,这是一个运行在DOS PROMAPT的命令工具。
单击“开始”/程序/附件/命令提示符,在MS-DOS 命令行中输入以下命令,即可对某个asp文件加密:SRCENC <要加密asp文件名> <加密后的文件名>其中项目可以选以下5个参数含义举例/s 可选。
命令中带了该参数,加密过程中屏幕上就不会有输出。
screnc /s lacl.sct ulacl.sct 对当前目录中的脚本小程序lacl.sct加密,加密过程中屏幕不显示任何信息/f 可选。
指定输出文件是否覆盖同名输入文件。
忽略,将不执行覆盖。
screnc /f lacl.asp 对文件lacl.asp加密,并用编码后的同名文件覆盖原文件/xl 可选。
是否在.asp文件的顶部添加@Language指令。
忽略,将添加。
/l defLanguage 可选。
指定Script Encoder加密中选择的缺省脚本语言。
文件中不包含这种脚本语言特性的脚本将被Script Encoder 忽略。
对于HTML文件,JScript为内置缺省脚本语言;对于ASP文件,VBScript为缺省脚本语言;对于扩展名为.vbs或.js的文件,Script Encoder也有自适应能力。
screnc /l vbscript lacl.htm ulacl.htm对文件lacl.htm加密,并生成输出文件ulacl.htm,确保没有指定语言属性的脚本块使用VBScript/e defExtension 可选。
指定待加密文件的文件扩展名。
缺省状态下,Script Encoder能识别asa,asp,cdx,htm,html,js,sct和vbs文件。
screnc /e asp 11\*.* f:\labxw-jm对11目录中的所有.ASP 文件进行加密,并把编码后的输出文件放在f:\labxw-jm目录中(2)操作举例例如要加密当前目录中的lacl.asp文件,生成加密文件ulacl.asp,则在DOS下输入命令:screnc lacl.asp ulacl.asp对当前目录中的所有 .ASP 文件进行加密,并把编码后的输出文件放在f:\labxw中,则使用命令:screnc *.asp f:\labxw2、使用组件加密asp以上被screnc加密过的程序,是可以解密的(解密方法下文有介绍),如果你想彻底保护自己的asp代码,可以通过开发activex dll组件的方法进行保护。
Dll文件是被编译过的机器代码,如果没有源项目文件,是不可能被反编译的,所以组件加密这种方法最安全,也不可能被破解。
下面我们来举例说明操作过程,例如你要保护以下asp代码:以下是引用片段:set rs=server.createobject("adodb.recordset")sql="select * from gq where xs=1 order by date asc"rs.open sql,conn,1,1if rs.eof and rs.bof thenresponse.write"<A HREF=new0.asp?lbid=gqx ><%= gqx %></A>"elseResponse.Write ""end ifset rs=nothingconn.closeset conn=nothing可以把它们改写成VB组件,然后在ASP文件中调用组件即可。
操作步骤如下:(1)新建一个vb6的activex dll项目在属性窗口中,命名你的库模块和项目文件(例如项目名lacl,模块名disp),以后在asp 文件中,调用的对象名将为lacl_disp选择vb6中的项目菜单中的references ,选中microsoft activex data objects 2.0 library(2)编写VB组件接下来把<欲保护的asp代码>改写成VB组件,代码如下:以下是引用片段:public function html_combo(disp_table as string) as stringdim outstring as stringdim conn as adodb.connectiondim rst as adodb.recordsetdim sqlstring as stringset conn = createobject("adodb.connection")set rst = createobject("adodb.recordset")sqlstring = "select * from " & disp_table & " where xs=1 order by date asc"'以上是在VB中打开数据库操作,数据库中的表名、字段名,你可以根据自己的需要修改conn.open "dsn=sumnet"rst.open sqlstring, conn, 3, 3if rst.eof and rst.bof thenoutstring = "还没有这类单位信息"elserst.movefirstoutstring = "<A HREF=new0.asp?lbid="&request("lbid") & "></A>"end ifhtml_combo = outstringrst.closeconn.closeend function写好以上VB代码后,保存项目并开始编译。
(3)生成安装文件打开visual studio 6中附带的package deployment wizard程序,选择刚才建立的activex 项目文件lacl;选择package,选择要打包的脚本或使用默认脚本,选择标准安装,为生成的安装文件选择一个存放目录,选择single cab. 其他均默认;然后单击下一步,安装文件就自动生成了!(4)在IIS服务器上安装组件在IIS服务器上运行这个安装文件,把组件安装到服务器上。
(5)在网页中调用组件以后在ASP文件中,通过调用该组件完成原来的功能。
在网页中调用你制作的组件,方法如下:以下是引用片段:<%@ language="vbscript" %><%set diaoyong = server.createobject("lacl_disp.disp")%><html><body><%= diaoyong.html_combo("gq")%><br></body></html>你看,现在Asp文件中的内容只是组件的调用(与以前完全不同),别人即使得到该文件,也无法编辑修改源代码,因为代码都被封装在VB组件中了,对于组件中的代码,外人是无法看到、也不能反编译的!3、自己编写加密程序组件加密方法虽然不可破解,但是要求你熟悉VB编程,需要把ASP代码改写成VB 组件,工作量很大,所以建议大家自己编程来保护asp代码,其基本思路是:写一个加密函数base64Encode和解密函数base64Decode,先用加密函数处理<要保护的asp代码>,得到对应的密文hu;然后再用execute(base64Decode(hu))替换<欲保护的asp代码>。
例如我们要保护上面那段asp代码,可以这样操作:(1)用WORD处理<要保护的ASP代码>将<要保护的ASP代码>拷到WORD中;在WORD中,把代码里的段落标记(回车换行)全部替换成“水”这个汉字,方法是:点击“编辑”/替换,光标移到“查找内容”栏,点“高级”/特殊字符,选择“段落标记”;光标移到“替换为”栏,输入“水”,最后点“全部替换”。
同法,把代码中的单引号也全部替换成“加”这个汉字。