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

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

?? injlib.cpp

?? c++的經典之作.是不可缺少的工具.大家可以現在學習
?? CPP
字號:
/******************************************************************************
Module:  InjLib.cpp
Notices: Copyright (c) 2000 Jeffrey Richter
******************************************************************************/


#include "..\CmnHdr.h"     /* See Appendix A. */
#include <windowsx.h>
#include <stdio.h>
#include <tchar.h>
#include <malloc.h>        // For alloca
#include <TlHelp32.h>
#include "Resource.h"


///////////////////////////////////////////////////////////////////////////////


#ifdef UNICODE
#define InjectLib InjectLibW
#define EjectLib  EjectLibW
#else
#define InjectLib InjectLibA
#define EjectLib  EjectLibA
#endif   // !UNICODE


///////////////////////////////////////////////////////////////////////////////


BOOL WINAPI InjectLibW(DWORD dwProcessId, PCWSTR pszLibFile) {

   BOOL fOk = FALSE; // Assume that the function fails
   HANDLE hProcess = NULL, hThread = NULL;
   PWSTR pszLibFileRemote = NULL;

   __try {
      // Get a handle for the target process.
      hProcess = OpenProcess(
         PROCESS_QUERY_INFORMATION |   // Required by Alpha
         PROCESS_CREATE_THREAD     |   // For CreateRemoteThread
         PROCESS_VM_OPERATION      |   // For VirtualAllocEx/VirtualFreeEx
         PROCESS_VM_WRITE,             // For WriteProcessMemory
         FALSE, dwProcessId);
      if (hProcess == NULL) __leave;

      // Calculate the number of bytes needed for the DLL's pathname
      int cch = 1 + lstrlenW(pszLibFile);
      int cb  = cch * sizeof(WCHAR);

      // Allocate space in the remote process for the pathname
      pszLibFileRemote = (PWSTR) 
         VirtualAllocEx(hProcess, NULL, cb, MEM_COMMIT, PAGE_READWRITE);
      if (pszLibFileRemote == NULL) __leave;

      // Copy the DLL's pathname to the remote process's address space
      if (!WriteProcessMemory(hProcess, pszLibFileRemote, 
         (PVOID) pszLibFile, cb, NULL)) __leave;

      // Get the real address of LoadLibraryW in Kernel32.dll
      PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
         GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW");
      if (pfnThreadRtn == NULL) __leave;

      // Create a remote thread that calls LoadLibraryW(DLLPathname)
      hThread = CreateRemoteThread(hProcess, NULL, 0, 
         pfnThreadRtn, pszLibFileRemote, 0, NULL);
      if (hThread == NULL) __leave;

      // Wait for the remote thread to terminate
      WaitForSingleObject(hThread, INFINITE);

      fOk = TRUE; // Everything executed successfully
   }
   __finally { // Now, we can clean everthing up

      // Free the remote memory that contained the DLL's pathname
      if (pszLibFileRemote != NULL) 
         VirtualFreeEx(hProcess, pszLibFileRemote, 0, MEM_RELEASE);

      if (hThread  != NULL) 
         CloseHandle(hThread);

      if (hProcess != NULL) 
         CloseHandle(hProcess);
   }

   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////


BOOL WINAPI InjectLibA(DWORD dwProcessId, PCSTR pszLibFile) {

   // Allocate a (stack) buffer for the Unicode version of the pathname
   PWSTR pszLibFileW = (PWSTR) 
      _alloca((lstrlenA(pszLibFile) + 1) * sizeof(WCHAR));

   // Convert the ANSI pathname to its Unicode equivalent
   wsprintfW(pszLibFileW, L"%S", pszLibFile);

   // Call the Unicode version of the function to actually do the work.
   return(InjectLibW(dwProcessId, pszLibFileW));
}


///////////////////////////////////////////////////////////////////////////////


BOOL WINAPI EjectLibW(DWORD dwProcessId, PCWSTR pszLibFile) {

   BOOL fOk = FALSE; // Assume that the function fails
   HANDLE hthSnapshot = NULL;
   HANDLE hProcess = NULL, hThread = NULL;

   __try {
      // Grab a new snapshot of the process
      hthSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
      if (hthSnapshot == NULL) __leave;

      // Get the HMODULE of the desired library
      MODULEENTRY32W me = { sizeof(me) };
      BOOL fFound = FALSE;
      BOOL fMoreMods = Module32FirstW(hthSnapshot, &me);
      for (; fMoreMods; fMoreMods = Module32NextW(hthSnapshot, &me)) {
         fFound = (lstrcmpiW(me.szModule,  pszLibFile) == 0) || 
                  (lstrcmpiW(me.szExePath, pszLibFile) == 0);
         if (fFound) break;
      }
      if (!fFound) __leave;

      // Get a handle for the target process.
      hProcess = OpenProcess(
         PROCESS_QUERY_INFORMATION |   // Required by Alpha
         PROCESS_CREATE_THREAD     | 
         PROCESS_VM_OPERATION,  // For CreateRemoteThread
         FALSE, dwProcessId);
      if (hProcess == NULL) __leave;

      // Get the real address of LoadLibraryW in Kernel32.dll
      PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
         GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "FreeLibrary");
      if (pfnThreadRtn == NULL) __leave;

      // Create a remote thread that calls LoadLibraryW(DLLPathname)
      hThread = CreateRemoteThread(hProcess, NULL, 0, 
         pfnThreadRtn, me.modBaseAddr, 0, NULL);
      if (hThread == NULL) __leave;

      // Wait for the remote thread to terminate
      WaitForSingleObject(hThread, INFINITE);

      fOk = TRUE; // Everything executed successfully
   }
   __finally { // Now we can clean everything up

      if (hthSnapshot != NULL) 
         CloseHandle(hthSnapshot);

      if (hThread     != NULL) 
         CloseHandle(hThread);

      if (hProcess    != NULL) 
         CloseHandle(hProcess);
   }

   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////


BOOL WINAPI EjectLibA(DWORD dwProcessId, PCSTR pszLibFile) {

   // Allocate a (stack) buffer for the Unicode version of the pathname
   PWSTR pszLibFileW = (PWSTR) 
      _alloca((lstrlenA(pszLibFile) + 1) * sizeof(WCHAR));

   // Convert the ANSI pathname to its Unicode equivalent
   wsprintfW(pszLibFileW, L"%S", pszLibFile);

   // Call the Unicode version of the function to actually do the work.
   return(EjectLibW(dwProcessId, pszLibFileW));
}


///////////////////////////////////////////////////////////////////////////////


BOOL Dlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) {

   chSETDLGICONS(hwnd, IDI_INJLIB);
   return(TRUE);
}


///////////////////////////////////////////////////////////////////////////////


void Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) {
   
   switch (id) {
      case IDCANCEL:
         EndDialog(hwnd, id);
         break;

      case IDC_INJECT:
         DWORD dwProcessId = GetDlgItemInt(hwnd, IDC_PROCESSID, NULL, FALSE);
         if (dwProcessId == 0) {
            // A process ID of 0 causes everything to take place in the 
            // local process; this makes things easier for debugging.
            dwProcessId = GetCurrentProcessId();
         }

         TCHAR szLibFile[MAX_PATH];
         GetModuleFileName(NULL, szLibFile, sizeof(szLibFile));
         _tcscpy(_tcsrchr(szLibFile, TEXT('\\')) + 1, TEXT("22 ImgWalk.DLL"));
         if (InjectLib(dwProcessId, szLibFile)) {
            chVERIFY(EjectLib(dwProcessId, szLibFile));
            chMB("DLL Injection/Ejection successful.");
         } else {
            chMB("DLL Injection/Ejection failed.");
         }
         break;
   }
}


///////////////////////////////////////////////////////////////////////////////


INT_PTR WINAPI Dlg_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

   switch (uMsg) {
      chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog);
      chHANDLE_DLGMSG(hwnd, WM_COMMAND,    Dlg_OnCommand);
   }
   return(FALSE);
}


///////////////////////////////////////////////////////////////////////////////


int WINAPI _tWinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

   chWindows9xNotAllowed();
   DialogBox(hinstExe, MAKEINTRESOURCE(IDD_INJLIB), NULL, Dlg_Proc);
   return(0);
}


//////////////////////////////// End of File //////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利电影一区二区三区| 中文字幕一区二区不卡| 精品少妇一区二区三区免费观看 | 欧美视频自拍偷拍| 欧美午夜精品一区二区三区| 欧美日韩国产综合久久| 884aa四虎影成人精品一区| 日韩免费看网站| 国产片一区二区三区| 亚洲天堂免费看| 天堂影院一区二区| 国产中文字幕精品| 成人ar影院免费观看视频| 欧洲精品一区二区| 欧美一级二级三级蜜桃| 欧美精品一区二区三区在线 | 免费欧美日韩国产三级电影| 国产米奇在线777精品观看| 在线观看日韩电影| 日韩美一区二区三区| 亚洲女与黑人做爰| 全国精品久久少妇| 激情文学综合网| 色婷婷综合久久久中文一区二区| 欧美精品一二三| 亚洲人成影院在线观看| 日韩精品欧美精品| 色先锋久久av资源部| 日韩免费高清电影| 亚洲影视在线播放| 国产福利一区在线观看| 欧美性三三影院| 欧美激情在线一区二区| 亚洲精品国产品国语在线app| 亚洲成人av在线电影| 国产一区二区主播在线| 成人av在线资源网站| 91官网在线观看| 日韩欧美国产一区在线观看| 中文字幕精品一区| 一区二区免费在线| 九九精品一区二区| 99久久婷婷国产| 日韩欧美国产综合一区| 中文字幕综合网| 无码av免费一区二区三区试看 | 91蜜桃网址入口| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品一区在线观看乱码| 91麻豆文化传媒在线观看| 91精品欧美久久久久久动漫| 国产精品国产三级国产有无不卡 | 国产99久久精品| 日韩欧美中文一区| 亚洲精品国产成人久久av盗摄| 国模一区二区三区白浆| 欧美日本免费一区二区三区| 一区精品在线播放| 国产福利一区二区三区视频在线| 欧美老女人在线| 亚洲婷婷综合久久一本伊一区| 美女视频第一区二区三区免费观看网站| 欧美在线短视频| 中文字幕亚洲精品在线观看| 国产成人在线色| 91精品国产综合久久蜜臀| 亚洲精品第一国产综合野| 成人国产精品免费观看动漫| 久久日一线二线三线suv| 国内精品自线一区二区三区视频| 69久久99精品久久久久婷婷| 中文字幕综合网| 一本色道久久综合精品竹菊| 中文字幕av一区二区三区高 | 精品国精品自拍自在线| 美女视频黄 久久| 亚洲精品在线三区| 麻豆一区二区在线| 欧美一区二区美女| 日精品一区二区| 欧美日韩二区三区| 亚洲午夜久久久久久久久电影网| 日本黄色一区二区| 亚洲欧美怡红院| 99re在线视频这里只有精品| 国产精品私人影院| 成人av高清在线| 日本一区二区三区四区| 国产高清不卡一区| 日本一区二区三区dvd视频在线| 精品一区二区成人精品| 日韩欧美国产高清| 免费久久精品视频| 欧美大片日本大片免费观看| 日韩高清国产一区在线| 91精品国产麻豆| 另类综合日韩欧美亚洲| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品影视网| 久久久久国产免费免费| 国产精品一区免费在线观看| 久久久久久免费毛片精品| 国产成人免费高清| 一区二区三区在线视频观看58| 欧美中文字幕亚洲一区二区va在线| 国产精品国产三级国产普通话三级| 一本到不卡免费一区二区| 亚洲伊人伊色伊影伊综合网| 日韩欧美第一区| 国产成人在线观看| 欧美一区在线视频| 粉嫩av一区二区三区粉嫩| 成人欧美一区二区三区小说| 欧美日韩一区二区在线观看| 日韩中文字幕91| 日韩欧美亚洲一区二区| 国产激情一区二区三区| 自拍偷拍亚洲综合| 日韩久久精品一区| 粉嫩13p一区二区三区| 亚洲成a人片在线不卡一二三区| 91精品国产福利| av亚洲精华国产精华精华| 亚洲综合自拍偷拍| 欧美精品亚洲二区| 国产99久久久久| 亚洲一区二区三区国产| 国产午夜久久久久| 色先锋久久av资源部| 国产一区在线看| 亚洲欧美二区三区| 久久亚洲综合色一区二区三区| 91在线看国产| 午夜亚洲福利老司机| 国产香蕉久久精品综合网| 色丁香久综合在线久综合在线观看| 国精产品一区一区三区mba桃花| 一区精品在线播放| 久久久久久久久免费| 在线一区二区视频| 国产99精品国产| 日韩精品1区2区3区| 国产精品高清亚洲| 日韩女同互慰一区二区| 欧美三级一区二区| 成人做爰69片免费看网站| 亚洲视频一区在线| 亚洲精品一线二线三线| 丁香天五香天堂综合| 日韩电影在线观看网站| 久久伊人中文字幕| 欧美精品黑人性xxxx| av资源网一区| 极品尤物av久久免费看| 亚洲最新视频在线观看| 欧美xxxxx裸体时装秀| 欧美精品日日鲁夜夜添| 成人av资源网站| 国产综合久久久久久鬼色| 午夜欧美2019年伦理| 亚洲欧美日韩中文字幕一区二区三区 | 欧美精品 日韩| 91在线码无精品| 99精品热视频| 国产最新精品免费| 精品夜夜嗨av一区二区三区| 亚洲午夜久久久久久久久电影院| 亚洲人一二三区| 国产农村妇女毛片精品久久麻豆 | gogogo免费视频观看亚洲一| 国产在线麻豆精品观看| 午夜天堂影视香蕉久久| 亚洲国产成人av网| 亚洲色图.com| 久久亚洲免费视频| www.成人网.com| 日本特黄久久久高潮 | 91福利精品第一导航| 久久超碰97中文字幕| 首页国产丝袜综合| 亚洲欧洲精品一区二区三区| 国产精品乱人伦中文| 国产日韩欧美亚洲| 欧美日韩一区精品| 欧洲色大大久久| 色婷婷综合久色| 国产精品综合在线视频| 日日夜夜免费精品| 国产精品三级视频| 精品少妇一区二区三区视频免付费 | 午夜精品免费在线观看| 日韩一区二区三区精品视频| 国产一区二区三区免费播放| 亚洲欧美一区二区久久| 日韩视频中午一区| 一本一本大道香蕉久在线精品 | 国产成人av福利| 狠狠狠色丁香婷婷综合久久五月| 午夜一区二区三区在线观看| 精品久久人人做人人爰|