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

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

?? 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频在线| 中文字幕制服丝袜一区二区三区| 欧美白人最猛性xxxxx69交| 国产视频在线观看一区二区三区 | 成人精品视频一区二区三区| 欧美手机在线视频| 国产精品久久久久久久蜜臀 | 国产在线看一区| 欧美性视频一区二区三区| 久久久久久久网| 日本午夜精品视频在线观看| 色综合久久中文综合久久牛| 国产精品看片你懂得| 国精品**一区二区三区在线蜜桃| 欧美日韩在线三级| 亚洲欧美影音先锋| 国产精品亚洲专一区二区三区| 欧美日本乱大交xxxxx| 亚洲精品高清在线| 91香蕉视频黄| 亚洲视频 欧洲视频| 不卡的看片网站| 国产精品剧情在线亚洲| 国产99久久久国产精品潘金| 国产亚洲制服色| 国内外成人在线视频| 亚洲精品一区二区三区蜜桃下载| 久久精品国产久精国产| 日韩欧美精品在线视频| 国内偷窥港台综合视频在线播放| 日韩一级片在线观看| 日本不卡1234视频| 欧美一区二区精美| 久久草av在线| 久久影视一区二区| 国内精品伊人久久久久av一坑| 日韩一区二区三区av| 日本不卡高清视频| 日韩欧美中文一区二区| 久久超级碰视频| 日韩成人精品在线观看| 白白色亚洲国产精品| 国产精品国产自产拍高清av| 成人成人成人在线视频| 日韩美女啊v在线免费观看| 色呦呦网站一区| 亚洲大片精品永久免费| 日韩女同互慰一区二区| 国产高清不卡一区二区| 亚洲欧洲国产专区| 欧美色综合影院| 蜜桃精品视频在线| 国产精品久久久久久久久快鸭 | 国产高清一区日本| 中文字幕第一区| 欧美婷婷六月丁香综合色| 视频一区视频二区中文字幕| 精品免费一区二区三区| 成人av在线播放网站| 亚洲高清视频在线| 久久蜜桃一区二区| 91久久精品一区二区二区| 久久电影网站中文字幕| 中文字幕一区二区三区四区不卡| 欧美天堂一区二区三区| 精品一区二区三区香蕉蜜桃| 日韩一区在线看| 欧美一区午夜精品| 99精品视频中文字幕| 蓝色福利精品导航| 亚洲视频免费在线观看| 精品国产污污免费网站入口| 色先锋久久av资源部| 久久草av在线| 亚洲午夜精品在线| 国产精品不卡在线| 精品免费视频一区二区| 欧美中文一区二区三区| 成人av资源网站| 国产专区欧美精品| 亚洲第一会所有码转帖| 国产人久久人人人人爽| 日韩欧美国产三级| 91成人在线精品| 成av人片一区二区| 国产伦精品一区二区三区在线观看| 亚洲综合免费观看高清完整版| 久久久久久久综合狠狠综合| 69久久夜色精品国产69蝌蚪网| jiyouzz国产精品久久| 国产一区二区三区免费看| 午夜激情一区二区| 一二三区精品视频| 国产精品伦理在线| 久久久.com| 精品欧美久久久| 欧美一区二区三区精品| 欧美精品乱码久久久久久按摩 | 一区二区三区中文免费| 日本一区二区免费在线| 亚洲精品一区二区三区福利 | 欧美网站一区二区| 91蜜桃视频在线| 成人高清伦理免费影院在线观看| 精品在线一区二区三区| 丝瓜av网站精品一区二区 | 亚洲美女淫视频| 亚洲欧美在线aaa| 亚洲欧洲成人自拍| 亚洲女人****多毛耸耸8| 国产精品国产三级国产| 中文字幕亚洲一区二区av在线| 久久亚洲一级片| 久久综合网色—综合色88| 精品国产亚洲在线| 2020国产精品久久精品美国| 青青草97国产精品免费观看| 精品三级av在线| 欧美人体做爰大胆视频| 欧美视频在线观看一区二区| 欧洲色大大久久| 欧美日韩性生活| 在线成人av影院| 精品欧美一区二区三区精品久久| 日韩欧美美女一区二区三区| 久久婷婷国产综合精品青草| 国产欧美一区二区精品忘忧草| 国产欧美一区二区精品性色| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美国产精品专区| 亚洲精品乱码久久久久| 亚洲3atv精品一区二区三区| 日韩制服丝袜先锋影音| 久久不见久久见免费视频7| 国产成人夜色高潮福利影视| 91视频观看视频| 国产精品亚洲第一| 国产999精品久久久久久| 成人一级片网址| 欧洲生活片亚洲生活在线观看| 在线不卡中文字幕| 日本一区二区三区视频视频| 亚洲欧美日韩在线| 日韩不卡一区二区三区| 国产黄色91视频| 在线观看www91| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美精品久久天天躁| 久久这里只有精品6| 亚洲免费观看视频| 精品中文字幕一区二区| 91精品91久久久中77777| 日韩一级免费一区| 亚洲免费观看高清| 精品一区二区在线免费观看| 99国产精品99久久久久久| 欧美一级国产精品| 17c精品麻豆一区二区免费| 乱中年女人伦av一区二区| 91免费版pro下载短视频| 精品理论电影在线观看| 夜夜操天天操亚洲| 成人网页在线观看| 日韩午夜在线播放| 亚洲一区二区三区在线| 成人夜色视频网站在线观看| 日韩午夜在线观看视频| 一区二区不卡在线播放 | 亚洲丝袜自拍清纯另类| 韩国精品久久久| 777奇米成人网| 亚洲激情av在线| 国产91高潮流白浆在线麻豆| 日韩欧美一区在线| 亚洲综合一二三区| 91网站在线观看视频| 国产无人区一区二区三区| 久99久精品视频免费观看| 欧美日韩亚洲另类| 亚洲综合在线视频| 色综合天天综合色综合av| 久久久天堂av| 极品尤物av久久免费看| 69久久99精品久久久久婷婷| 亚洲成人综合网站| 色狠狠一区二区三区香蕉| 中文字幕在线一区二区三区| 激情综合色播五月| 日韩女优电影在线观看| 麻豆91小视频| 日韩三级伦理片妻子的秘密按摩| 污片在线观看一区二区| 欧美亚日韩国产aⅴ精品中极品| 亚洲人成在线播放网站岛国| 9色porny自拍视频一区二区| 亚洲国产精品二十页| 成人黄色软件下载| 国产精品免费久久久久| 国产99久久久精品| 中文一区二区在线观看|