簡體   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