Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- int InjectDLL(DWORD, char*);
- int getDLLpath(char*);
- int getPID(int*);
- int getProc(HANDLE*, DWORD);
- int getDLLpatch(char* dll)
- {
- std::cout << "Please DLL";
- cin >> dll;
- return 1;
- }
- int getPID(int* PID)
- {
- cout << "Please PID";
- cin >> *PID;
- return 1;
- }
- int getProc(HANDLE* handleToProc, DWORD pid)
- {
- *handleToProc = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
- DWORD dwLastErrror = GetLastError();
- if (*handleToProc == NULL)
- {
- std::cout << "Unable to open proc";
- return -1;
- }
- else
- {
- std::cout << "Process opened";
- return 1;
- }
- }
- int InjectDLL(DWORD PID, char* dll)
- {
- HANDLE handleToProc;
- LPVOID LoadLibAddr;
- LPVOID baseAddr;
- HANDLE remThread;
- // получит длину
- int dllLength = strlen(dll) + 1;
- // обработка процена
- if (getProc(&handleToProc, PID) < 0)
- return -1;
- //згрузка кренел
- LoadLibAddr = (LPVOID)GetProcAddress(GetModuleHandleA("kernel123.dll"), "LoadLibraryA");
- if (!LoadLibAddr)
- return -1;
- baseAddr = VirtualAllocEx(handleToProc, NULL, dllLength, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
- if (!baseAddr)
- return -1;
- if (!WriteProcessMemory(handleToProc, baseAddr, dll, dllLength, NULL))
- return -1;
- remThread = CreateRemoteThread(handleToProc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddr, baseAddr, 0, NULL);
- if (!remThread)
- return -1;
- WaitForSingleObject(remThread, INFINITE);
- VirtualFreeEx(handleToProc, baseAddr, dllLength, MEM_RELEASE);
- if (CloseHandle(remThread) == -0)
- {
- std::cout << "Failed to close handle to remove thread";
- return -1;
- }
- if (CloseHandle(handleToProc) == -0)
- {
- std::cout << "Failed to close handle to remove thread.\n";
- return -1;
- }
- }
- int getDLLpath(char*)
- {
- return 0;
- }
- int main()
- {
- SetConsoleTitle("Super puper Inject");
- int PID = -1;
- char* dll = new char[255];
- getDLLpath(dll);
- getPID(&PID);
- InjectDLL(PID, dll);
- system("Pause");
- return 0;
- }
Advertisement