我从来没有真正不得不调试经典的ASP,所以这是一个有点粗糙和最有可能的一个贫穷的问题,但我已经做了尽可能多的研究,我可以问了。
我必须确定哪些代码打印到打印机,并在一个新的页面,有人已建成重新使用该代码的请求。
在试图确定,我无意中发现了几件事情,我不明白,但也就是一个大单。
要点是,人们可以从食堂订购饼干,当他们提交,它显示一个确认页面和订单发送到打印机。
要获得cookie的选项列表,有创建一个服务器对象,并从那里的方法存在,但我不能确定它在哪里或者我应该寻找。下面的代码:
<%
On error resume next
Const CATAGORY_COOKIE = 1
Dim cookieNames
Dim objCookie
Dim Count
Set objCookie = Server.CreateObject("CookieOrder.CookieRequest")
if objCookie Is Nothing then
Response.Write "Error"
Response.End
End if
cookieNames = objCookie.getAvailable_Item_Names(CATAGORY_COOKIE)
Count = objCookie.Count
Dim sz
sz = Split(cookieNames, ";")
Set objCookie = Nothing
%>
如何识别服务器对象是什么?有包含一个二进制文件.dll
,但我不熟悉,怎么会被利用。
我曾试图按照浏览器的开发工具,但他们真的还没有在这方面也有帮助。
我希望学习这个代码是如何执行的,或者它正在执行,我会找出我的其他问题。
该项目是使用COM +组件。这些正在使用的语法在经典ASP定义;
Set obj = Server.CreateObject("[insert COM+ ProgId]")
在这个项目中,您使用的是带有ProgId
注册的组件
CookieOrder.CookieRequest
有许多现成的COM +组件可用于经典的ASP提供了很多常用的功能如;
Visual Basic Scripting Runtime ActiveX Data Objects
还有为使用通用语言经典ASP到像Visual Basic,Visual C ++和最近的时间使用.NET Framework(C#,VB.NET)使用创建COM +组件的能力。
注:访问注册表,修改或删除键可能导致腐败的操作系统时请小心。
另外本指南的目的,将使用
Scripting.Dictionary
PROGID。
关键是使用ProgId
找到一个难以捉摸的COM +库。
%SystemRoot%\system32\regedit.exe
(在大多数Windows操作系统中工作)HKEY_CLASS_ROOT
蜂巢并选中它,然后按Ctrl + F打开查找对话框。Find what
键入PROGID在这种情况下Scripting.Dictionary
,并在look at
确保只有Key
被选中,然后按Find
或Find Next
。ProgId
重点拓展到关键,并找到包含在这个例子中CLSID
的情况下CLSID的价值(Default)
REG_SZ的{EE09B103-97E0-11CF-978F-00A02463E06F}
关键。双击该值,弹出对话框Edit String
复制值到剪贴板。HKEY_CLASS_ROOT
密钥,并用查找搜索CLSID
值,其在本例中是{EE09B103-97E0-11CF-978F-00A02463E06F}
,并再次确认Look at
才Key
检查,然后按Find
或Find Next
。InprocServer32
键,你会发现DLL在(Default)
REG_SZ值的位置。在这个例子中是C:\Windows\System32\scrrun.dll
(这将根据安装位置和OS是不同的)有很多在约用来编译DLL(主要是.NET)编译器的评论假设的,但检查的最好办法是在为此而设计的公共领域使用的众多项目之一在那里。
有与此交易,对SO一个具体问题;
Answer by @simon-mᶜkenzie to Identifying the origin of a DLL