我尝试在c#上注入一个c ++ dll创建我自己的简单dll注入器。当我跑步时,它不会给我任何错误。
我认为dll只是在这个过程中没有执行,或者它没有正确注入。
我在Windows 8上。
代码:
header=False
答案 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");
}