【问题标题】:Modify/Replace Exe On the Fly即时修改/替换 Exe
【发布时间】:2008-12-02 17:16:37
【问题描述】:

每当我下载 Firefox 更新并应用它时,卡巴斯基杀毒软件都会提醒我文件 FIREFOX.EXE 已被修改。我想知道他们是怎么做到的。是否可以做一个简单的程序来演示这个技巧。就像可执行文件最初会显示“Hello, World!”一样在提示符下,当我替换/修改示例可执行文件时,它必须显示“Hello,World!Mod”。

谢谢。

【问题讨论】:

  • 您是想问卡巴斯基是如何注意到这一变化的,还是 Firefox 是如何自我更新的?

标签: windows executable


【解决方案1】:

我的印象是 Firefox 在有更新时会运行另一个应用程序并自行退出。然后,帮助应用程序会替换 .exe。这样,它就不会在运行时自行修改。

【讨论】:

    【解决方案2】:

    简单的方法是使用方法FindFirstChangeNotification。但我的猜测是,防病毒软件正在使用system hook 或其他机制在某个较低级别进行挂钩。

    【讨论】:

      【解决方案3】:

      我不具体了解 Firefox 是如何进行升级的,但有很多常见的方法:

      • 在允许它的文件系统(如 NTFS)上,然后重命名当前运行的 .exe,写入其替换,然后链接到新的

      • 有一个小的启动程序,它在切换到主 exe 之前对它进行任何更新。

      • 各种技巧,包括让临时 exe 跳转到它们并向后跳转等。

      【讨论】:

        【解决方案4】:

        我正在寻找 C++ 中的自我修改代码。我认为程序可以通过将它们与窗口分离来修改自己

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-10-25
          • 1970-01-01
          • 2018-02-08
          • 2018-06-09
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多