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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? inject.c

?? 鍵盤鎖
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*****************************************************************************
 * Inject - Inject code into a remote process.                               *
 *          InjectDll()/EjectDll() - Inject a library into a remote process  *
 *          using the CreateRemoteThread()/LoadLibrary() technique.          *
 *          InjectCode()/EjectCode() - Inject code into a remote process     *
 *          using the CreateRemoteThread()/WriteProcessMemory() technique.   *
 *                                                                           *
 * (c) A. Miguel Feij鉶, 1/6/2004                                            *
 *                                                                           *
 * Adapted from the original code by Robert Kuster.                          *
 *                                                                           *
 *****************************************************************************/

#include <windows.h>
#include <tlhelp32.h>
#include "Inject.h"

// Remove comment if you want to inject the library
//#define INJECT_DLL 1

/**************************************
 * Inject code into a remote process. *
 **************************************/
BOOL Inject()
{
#ifdef INJECT_DLL
	return (InjectDll() != 0);
#else
	return (InjectCode() != 0);
#endif
}


/*************************************
 * Eject code from a remote process. *
 *************************************/
BOOL Eject()
{
#ifdef INJECT_DLL
	return (EjectDll() != 0);
#else
	return (EjectCode() != 0);
#endif
}

////////////////////////////////// General purpose routines //////////////////////

/******************************
 * Enable/Disable privilege.  *
 * Called with SE_DEBUG_NAME. *
 ******************************/
BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName, BOOL bEnable)
{
	HANDLE				hToken;
	TOKEN_PRIVILEGES	tp;
	LUID				luid;
	BOOL				ret;

	if (!OpenProcessToken(GetCurrentProcess(),
					      TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | TOKEN_READ,
					      &hToken))
		return FALSE;

	if (!LookupPrivilegeValue(NULL, lpszPrivilegeName, &luid))
		return FALSE;

	tp.PrivilegeCount           = 1;
	tp.Privileges[0].Luid       = luid;
	tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;

	ret = AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL);

	CloseHandle(hToken);

	return ret;
}


/********************************************
 * Return PID using the Toolhelp functions. *
 ********************************************/
DWORD GetPIDFromNameToolhelp(char *szProcessName)
{
    typedef HANDLE (WINAPI *CREATESNAPSHOT) (DWORD, DWORD);
    typedef BOOL   (WINAPI *PROCESSWALK)    (HANDLE, LPPROCESSENTRY32); 

    HINSTANCE       hKernel;
    CREATESNAPSHOT  CreateToolhelp32Snapshot;
    PROCESSWALK     Process32First;
    PROCESSWALK     Process32Next;

    HANDLE          hSnapshot;
    PROCESSENTRY32  pe32;
    BOOL            bRes;
    char            *p;
    DWORD           dwPID = -1;

	// Check szProcessName
	if (!szProcessName)
		return -1;

    // Get Kernel32 handle
    if (!(hKernel = GetModuleHandle("Kernel32.dll")))
        return -1;

    // We must link to these functions explicitly.
    // Otherwise it will fail on Windows NT which doesn't have Toolhelp
    // functions defined in Kernel32.
    CreateToolhelp32Snapshot = (CREATESNAPSHOT) GetProcAddress(hKernel, "CreateToolhelp32Snapshot");
    Process32First = (PROCESSWALK) GetProcAddress(hKernel, "Process32First");
    Process32Next = (PROCESSWALK) GetProcAddress(hKernel, "Process32Next");
    if (!CreateToolhelp32Snapshot || !Process32First || !Process32Next)
	{
		FreeLibrary(hKernel);
		SetLastError(ERROR_PROC_NOT_FOUND);
        return -1;
	}

    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (hSnapshot == INVALID_HANDLE_VALUE)
		return -1;

    pe32.dwSize = sizeof(pe32);
    bRes = Process32First(hSnapshot, &pe32);
    
    while (bRes)
    {
        // Strip off full path
        p = strrchr(pe32.szExeFile, '\\');
        if (p)
            p++;
        else
            p = pe32.szExeFile;

        // Process found ?
        if (stricmp(p, szProcessName) == 0)
        {
            dwPID = pe32.th32ProcessID;
            break;
        }

        bRes = Process32Next(hSnapshot, &pe32);
    }

    CloseHandle(hSnapshot);
    return dwPID;
}


/*****************************************
 * Return PID using the PSAPI functions. *
 *****************************************/
DWORD GetPIDFromNamePSAPI(char *szProcessName)
{
    typedef BOOL  (WINAPI *ENUMPROCESSES) (DWORD *, DWORD, DWORD *);
    typedef BOOL  (WINAPI *ENUMPROCESSMODULES) (HANDLE, HMODULE *, DWORD, LPDWORD);
    typedef DWORD (WINAPI *GETMODULEBASENAME) (HANDLE, HMODULE, LPTSTR, DWORD);

	DWORD				dwPID = -1;				
    HINSTANCE           hPsApi;
    ENUMPROCESSES       EnumProcesses;
    ENUMPROCESSMODULES  EnumProcessModules;
	GETMODULEBASENAME	GetModuleBaseName;
    DWORD               * PIDArray = NULL;
	DWORD               cbAlloc = 128;
    DWORD               cbNeeded;
    DWORD               nProcesses;
    HANDLE              hProcess;
    DWORD               i;
    HMODULE             hExeModule;
    char                szModuleName[MAX_PATH];

	// Check szProcessName
	if (!szProcessName)
		return -1;

    // Get PSAPI handle
    if (!(hPsApi = LoadLibrary("PSAPI.DLL")))
        return -1;

    // Load functions in PSAPI dynamically.
    // We can't be sure PSAPI.DLL is installed.
    EnumProcesses = (ENUMPROCESSES) GetProcAddress(hPsApi, "EnumProcesses");
    EnumProcessModules = (ENUMPROCESSMODULES) GetProcAddress(hPsApi, "EnumProcessModules");
	GetModuleBaseName = (GETMODULEBASENAME) GetProcAddress(hPsApi, "GetModuleBaseNameA");
    if (!EnumProcesses || !EnumProcessModules || !GetModuleBaseName)
	{
		FreeLibrary(hPsApi);
		SetLastError(ERROR_PROC_NOT_FOUND);
        return -1;
	}

    // Find needed buffer length
	do
	{
	    cbAlloc *= 2;

		if (PIDArray)
			free(PIDArray);

		PIDArray = malloc(cbAlloc);
		if (!PIDArray)
		{
			FreeLibrary(hPsApi);
			SetLastError(ERROR_NOT_ENOUGH_MEMORY);
	        return -1;
		}
		
		if (!EnumProcesses(PIDArray, cbAlloc, &cbNeeded))
		{
			FreeLibrary(hPsApi);
			free(PIDArray);
	        return -1;
		}

	} while (cbNeeded == cbAlloc);

    nProcesses = cbNeeded / sizeof(DWORD);

    for (i=0; i < nProcesses; i++)
    {
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
                               FALSE,
                               PIDArray[i]);
        if (!hProcess)
            continue;

        if (!EnumProcessModules(hProcess, &hExeModule, sizeof(hExeModule), &cbNeeded))
        {
            CloseHandle(hProcess);
            continue;
        }

        GetModuleBaseName(hProcess,
                          hExeModule,
                          szModuleName,
                          sizeof(szModuleName));

        // Process found ?
        if (stricmp(szModuleName, szProcessName) == 0)
        {
            dwPID = PIDArray[i];
			CloseHandle(hProcess);
            break;
        }

        CloseHandle(hProcess);
    }

	FreeLibrary(hPsApi);
	free(PIDArray);
    return dwPID;
}


/************************************************
 * Return PID using ZwQuerySystemInformation(). *
 ************************************************/
DWORD GetPIDFromNameZwQuerySystemInformation(char *szProcessName)
{
	// Some definitions from NTDDK and other sources

	typedef LONG	NTSTATUS;
	typedef LONG	KPRIORITY;

	#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
	#define STATUS_INFO_LENGTH_MISMATCH      ((NTSTATUS)0xC0000004L)
	#define SystemProcessesAndThreadsInformation	5

	typedef struct _CLIENT_ID {
		DWORD	    UniqueProcess;
		DWORD	    UniqueThread;
	} CLIENT_ID;

	typedef struct _UNICODE_STRING {
		USHORT	    Length;
		USHORT	    MaximumLength;
		PWSTR	    Buffer;
	} UNICODE_STRING;

	typedef struct _VM_COUNTERS {
		SIZE_T	    PeakVirtualSize;
		SIZE_T	    VirtualSize;
		ULONG	    PageFaultCount;
		SIZE_T	    PeakWorkingSetSize;
		SIZE_T	    WorkingSetSize;
		SIZE_T	    QuotaPeakPagedPoolUsage;
		SIZE_T	    QuotaPagedPoolUsage;
		SIZE_T	    QuotaPeakNonPagedPoolUsage;
		SIZE_T	    QuotaNonPagedPoolUsage;
		SIZE_T	    PagefileUsage;
		SIZE_T	    PeakPagefileUsage;
	} VM_COUNTERS;

	typedef struct _SYSTEM_THREADS {
		LARGE_INTEGER   KernelTime;
		LARGE_INTEGER   UserTime;
		LARGE_INTEGER   CreateTime;
		ULONG			WaitTime;
		PVOID			StartAddress;
		CLIENT_ID	    ClientId;
		KPRIORITY	    Priority;
		KPRIORITY	    BasePriority;
		ULONG			ContextSwitchCount;
		LONG			State;
		LONG			WaitReason;
	} SYSTEM_THREADS, * PSYSTEM_THREADS;

	// NOTE: SYSTEM_PROCESSES structure is different on NT 4 and Win2K
	typedef struct _SYSTEM_PROCESSES {
		ULONG			NextEntryDelta;
		ULONG			ThreadCount;
		ULONG			Reserved1[6];
		LARGE_INTEGER   CreateTime;
		LARGE_INTEGER   UserTime;
		LARGE_INTEGER   KernelTime;
		UNICODE_STRING  ProcessName;
		KPRIORITY	    BasePriority;
		ULONG			ProcessId;
		ULONG			InheritedFromProcessId;
		ULONG			HandleCount;
		ULONG			Reserved2[2];
		VM_COUNTERS	    VmCounters;
	#if _WIN32_WINNT >= 0x500
		IO_COUNTERS	    IoCounters;
	#endif
		SYSTEM_THREADS  Threads[1];
	} SYSTEM_PROCESSES, * PSYSTEM_PROCESSES;

	typedef LONG (WINAPI *ZWQUERYSYSTEMINFORMATION)(UINT SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength);

	ZWQUERYSYSTEMINFORMATION    ZwQuerySystemInformation;
	PSYSTEM_PROCESSES           pInfo;
    HINSTANCE					hNTDll;
	WCHAR						wcProcessName[MAX_PATH+2];
	PCWSTR						pszProcessName;
	DWORD						dwPID;
	ULONG						BufferLen = 0x8000;
	LPVOID						pBuffer = NULL;
	LONG						Status;

	// Check szProcessName
	if (!szProcessName)
		return -1;

	// Convert szProcessName to Unicode
	if (!MultiByteToWideChar(CP_ACP, 0, szProcessName, -1, wcProcessName, sizeof(wcProcessName) / sizeof(WCHAR)))
		return -1;

    // Get NTDLL handle

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清欧美激情| 日韩国产精品久久久| 精品中文字幕一区二区| 欧美亚洲日本国产| 青青草精品视频| 欧美精品黑人性xxxx| 亚洲高清免费在线| 欧美日韩国产123区| 亚洲第一主播视频| 777奇米四色成人影色区| 日韩av不卡一区二区| 欧美一区二区在线观看| 精品一区二区三区免费播放| 欧美国产丝袜视频| 国产成人av电影免费在线观看| 欧美日韩激情一区| 色婷婷久久久亚洲一区二区三区| 麻豆极品一区二区三区| 亚洲国产一区二区在线播放| 国产精品久久久久久亚洲伦| 国产色一区二区| 精品99久久久久久| 久久久国产综合精品女国产盗摄| 国产精品妹子av| 综合久久一区二区三区| 91精品国产麻豆国产自产在线 | 26uuu精品一区二区在线观看| 99久久99久久精品国产片果冻| 亚洲mv在线观看| 自拍偷拍亚洲综合| 精品免费一区二区三区| 欧美色精品在线视频| 成人国产一区二区三区精品| 精品一区二区三区免费观看| 性久久久久久久| 亚洲综合另类小说| 亚洲激情五月婷婷| 综合电影一区二区三区| 亚洲国产成人午夜在线一区| 久久这里只有精品6| 日韩一区二区在线观看| 69精品人人人人| 欧美一级欧美三级在线观看| 5月丁香婷婷综合| 欧美午夜精品久久久久久超碰| 色婷婷av一区| 欧美日韩亚洲综合在线| 国产成人午夜高潮毛片| 久久精品久久99精品久久| 成人性生交大片免费看中文网站| 在线观看国产一区二区| 国产欧美一区二区精品婷婷| 亚洲一区二三区| a亚洲天堂av| 久久综合狠狠综合久久激情| 亚洲一区在线看| 成人午夜免费av| 久久久久国色av免费看影院| 日韩精品一区第一页| 一本到三区不卡视频| 国产精品嫩草影院com| 麻豆视频观看网址久久| 在线播放一区二区三区| 亚洲精品ww久久久久久p站| 国产91露脸合集magnet| 精品成人一区二区| 久久99久久久久久久久久久| 欧美男女性生活在线直播观看| 中文字幕一区二区三区在线观看 | 亚洲aⅴ怡春院| 成人av电影免费在线播放| 国产女人18水真多18精品一级做| 久久精品理论片| 久久九九影视网| 92国产精品观看| 日韩限制级电影在线观看| 伊人婷婷欧美激情| 国产电影一区二区三区| 日韩视频永久免费| 午夜精品久久久久久| 91免费精品国自产拍在线不卡| 久久久久国产精品厨房| 免费精品视频最新在线| 欧美一区二区三区成人| 亚洲国产一区视频| 欧美电影一区二区| 性欧美疯狂xxxxbbbb| 欧美性受xxxx黑人xyx| 亚洲影院在线观看| 欧美午夜电影网| 午夜欧美一区二区三区在线播放| 日本高清不卡一区| 亚洲亚洲人成综合网络| 欧美丰满少妇xxxxx高潮对白| 亚洲不卡在线观看| 91精品国产欧美日韩| 国产成人夜色高潮福利影视| 国产精品毛片a∨一区二区三区| 色综合天天综合网天天狠天天| 国产精品久久久久9999吃药| 麻豆精品在线看| 国产精品无人区| 欧美色涩在线第一页| 国产精品夜夜嗨| 亚洲一区欧美一区| 亚洲国产成人精品视频| 精品国产sm最大网站免费看| 91美女在线视频| 国产成人免费视频网站高清观看视频 | 国产99精品视频| 国产欧美精品一区| 一本色道久久综合亚洲精品按摩| 一区二区三区日韩欧美精品 | 国产在线一区观看| 国产视频一区二区在线| 色婷婷av一区二区三区gif | 成人av在线网站| 亚洲图片欧美视频| 精品少妇一区二区三区免费观看| 国产激情视频一区二区在线观看| 日韩理论片中文av| 日韩午夜电影av| 成人禁用看黄a在线| 日本v片在线高清不卡在线观看| 久久久噜噜噜久久人人看| 欧美亚男人的天堂| 成人爽a毛片一区二区免费| 日韩精品福利网| 亚洲视频一区在线| 亚洲精品一区二区三区影院 | 一本大道久久精品懂色aⅴ| 青娱乐精品视频| 亚洲精品乱码久久久久久日本蜜臀| 日韩欧美中文字幕公布| 色狠狠一区二区三区香蕉| 国内精品第一页| 久久精品国产99| 亚洲国产精品久久艾草纯爱| 亚洲手机成人高清视频| 国产欧美日韩在线| 欧美电影免费观看高清完整版| 欧美中文字幕亚洲一区二区va在线| 国产激情精品久久久第一区二区| 青青草成人在线观看| 午夜精品一区二区三区免费视频| 亚洲欧美一区二区在线观看| 久久久精品日韩欧美| 久久久久久久国产精品影院| 精品久久久网站| 国产三级欧美三级日产三级99 | 欧美二区三区的天堂| 日韩一区二区三区视频| 高清在线不卡av| www.成人网.com| 99精品国产热久久91蜜凸| 99久久国产综合精品色伊| av在线免费不卡| 在线观看一区日韩| 在线不卡的av| 国产亚洲欧美日韩俺去了| 国产精品网站在线观看| 亚洲综合无码一区二区| 日韩精品亚洲专区| 国产成人啪免费观看软件 | 9i在线看片成人免费| 91官网在线观看| 日韩一区二区精品在线观看| 日本一区二区三区dvd视频在线| 中日韩免费视频中文字幕| 亚洲一区二区在线播放相泽| 免费的国产精品| 色综合久久99| 欧美不卡在线视频| 亚洲一区二区三区四区在线观看| 美女www一区二区| 一本色道久久综合亚洲精品按摩 | 欧美日韩免费观看一区三区| 久久日韩精品一区二区五区| 一区二区三区精品| 国产精品中文字幕欧美| 91麻豆精品久久久久蜜臀| 日本一区二区在线不卡| 久久国产尿小便嘘嘘尿| 在线观看网站黄不卡| 国产欧美一区二区精品秋霞影院| 婷婷中文字幕一区三区| 日韩一级二级三级| 亚洲国产一二三| 91免费看`日韩一区二区| 久久精品视频在线免费观看 | 有码一区二区三区| 丰满岳乱妇一区二区三区| 精品国产免费人成电影在线观看四季 | 91丨九色丨黑人外教| 中文字幕免费不卡| 成人免费精品视频| 亚洲视频狠狠干| 91浏览器在线视频| 亚洲在线中文字幕| 欧美疯狂性受xxxxx喷水图片|