-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathstdafx.cpp
More file actions
59 lines (49 loc) · 1.67 KB
/
stdafx.cpp
File metadata and controls
59 lines (49 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// stdafx.cpp : 只包括标准包含文件的源文件
// wowhack.pch 将成为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"
// TODO: 在 STDAFX.H 中
//引用任何所需的附加头文件,而不是在此文件中引用
// HWND hWnd = FindWindow( NULL,"魔獸世界" );
// if( hWnd ){
// GetWindowThreadProcessId( hWnd,&pid );
// InjectLib( pid,"F:\\Source\\wowhack\\Debug\\vcsys.dll" );
// }
/*
int WINAPI EjectLib(DWORD process_id, char *lib_name)
{
PTHREAD_START_ROUTINE pfnRemote =(PTHREAD_START_ROUTINE)
GetProcAddress(GetModuleHandle("Kernel32"), "FreeLibrary");
if(pfnRemote ==NULL)
{
WriteLog("EjectLib:GetProcAddress FreeLibrary failed!");
return -1;
}
HANDLE hProcess =OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_id);
if(hProcess ==NULL)
{
WriteLog("EjectLib:OpenProcess %d failed!", process_id);
return -1;
}
CProcessModule pm;
HANDLE hmod =pm.GetProcessModuleHandle(process_id, lib_name);
if(hmod ==NULL)
{
CloseHandle(hProcess);
//WriteLog("EjectLib(), not found lib:%s", lib_name);
return 0;
}
//WriteLog("EjectLib(), found lib:%s, mod handle:0x%x", lib_name, hmod);
HANDLE hThread =CreateRemoteThread(hProcess, NULL, 0,
pfnRemote, hmod, 0, NULL);
if(hThread ==NULL)
{
WriteLog("EjectLib():CreateRemoteThread failed! process_id:%d", process_id);
CloseHandle(hProcess);
return -1;
}
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hProcess);
CloseHandle(hThread);
return 0;
} */