Asp classic 在COM+;ProgId

Asp classic 在COM+;ProgId,asp-classic,com+,Asp Classic,Com+,我从来没有真正地调试过经典的ASP,所以这是一个有点粗糙的问题,很可能是一个糟糕的问题,但我在问之前已经做了尽可能多的研究 我请求识别哪些代码打印到打印机上,并在某人构建的新页面中重新使用这些代码 在试图确定这一点的时候,我偶然发现了一些我不明白的事情,但就是一件大事 要点是,人们可以从自助餐厅订购饼干,当他们提交时,会显示一个确认页面,并将订单发送到打印机 要获取cookie选项列表,需要创建一个服务器对象,并从中存在一个方法,但我无法确定它在哪里或应该在哪里查找。代码如下: 如何识别服务

我从来没有真正地调试过经典的ASP,所以这是一个有点粗糙的问题,很可能是一个糟糕的问题,但我在问之前已经做了尽可能多的研究

我请求识别哪些代码打印到打印机上,并在某人构建的新页面中重新使用这些代码

在试图确定这一点的时候,我偶然发现了一些我不明白的事情,但就是一件大事

要点是,人们可以从自助餐厅订购饼干,当他们提交时,会显示一个确认页面,并将订单发送到打印机

要获取cookie选项列表,需要创建一个服务器对象,并从中存在一个方法,但我无法确定它在哪里或应该在哪里查找。代码如下:


如何识别服务器对象是什么?有一个
.dll
文件包含二进制文件,但我不知道如何利用它

我曾尝试使用浏览器开发工具,但它们在这方面并没有太大帮助

我希望了解这段代码是如何执行的,或者在哪里执行的,我会找出我的其他问题。

一点背景知识 该项目正在使用COM+组件。这些是在经典ASP中使用语法定义的

Set obj=Server.CreateObject(“[insert COM+ProgId]”)
在本项目中,您使用的是注册了
ProgId

CookieOrder.CookieRequest CookieOrder.CookieRequest 经典ASP提供了许多现成的COM+组件,这些组件提供了许多常见功能,例如

Visual Basic Scripting Runtime ActiveX Data Objects Visual Basic脚本运行时 ActiveX数据对象 <> P>还可以创建COM+组件,用于使用ASP Visual Basic、VisualC++等常用的语言,以及最近使用.NET框架(C.*,VB.NET)。

如何定位COM+库 注意:访问注册表时请小心,因为修改或删除注册表项可能会导致操作系统损坏

在本指南中,还将使用
Scripting.Dictionary
ProgId

关键是使用
ProgId
查找难以捉摸的COM+库

  • 启动
    %SystemRoot%\system32\regedit.exe
    (将在大多数Windows操作系统中工作)

  • 导航到
    HKEY_CLASS_ROOT
    配置单元并选择它,然后按Ctrl+F打开“查找”对话框

  • 在<代码>查找内容<代码>中键入本例中的程序ID<代码>脚本。字典<代码>并确保在<代码>中查看<代码>仅选中<代码>键<代码>,然后按<代码>查找<代码>或<代码>查找下一步<代码>

  • 如果找到
    ProgId
    键,则展开该键并找到
    CLSID
    键,该键包含
    (默认)
    REG_SZ,在本例中为
    {EE09B103-97E0-11CF-978F-00A02463E06F}
    。双击此值以打开
    编辑字符串
    对话框,将该值复制到剪贴板中

  • 返回到
    HKEY_CLASS_ROOT
    键,使用Find搜索
    CLSID
    值,在本例中该值为
    {EE09B103-97E0-11CF-978F-00A02463E06F}
    ,再次确保
    查看
    仅选中了
    键,然后按
    查找
    查找下一个

  • 如果找到该键,展开并找到其中的
    InprocServer32
    键,您将在
    (默认)
    REG_SZ值中找到DLL的位置。在本例中为
    C:\Windows\System32\scrun.dll
    (这将根据安装位置和操作系统的不同而有所不同)

  • 反编译呢? 关于用于编译DLL(主要是.NET)的编译器的评论中有很多假设,但最好的检查方法是使用公共域中为此目的设计的众多程序之一

    有一个具体的问题,以便处理这个问题


    看看这篇关于如何打开dll文件的文章。因此,
    .dll
    包含一些源代码,我需要以人类可读的格式查看这些源代码,并且这些代码应该都是有意义的?这是一个非常基本的问题,我假设您已经问过了,但是您是否有权访问服务器对象的源代码,因为您正在对依赖于此库的web应用程序进行更改?我可能会签入组件服务管理单元以查找COM+对象。对我来说,直接使用原始源代码总是最容易的,即使只是了解类及其成员函数是如何操作的。如果您没有访问权限,看起来好像其他人提供了反编译选项。从代码片段中,您得到了一个名称空间=CookieOrder,类=CookieRequest的库。如果您只需要能够调用当前web应用程序代码中存在的方法,那么您应该能够将其作为复制功能的指导。祝你好运@完全正确!谢谢你的提示。我做了一些,但不知道其他的。幸运的是,我能够在Subversion中找到这个“项目”,并确定它是一个旧的VB6
    .dll
    ,并且我本应该“提升并放下”到新网站的代码是不可行的,因为我们不再使用VB6开发了。谢谢你的帮助!如果你想把所有的东西都写进一个答案,我会+1并接受。另外,如果你不介意(如果它是正确的话),请加入mjw关于名称空间的评论的tid部分b/c我不知道这一点