繁体   English   中英

EasyHook-CRT调试声明失败-“缓冲区太小”

[英]EasyHook - CRT Debug Assertion Failed - “Buffer too small”

我有一个注入器,它调用以下(节略的)代码:

var processes = Process.GetProcessesByName("target");
/* ... */
var process = processes[0];
/* ... */
process.Kill();
RemoteHooking.CreateAndInject(process.MainModule.FileName, string.Empty, 0,
    InjectionOptions.NoService | InjectionOptions.DoNotRequireStrongName,
    typeof(EntryPoint).Assembly.Location, typeof(EntryPoint).Assembly.Location,
    out injectedProcessId, null);

应该注入的DLL只有以下代码:

public class EntryPoint : IEntryPoint {
    public EntryPoint(RemoteHooking.IContext InContext) {}

    public void Run(RemoteHooking.IContext InContext) {
        RemoteHooking.WakeUpProcess();
        Thread.Sleep(5000);
    }
}

不幸的是,注入器仅在显示典型Windows错误报告工具时崩溃,根本没有视觉异常消息,甚至没有进入DLL。 事件视图中的错误是此错误:

Faulting application name: TestInjector.vshost.exe, version: 14.0.23107.0, time stamp: 0x559b788a
Faulting module name: EasyHook64.dll, version: 2.7.0.0, time stamp: 0x589704aa
Exception code: 0xc0000409
Fault offset: 0x0000000000091a9b

在调试模式下运行时,我无法逐步浏览EasyHook代码以找到关键位置,但是我至少遇到一个异常:

在此处输入图片说明

您是否对如何进一步调试此问题以及找出原因有任何建议? 我什至试图关闭各种应用程序以减少干扰,但没有任何帮助。

我可以解决该错误-我正在调用的应用程序也收到了一个命令行参数(不幸的是,它不在我的示例代码中),对于库而言太长了。 因此,我增加了缓冲区大小这里还有指调用它在这里 ,它现在的作品没有任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM