- Yasaklandı
- #1
yazılım geliştirmeye adım atanlar için güncel dll inject modulunu veriyorum nasıl kullanacağını ilk c++ öğrenmeye başlayın ondan sonra kodları inceleyin bakın
PHP:
//returns handle from ntCreateThread call
HANDLE HkCreateThreadHook(
HANDLE hProcess,
PCHAR dllFileName
) {
DWORD ntTemp0 = 0;
DWORD ntTemp1 = 0;
HANDLE retHandleFromHook;
HMODULE nt_LoadLibraryHook = GetModuleHandle(_T("Kernel32.dll"));
HMODULE nt_HandleThreadHook = GetModuleHandle(_T("ntdll.dll"));
void *vp_AllocMem = VirtualAlloc(
hProcess,
NULL,
strlen(dllFileName) + 1,
PAGE_READWRITE
);
void *vp_LoadLib = GetProcAddress(nt_LoadLibraryHook, "LoadLibraryA");
ntCreateThEx nt_CrThreadHook = (ntCreateThEx)GetProcAddress(nt_HandleThreadHook, "NtCreateThreadEx");
if(!nt_CrThreadHook) {
std::cout << " Thread Hook - Error - 0x" << GetLastError() << std::endl;
}
if(!vp_LoadLib) {
std::cout << "Load Lib - Error - 0x" << GetLastError() << std::endl;
}
NtCreateThreadExBuffer ntHookBuff;
ntZeroMemory(&ntHookBuff);
ntHookBuff.Size = sizeof(NtCreateThreadExBuffer);
ntHookBuff.Unknown1 = 0x10003;
ntHookBuff.Unknown2 = 0x8;
ntHookBuff.Unknown3 = &ntTemp1;
ntHookBuff.Unknown4 = 0;
ntHookBuff.Unknown5 = 0x10004;
ntHookBuff.Unknown6 = 4;
ntHookBuff.Unknown7 = &ntTemp0;
ntHookBuff.Unknown8 = 0;
long nt_ActivateHook = nt_CrThreadHook(
&retHandleFromHook,
0x1FFFFF,
NULL,
hProcess,
(LPTHREAD_START_ROUTINE)vp_LoadLib,
vp_AllocMem,
THREAD_CREATE_FLAGS_HIDE_FROM_DEBUGGER,
NULL,
NULL,
NULL,
&ntHookBuff
);
if(retHandleFromHook == NULL) {
std::cout << " ThreadHookBootup - Error - 0x" << GetLastError() << std::endl;
}
DWORD exitCode;
GetExitCodeThread(retHandleFromHook, &exitCode);
std::cout << "exitCode is : " << exitCode << std::endl;
WaitForSingleObject(retHandleFromHook, INFINITE);
return retHandleFromHook;
}
BOOL HkWriteProcMemory(
HANDLE hProcess,
LPCVOID cvpBuffer,
SIZE_T fSize
) {
HMODULE dllModule = GetModuleHandle(_T("Kernel32.dll"));
waWriteProcMem callWritePMem = (waWriteProcMem)GetProcAddress(dllModule, "WriteProcessMemory");
void *memoryAlloc = VirtualAllocEx(
hProcess,
NULL,
sizeof(cvpBuffer) + 1,
MEM_RESERVE | MEM_COMMIT,
PAGE_READWRITE
);
BOOL hkCheck = callWritePMem( /* If functions succeeds the ret value is != 0 */
hProcess,
memoryAlloc,
cvpBuffer,
fSize,
NULL
);
if(hkCheck == 0) {
std::cout << "Writeprocmem hook has failed - Error code - 0x" << GetLastError() << std::endl;
return NTRETURN_FAILURE;
}
return NTRETURN_SUCCESS;
}