厉害的用Asp获取Dll加密新闻内容
2018-09-06 11:44
以下是代码:
复制代码 代码如下:
<%
onerrorresumenext
DimobjXMLHTTP,xml
Setxml=Server.CreateObject(Microsoft.XMLHTTP)
xml.OpenGET,
xml.Send
tmpstr=xml.responseText
ep=clng(instr(1,tmpstr,meta_data2))+18
tmpstr=replace(tmpstr,vbcrlf,)
tmpstr=replace(tmpstr,chr(9),)
tmpstr=replace(tmpstr,chr(32),)
mydata=mid(tmpstr,1,ep)
recfilen=server.MapPath(tempstr.txt)
setAstream=Server.CreateObject(Adodb.Stream)
Astream.type=2
Astream.Mode=3
Astream.open
Astream.CharSet=GB2312
Astream.Position=0
Astream.Writetextmydata,1
Astream.SaveToFilerecfilen,2
Astream.close
setAstream1=Server.CreateObject(Adodb.Stream)
Astream1.type=2
Astream1.Mode=3
Astream1.CharSet=GB2312
Astream1.open
Astream1.LoadFromFile(recfilen)
Assp=Astream1.size
crttmpstr=Astream1.ReadText(Assp)
Astream1.close
sp1=clng(instr(1,crttmpstr,meta_data1))+16
ep1=clng(instr(sp1,crttmpstr,NAME=meta_data2))-7
lth1=ep1-sp1
newdata=mid(crttmpstr,sp1,lth1)
%>
<html>
<head>
<metahttp-equiv=Content-Typecontent=text/html;charset=gb2312>
<style>
body{
font-size:12px
}
td{
font-size:12px
}
</style>
<title>用Asp获取Dll加密新闻内容</title>
<tablewidth=540border=0align=centercellpadding=0cellspacing=0>
<tr>
<td>更新时间:<%=now%>获取内容长度:<%=lth1%>
字节
注意要使用你得先下载这个Dll文件,怎么下不用多说吧?!
<objectid=HtmlIp1Viewcodebase=
<paramname=meta_data1value=<%=newdata%>>
<paramname=meta_data2value=>
<paramname=meta_data3value=>
<paramname=meta_data4value=>
<paramname=meta_data5value=>
<paramname=meta_data6value=>
<paramname=meta_data7value=>
<paramname=meta_data8value=>
<paramname=baseurlvalue=111>
<paramname=randomvalue=111>
</object></td>
</tr>
</table>
</body>
</html>
对代码的说明:之所以要使用Adodb.Stream,是因为直接取得的内容始终达不到想要的效果,ep的位置始终要比预期的长很多,而我试过用instrb,midb等函数同样得到另人迷惑的结果,所以无奈之下出此下策,还望高手指点(哎哟,我怎么感觉酸不溜疚的哦)。当然只针对当前地点有效,其它的适当修改就行,甚至可以直接生成页面,并记录到数据库,成为自己的,用上面的东西加写数据库应该够了吧。
要防止Dll被下载也不难,对于IIS来是说可以加个.dll的ISAPI扩展,可执行文件随便选个Dll文件动作限制为“空”(什么都行,反正乱输入就可以了。)。要是Dll不为外站工作嘛,就不敢乱说了。防止新闻被窃取对付象这样的窃取方法,检查request.ServerVariables(HTTP_REFERER)不是本站的哄出去就可以了。
另外,由于本人大学没毕业,又是学打铁的,所以肯定有很多垃圾的地方,请不吝指正,谢谢。