tinjlib.c
来自「一本已经绝版的好书」· C语言 代码 · 共 114 行
C
114 行
/*************************************************************
Module name: TInjLib.C
Notices: Copyright (c) 1995-1997 Jeffrey Richter
*************************************************************/
#include "..\CmnHdr.H" /* See Appendix C. */
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <tchar.h>
#include "InjLib.H"
#include "Resource.h"
/////////////////////////////////////////////////////////////
BOOL Dlg_OnInitDialog (HWND hwnd, HWND hwndFocus,
LPARAM lParam) {
// Associate an icon with the dialog box.
chSETDLGICONS(hwnd, IDI_TINJLIB, IDI_TINJLIB);
return(TRUE);
}
/////////////////////////////////////////////////////////////
void Dlg_OnCommand (HWND hwnd, int id,
HWND hwndCtl, UINT codeNotify) {
BOOL fTranslated;
DWORD dwProcessId;
HANDLE hProcess;
switch (id) {
case IDC_INJECT:
dwProcessId = GetDlgItemInt(hwnd, IDC_PROCESSID,
&fTranslated, 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();
}
// Get a handle for the target process.
hProcess = OpenProcess(
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_QUERY_INFORMATION | // For VirtualQueryEx
PROCESS_VM_OPERATION | // For VirtualProtectEx
PROCESS_VM_READ | // For ReadProcessMemory
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, dwProcessId);
if (hProcess == NULL) {
chMB((GetLastError() == ERROR_ACCESS_DENIED) ?
__TEXT("Insufficient access to process")
: __TEXT("Invalid process Id"));
} else {
TCHAR szLibFile[MAX_PATH];
GetModuleFileName(NULL,
szLibFile, sizeof(szLibFile));
_tcscpy(_tcsrchr(szLibFile,
__TEXT('\\')) + 1, __TEXT("ImgWalk.DLL"));
chMB(InjectLib(hProcess, szLibFile) ?
__TEXT("Remote DLL Loaded") :
__TEXT("Remote DLL failed load"));
CloseHandle(hProcess);
}
break;
case IDCANCEL:
EndDialog(hwnd, id);
break;
}
}
/////////////////////////////////////////////////////////////
BOOL CALLBACK 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 hinstPrev, LPTSTR pszCmdLine, int nCmdShow) {
chWARNIFUNICODEUNDERWIN95();
DialogBox(hinstExe, MAKEINTRESOURCE(IDD_TINJLIB),
NULL, Dlg_Proc);
return(0);
}
//////////////////////// End Of File ////////////////////////
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?