1

我不得不更新我们用经典 ASP 编写并利用内部 COM+ 服务的古老 Intranet 应用程序之一。我在任何地方都找不到该对象的源代码,开发人员也没有记录它。

我可以通过查看服务中可用的方法,Start -> Administrative Tools -> Component Services但我一生都无法弄清楚如何查看方法内部以查看它们在做什么。

是否有反编译这些 COM+ 服务,或者以其他方式查看它们的方法,或者我注定要纯粹观察旧应用程序并尽力模仿行为和数据?

注意:我从旧服务器导出服务,安装在我的开发箱中,添加对 VS2010 项目的引用,并尝试使用对象资源管理器识别这些方法。没有什么...

4

1 回答 1

3

COM 服务包括对 COM 类上存在哪些方法及其参数的类型描述,以便自动化控制器能够弄清楚如何将参数传递给 COM 方法。

但是,除此之外,除了本机 x86 机器代码本身之外,没有任何东西可以表明 COM 类在内部做什么。您可以尝试在 DLL 上使用 x86 反汇编程序,但除非您已经熟悉 x86 机器代码指令,否则这不会有很大帮助。

将源代码编译为本机机器码会丢弃大量信息。变量名、内部函数名,这些都不是 CPU 执行指令和执行原始源代码指示的操作所必需的。反汇编程序几乎不可能重构这些名称,因为这些名称将有助于了解代码的用途。反汇编程序有时可以帮助找出核心逻辑,但它需要一个人进行大量的仔细分析和努力才能触及表面。这就像试图通过观察单个草叶来了解森林。

于 2013-02-20T01:11:39.310 回答