【问题标题】:Get access to AppDomain in another app?在另一个应用程序中访问 AppDomain?
【发布时间】:2011-06-30 02:04:42
【问题描述】:

我正在尝试扩展一个免费的、专有的 .Net 2.0 软件,这让我很伤心。我成功地注入了一个 Win32 dll 并让它成功地将 .Net dll 加载到主应用程序域中,但是这样做会导致他们的自定义 GUI 系统完全锁定。

是否可以获得对远程 AppDomain 的引用(在另一个应用程序中运行)并对其执行操作(例如加载程序集、创建类)?

我问的原因是我确定我在使用 Win32 托管 API 时看到了一些东西,但我再也找不到它了...

【问题讨论】:

  • 当 GUI 锁定时,您会收到一个强烈的提示。如果他们的代码不是为了成功扩展而编写的,那么任何扩展都可能无法成功。
  • @John-Saunders GUI 在注入程序集时被锁定,无论它是否包含代码。我会调试它,但有问题的程序也是 x64,导致远程调试问题。
  • 是的,就像我说的。免费软件代码显然不是以这种方式扩展的。

标签: .net appdomain code-injection


【解决方案1】:

他们所说的安全性是完全正确的,但是,有一些工具可以让你做你想做的事(在运行时修改应用程序?)

看看:

塞西尔 http://www.mono-project.com/Cecil

用简单的英语,使用 Cecil,您可以加载现有的托管程序集,浏览所有包含的类型,即时修改它们并将修改后的程序集保存回磁盘。

Crack.NET http://cracknetproject.codeplex.com/

一旦找到您感兴趣的对象或类型,您就可以通过编写和执行 IronPython 脚本来操作它和其他对象。

干杯

【讨论】:

    【解决方案2】:

    不,您不会获得对另一个 AppDomain 的引用。 AppDomain 是隔离的。否则所有 .NET 代码将完全不安全。

    【讨论】:

      猜你喜欢
      • 2019-02-09
      • 2021-01-15
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      相关资源
      最近更新 更多