DLL注射后拦截大型申请执行
-
01-10-2019 - |
题
我必须在许多地方的大型应用程序中拦截执行。
我可以使用哪些程序来执行此操作?对于这个问题,存在哪些技术?
手动反向工程和添加钩子可能不是解决此问题的最佳解决方案,因为应用程序很大,并且可以在某个时候更新应用程序的某些部分,我认为 有了一些工具或良好的实践,我可以更快地执行此操作, ,有人知道该怎么做吗?
有人帮我吗?
解决方案
看到工具部分已被涵盖,这是用于技术的东西。
取决于您需要挂钩以及是否有保护的方法,有几种方法:
虚拟化二进制文件中的相对呼叫/JMP修补:这是最简单的,但是如果您无法自动找到对功能的所有引用,则很多工作,由于您的标准,这可能在此原因中起作用。
IAT/EAT挂钩:这是用于进口(IAT)和出口(EAT)的使用,如果您针对已知的APE/导出一组API功能,则非常有用。可以找到一个很好的例子 这里 或者 这里
热点:Windows XP SP2引入了称为“热点”(用于实时系统功能更新)的东西,其中所有(Winapi)函数均以'Mov Edi,EDI'开头,允许将亲戚跳入中在每个可热绘制功能之上创建的可自由空间(一个人也可以做到)。这通常用于在那里检查IAT或具有其他有趣的保护形式的程序,可以找到更多信息 这里 和 这里
VFT/COM重定向:基本上是对象虚拟功能表中的条目,可用于OOP/COM基于OP/COM的应用程序。看 这
有很多第三方图书馆,最著名的可能是 MS弯路, ,也可以看 Apihijack 或a 迷你钩发动机.
当然,没有什么可以代替最初的戳戳,您需要用像 Ollydbg, ,但是知道您的使用方法可以大大缺乏他们花的时间花费的时间
其他提示
有关您确切需要做什么的一些细节(例如,您如何确定在哪里闯入)会很好。根据您的情况,类似 别针 可能起作用。
我建议使用 Deviare API钩. 。这是最简单的方法,可以做您需要的事情。它具有一些COM对象,您可以用来从其他过程中连接应用程序。在您的过程中,您可以获得完整的参数信息,并且可以在任何编程语言中使用它(我使用的是C#,它的工作就像魅力一样)。如果您需要拦截注册表API,我建议使用Deviare来调试您需要拦截的内容,但是您将必须自己制作钩子,否则,您会发现性能问题。
如果您有兴趣拦截方法调用,则可以进行API钩。
或使用一些拆卸器,例如软件或 Ollydbg 或者 win32 -Dasm.