高手请入:实现ASP源代码保护过程(100分)

  • 主题发起人 主题发起人 victornb
  • 开始时间 开始时间
V

victornb

Unregistered / Unconfirmed
GUEST, unregistred user!
想用delphi实现下面的功能:
ASP的开发调试完成后可以通过自行设计的加密方法进行加密,通过加密变为密文文件。客户机访问密文文件时,首先通过IIS筛选器解密还原为ASP源代码,然后再将ASP源代码交给ASP解释器解释执行,该过程在服务器将逻辑 URL 映射到物理路径时完成,即重写HttpFilterProc的成员函数OnUrlMap。处理方法如下:
筛选器得到通知后,判断是否ASP请求,决定是否对文件处理
CString isasp,ext;
isasp=pMapInfo->pszPhysicalPath; //获得密文位置
ext=isasp.Right(3); ext.MakeUpper() ;
if(!(ext=="ASP")) return SF_STATUS_REQ_NEXT_NOTIFICATION;
打开获得请求的asp密文文件
CFile File_i;
if(!File_i.Open(pstrPhysPath,CFile::modeRead))
{ return SF_STATUS_REQ_FINISHED; }
num=File_i.GetLength();
num=File_i.Read(str,num);
File_i.Close();
对密文文件解密
decrypt(str) ; //调用解密函数
将解密后的源码保存在一临时文件中,文件名随机生成,可以存放在系统临时目录下。
CFile File_o;
if(!File_o.Open(pt,CFile::modeReadWrite |CFile::modeCreate))
{ return SF_STATUS_REQ_FINISHED; }
File_o.Write( str, num );
File_o.Close();
修改映射的物理路径为解密后的临时文件
int n1,n2;
n1=pt.GetLength(); //pt—解密文件路径
n2=pMapInfo->cbPathBuff;
for(int i=0;i<n1;i++)
{ pstrPhysPath=pt; }
for(int j=n1;j<n2;j++)
{ pstrPhysPath[j]='/0';}
为了不在磁盘留下解密文件,临时文件应及时删除,删除文件操作可通过重写HttpFilterProc的成员函数OnSendRawData来完成,该函数在系统将处理完数据的数据发送至客户机前被调用,因此,临时文件可以及时被删除。
请给出详细一点的源码
 
用 delphi 写 IIS筛选器 程序有时候会碰到莫名其妙的问题
 
不好搞,ASP加密太费劲了。。。
 
一定要用VC才行???[:(]
 
flfqzrj:你写过吗?如何调试呢?
 
不要用VC写的
但最好用VC写
我写过,但调试不行,因为根据微软的官方办法,跟DELPHI的官方办法都不能跟踪调试
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
615
import
I
后退
顶部