using c# doesnt mean that im gay, does it?
-
Автор темы
- #1
Туповат, пытался загрузить через ReadAllBytes(), но что-то не получается, а как по другому не знаю. Вот код (там до этого просто юзинги и DLLImport kernel32.dll) Сразу скажу код нашел то-ли на гите то-ли на форуме каком-то, и да это не для пасты черного чвета 21 года, немного для других целей. Мне надо чтобы после инжекта я мог взаимодействовать с dll дальше.
C#:
public static bool Inject(string processname, string dllpath)
{
if (Process.GetProcessesByName(processname).Length == 0)
return false;
var handle = OpenProcess((int)(PROCESS_ACCESS_FLAGS.PROCESS_VM_READ | PROCESS_ACCESS_FLAGS.PROCESS_VM_WRITE | PROCESS_ACCESS_FLAGS.PROCESS_VM_OPERATION), false, Process.GetProcessesByName(processname)[0].Id);
var buffer = VirtualAllocEx(handle, 0, dllpath.Length + 1, (int)MEMORY_ACCESS_FLAGS.MEM_COMMIT, (int)PAGE_ACCESS_FLAGS.PAGE_READWRITE);
WriteProcessMemory(handle, buffer, Marshal.StringToHGlobalAnsi(dllpath), dllpath.Length + 1, 0);
WaitForSingleObject(CreateRemoteThread(handle, IntPtr.Zero, 0, GetProcAddress(LoadLibraryA("kernel32.dll"), "LoadLibraryA"), buffer, 0, 0), -1);
VirtualFreeEx(handle, buffer, 0, (int)MEMORY_ACCESS_FLAGS.MEM_RELEASE);
return true;
}