检测&;将代码注入.net应用程序的主要形式
本文关键字:应用程序 net 注入 amp 代码 检测 | 更新日期: 2023-09-27 18:00:37
简单地说,我想制作一个第三方软件来检测.net应用程序(如果是vb.net或c#),并在其主窗体中注入几行代码,初始化组件。
我从哪里开始?
在外部DLL
中"更改"代码并不容易,但是,如果您想修改正在进行的参数或返回的结果,这并不难。拦截调用以修改输入或输出的过程称为"挂钩"。
在C#中,有一个易于使用的库,它为您完成了大部分工作,名为EasyHook,这将允许您拦截调用并用自己的结果替换返回值。
static IntPtr CreateFile_Hooked(
String InFileName,
UInt32 InDesiredAccess,
UInt32 InShareMode,
IntPtr InSecurityAttributes,
UInt32 InCreationDisposition,
UInt32 InFlagsAndAttributes,
IntPtr InTemplateFile)
{
try
{
Main This = (Main)HookRuntimeInfo.Callback;
lock (This.Queue)
{
if (This.Queue.Count < 1000)
This.Queue.Push(InFileName);
}
}
catch
{
}
// call original API...
return CreateFile(
InFileName,
InDesiredAccess,
InShareMode,
InSecurityAttributes,
InCreationDisposition,
InFlagsAndAttributes,
InTemplateFile);
}