DLL Injection

0

Cześć. Mam pewien problem, mianowicie używam prostego injectora do dll'ek.

VOID InjectDLL()
{
	std::string DLLName("DLL.dll");
	DWORD ProcessID = GetProcessID("Process.exe");

	HANDLE Process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
	LPVOID Remote = VirtualAllocEx(Process, NULL, strlen(DLLName.c_str()), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
	WriteProcessMemory(Process, Remote, (LPCVOID)DLLName.c_str(), strlen(DLLName.c_str()), NULL);
	LPVOID LoadLibraryAddress = GetProcAddress(GetModuleHandle("Kernel32.dll"), "LoadLibraryA");
	CreateRemoteThread(Process, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryAddress, Remote, 0, NULL);
	
}

Zastanawiam się jak mogę wrzucić moją bibliotekę bez posiadania samego pliku. Nie znam się na tym za bardzo ale chciałbym przekształcić ją do bitów, zapisać w kodzie injectora i bezpośrednio wrzucić do procesu. Wydaje mi się że jest to jak najbardziej możliwe ale nie wiem gdzie szukać podpowiedzi jak zacząć. Mógłby mnie ktoś naprowadzić?

0

Jest ktoś w stanie pomóc? :c

0

Trzeba o to zapytać jakiegoś hakera. @BASH wołają cię

0
strlen(DLLName.c_str())
DLLName.size()
0

Skoro nie masz pliku .dll, to skąd masz wziąć kod do wykonania?

0

Zapisz te bibliotekę heksadecymalnie do tablicy, a potem podaj tą tablicę zamiast DLLName.c_str()

1

żeby osiągnąć ten efekt musiałbyś zrobić to:

  • napisać funkcję którą chcesz wywołać zdalnie i skompilować ją w trybie takim, żeby żadna instrukcja nie zależała od pozycji w pamięci lub musisz ją przekompilować w locie do zaalokowanego miejsca
  • oszacowac rozmiar funkcji po skompilowaniu
  • zaalokować pamięć na ta funkcje używając np. VirtualAlloc - zalokowac trzeba tak zeby byla widoczna z drugiego procesu (np tak jak alokujesz Remote)
  • jeśli przekompilowujesz funkcje to zrob to teraz wzgledem zaalokowanego adresu
  • zapisz w zaalokowanej pamieci Twoja funkcje
  • CreateRemoteThread(... (LPTHREAD_START_ROUTINE)adresdotwojejfunkcji ...)

dobry przykład kompilowania w trybie relatywnych adresow (nie wiem jak to zdanie ladniej napisac):
http://stackoverflow.com/questions/5311515/gcc-fpic-option

1 użytkowników online, w tym zalogowanych: 0, gości: 1