代码之家  ›  专栏  ›  技术社区  ›  Svisstack

在DLL注入后拦截大型应用程序执行

  •  1
  • Svisstack  · 技术社区  · 14 年前

    我必须在许多地方截获执行非常大的应用程序。

    手动反向工程和添加钩子可能不是这个问题的最佳解决方案,因为应用程序非常大,而且应用程序的某些部分可以在一段时间内更新,我认为 有了一些解决这个问题的工具或良好的实践,我可以更快地做到这一点 ,有人知道怎么做吗?

    4 回复  |  直到 14 年前
        1
  •  4
  •   Necrolis    14 年前

    既然已经涵盖了工具部分,下面是一些技巧。

    根据您需要钩住什么以及是否有保护,有几种方法:

    1. IAT/EAT挂钩:这是用于导入(IAT)和导出(EAT)的,如果您的目标是一组已知的导入/导出API函数,那就太好了。我们可以找到一个很好的例子 here here

    2. 热补丁:WindowsXPSP2引入了一种叫做“热补丁”的东西(用于实时系统函数更新),它的所有(WinAPI)函数都以“mov edi,edi”开头,允许相对跳转到每个热补丁函数上面创建的可用空间中( one can do it too ). 这通常是用于程序的校验和有IAT的或有其他有趣的形式的保护,更多的信息可以找到 here here

    3. here , here here

    4. this

    MS Detours ,也可以看看 APIHijack 或者 mini-hook engine

    ollydbg ,但是知道你要用什么方法可以大大缩短他们四处闲逛的时间

        2
  •  1
  •   Igor Skochinsky    14 年前

    关于你到底需要做什么的一些细节(例如,你如何决定在哪里休息)会很好。根据你的情况 Pin 可能有用。

        3
  •  1
  •   Paul Exchange    14 年前

    Deviare API Hook . 这是最简单的方法,你可以做你需要的。它有一些COM对象,您可以使用这些对象从不同的进程钩住应用程序。在您的过程中,您可以获得完整的参数信息,并且可以在任何编程语言中使用它(我使用的是C#,它的工作方式很有魅力)。

        4
  •  0
  •   Faisal Feroz    14 年前

    如果您对拦截方法调用感兴趣,可以进行API挂接。

    或者使用一些拆卸器,如软冰或 ollydbg win32dasm .