Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iphlpapi.h>
- #pragma comment(lib, "IPHLPAPI.lib")
- BYTE GetAdaptersInfodefaultPatch[10];
- DWORD MY_GetAdaptersInfoAddr = 0;
- typedef NTSTATUS(NTAPI *pGetAdaptersInfo)(
- _Out_ PIP_ADAPTER_INFO pAdapterInfo,
- _Inout_ PULONG pOutBufLen);
- pGetAdaptersInfo GetAdaptersInfoReal = (pGetAdaptersInfo)GetProcAddress(GetModuleHandleA("IPHLPAPI.dll"), "GetAdaptersInfo");
- void HookGetAdapters(int value)
- {
- int hooksize = 5;
- KO_Handle = OpenProcess(CREATE_THREAD_ACCESS, false, GetCurrentProcessId());
- if (value == 0)
- for (int i = 0; i < hooksize; i++)
- GetAdaptersInfodefaultPatch[i] = GetMemBYTE((DWORD)GetAdaptersInfoReal + i);
- else if (value == 1) {
- SetMemArray((DWORD)GetAdaptersInfoReal, 0x90, hooksize);
- JMPHOOK((DWORD)GetAdaptersInfoReal, MY_GetAdaptersInfoAddr); //HOOK GetModuleFileNameA
- }
- else if (value == 2)
- for (int i = 0; i < hooksize; i++)
- SetMemBYTE((DWORD)GetAdaptersInfoReal + i, GetAdaptersInfodefaultPatch[i]);
- CloseHandle(KO_Handle);
- }
- DWORD WINAPI MY_GetAdaptersInfo(
- _Out_ PIP_ADAPTER_INFO pAdapterInfo,
- _Inout_ PULONG pOutBufLen
- )
- {
- HookGetAdapters(2);
- DWORD dwRetVal = GetAdaptersInfoReal(pAdapterInfo, pOutBufLen);
- HookGetAdapters(1);
- // printf("pAdapterInfo->AdapterName %s\n", pAdapterInfo->AdapterName);
- return dwRetVal;
- }
- void HookGetAdaptersAPI()
- {
- PIP_ADAPTER_INFO pAdapterInfo = NULL;
- ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
- pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
- if (pAdapterInfo == NULL) {
- printf("Error allocating memory needed to call GetAdaptersinfo\n");
- return ;
- }
- // Make an initial call to GetAdaptersInfo to get
- // the necessary size into the ulOutBufLen variable
- if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
- free(pAdapterInfo);
- pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen);
- if (pAdapterInfo == NULL) {
- printf("Error allocating memory needed to call GetAdaptersinfo\n");
- return ;
- }
- }
- HookGetAdapters(0);
- MY_GetAdaptersInfoAddr = reinterpret_cast<unsigned int>(MY_GetAdaptersInfo);
- HookGetAdapters(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement