//inject.exe.cpp
//得到进程id
DWORD FindGameProcess()
{
DWORD pid; //进程id
HWND hwnd=FindWindow("CalcClass","Calc");
GetWindowThreadProcessId(hwnd,&pid);
return pid;
}
//提升权限
bool EnablePrivilege(HANDLE hToken,LPCTSTR szPrivName,BOOL fEnable){
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL,szPrivName,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED:0;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
return((GetLastError() == ERROR_SUCCESS));
}
//注入
DWORD inject()
{
DWORD pid=FindGameProcess();
if(pid==0)
{
return 0;
}
//////////////////////提升调试权限/////////////////////
HANDLE hToken=NULL;
if(0!=OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
if(EnablePrivilege(hToken,SE_DEBUG_NAME,TRUE))
{
}
}
///////////////////////////////////////////////////
HANDLE hd=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
if(NULL==hd)
{
return 0;
}
//////////////////////////////////////////////////////////////////////////////
// 向目标进程地址空间写入DLL名称
GetCurrentDirectory(255,dllfile);
strcat(dllfile,"\\debug.dll");
char *lpszDll=dllfile;
DWORD dwSize, dwWritten;
dwSize = lstrlenA( lpszDll ) + 1;
LPVOID lpBuf = VirtualAllocEx( hd, NULL, dwSize, MEM_COMMIT, PAGE_READWRITE );
if ( NULL == lpBuf )
{
CloseHandle( hd );
return 0;
// 失败处理
}
if ( WriteProcessMemory( hd, lpBuf, (LPVOID)lpszDll, dwSize, &dwWritten ) )
{
// 要写入字节数与实际写入字节数不相等,仍属失败
if ( dwWritten != dwSize )
{
VirtualFreeEx( hd, lpBuf, dwSize, MEM_DECOMMIT );
CloseHandle( hd );
return 0;
}
}
else
{
CloseHandle( hd );
return 0;
// 失败处理
}
PTHREAD_START_ROUTINE pfnStartAddr = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryA");
HANDLE hThread=CreateRemoteThread( hd, NULL, 0, pfnStartAddr, lpBuf, 0, NULL);
if(NULL==hThread)
{
CloseHandle( hd );
return 0;
}
WaitForSingleObject( hThread, INFINITE );
// 释放目标进程中申请的空间
VirtualFreeEx( hd, lpBuf, dwSize, MEM_DECOMMIT );
CloseHandle( hThread );
// CloseHandle( hd );
return 1;
}
//debug.dll.cpp
// 晚上继续
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课