C#没有注入c ++ dll

时间:2018-01-11 18:35:20

标签: c# c++ dll-injection

我尝试在c#上注入一个c ++ dll创建我自己的简单dll注入器。当我跑步时,它不会给我任何错误。

我认为dll只是在这个过程中没有执行,或者它没有正确注入。

我在Windows 8上。

代码:

header=False

完整代码: https://pastebin.com/LRNhfzMc

1 个答案:

答案 0 :(得分:0)

您永远不会为成员IntPtr pHandle设置值;和IntPtr Libaddr;在您的注射器类中。

将构造函数更改为:

    public injector(string proc_name)
    {
        Process proc = Process.GetProcessesByName(proc_name)[0];
        Console.WriteLine("pId: "+proc.Id);
        pHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, proc.Id);
        Console.WriteLine("Proc handle: "+ pHandle.ToString());
        Libaddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
    }