LdrLoadDll 함수 주소의 기계어를 변형하여 LdrLoadDll 함수를 실행하지 못하도록 하게 유도
CreateRemoteThread를 이용한 방식은
대상 프로세스에 LoadLibrary를 하는 쓰레드를 실행하는 방식인데
LoadLibrary에서 사용하는 LdrLoadDll을 못쓰게 함으로써
DllInject을 방어한다
/*
참고 및 출처 : [http://www.rohitab.com/discuss/topic/29440-anti-dll-injection/]
Anti Dll Injection
*/
#include <Windows.h>
#include <stdio.h>
int Anti_Dll_Injection();
int main(void)
{
Anti_Dll_Injection();
}
int Anti_Dll_Injection()
{
HANDLE hProc = NULL;
char pRet[] = { 0x3C };
HINSTANCE hLib = NULL;
void *pAddr = NULL;
BOOL state = 0;
DWORD dwResult = 0;
hProc = GetCurrentProcess();
hLib = LoadLibrary("NTDLL.DLL");
if (hLib == NULL)
{
printf("LoadLibrary Error\n");
return -1;
}
pAddr = GetProcAddress(hLib, "LdrLoadDll");
if (pAddr == NULL)
{
printf("GetProcAddress Error\n");
return -1;
}
state = WriteProcessMemory(hProc, pAddr, pRet, sizeof(pRet), &dwResult);
if (state == FALSE)
{
printf("WriteProcessMemory Error\n");
return -1;
}
FreeLibrary(hLib);
return 0;
}
'잡코딩_hooking(후킹)' 카테고리의 다른 글
. (0) | 2019.01.09 |
---|---|
https://github.com/golbin/TensorFlow-Tutorials (0) | 2019.01.09 |
Import Address Table을 이용한 후킹 설명 (0) | 2018.12.10 |
Import Address Table을 이용한 후킹.dll (0) | 2018.12.10 |
실제 프로그램 코드에 hooking해보기 (0) | 2018.12.07 |