// m1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include"stdio.h"
#include <windows.h>
#include <tlhelp32.h>
#include"tlhelp32.h"
void shutdown()
{
// 以下为提权函数,使其用关机权限,
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
printf("OpenProcessToken调用失败");
}
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,false,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
//下面为关机函数
if(!ExitWindowsEx(EWX_SHUTDOWN ,0))
{
printf("关机失败");
}
}
int main(int argc, char* argv[])
{
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hProcessSnap == INVALID_HANDLE_VALUE)
{
printf(" CreateToolhelp32Snapshot调用失败!");
return -1;
}
//string lpName = "EXPLORER.EXE" ; // 设定需要监视的进程名
PROCESSENTRY32 pe;
pe.dwSize = sizeof(pe);
BOOL bMore = ::Process32First(hProcessSnap, &pe32);
while(bMore)
{
printf(" 进程名称:%s \n", pe32.szExeFile);
if(stricmp("EXPLORER.exe",pe32.szExeFile)==0)
{
//取得宿主进程(EXPLORER.EXE)的句柄
HANDLE hRemoteProcess = OpenProcess(PROCESS_ALL_ACCESS,false,pe.th32ProcessID);
//取得目标DLL的当前路径(路径可自由设置)
char szInspectDllPath[128] ;
GetCurrentDirectory ( 128, szInspectDllPath ) ;
strcat (szInspectDllPath, "QQLandDlg.dll >\\debug\\InspectQQLandDlg.dll" ) ;
printf(" 地址: %s \n", szInspectDllPath);
//申请存放文件名的空间
LPVOID pszInspectDllRemote ;
int InspectDllNameLength = sizeof ( szInspectDllPath ) + 1 ;
pszInspectDllRemote = VirtualAllocEx ( hRemoteProcess, NULL, InspectDllNameLength, MEM_COMMIT, PAGE_READWRITE ) ;
//把dll文件名写入申请的空间
WriteProcessMemory ( hRemoteProcess, pszInspectDllRemote,(LPVOID)szInspectDllPath, InspectDllNameLength, NULL);
//获取动态链接库函数地址
HMODULE hModule ;
hModule = GetModuleHandle ( "kernel32.DLL" ) ;
LPTHREAD_START_ROUTINE fnStartAddr ;
fnStartAddr = ( LPTHREAD_START_ROUTINE ) GetProcAddress ( hModule,"LoadLibraryA" ) ;
//////////////////
//创建远程线程
HANDLE hInspectRemoteThread = NULL ;//存放远程线程句柄
hInspectRemoteThread = CreateRemoteThread ( hRemoteProcess, NULL, 0,fnStartAddr, pszInspectDllRemote, 0, NULL ) ;
if( hProcessSnap != NULL ){
CloseHandle ( hProcessSnap ) ;//关闭进程快照
CloseHandle ( hRemoteProcess ) ;
printf(" 来到这里了: \n");
break ;
}
//////////////////
}
if(stricmp("QQ.exe",pe32.szExeFile)==0)
{
printf("QQ 运行中,准备关机");
// shutdown();
break;
}
if(stricmp("Thunder.exe",pe32.szExeFile)==0)
{
printf("Thunder 运行中,准备关机");
// shutdown();
break;
}
bMore = ::Process32Next(hProcessSnap, &pe32);
}
::CloseHandle(hProcessSnap);
printf("QQ 不在运行");
return 0;
}
分享到:
相关推荐
LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2
S2,.net,C#,指导学习2 S2,.net,C#,指导学习2 S2,.net,C#,指导学习2 S2,.net,C#,指导学习2 S2,.net,C#,指导学习2S2,.net,C#,指导学习2S2,.net,C#,指导学习2S2,.net,C#,指导学习2S2,.net,C#,指导学习2
深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2
机器学习2.ipynb
sql学习 分区类型学习2_list单字段分区.sql
飞一样的成长camera驱动学习2
人工智能10学习2.pptx
OS学习2-OS概述(历史发展)
在数据挖掘和机器学习领域,贝叶斯网络被广泛应用于分类预测、诊断系统、决策支持等领域。K2算法是其中一种用于学习贝叶斯网络结构的算法,尤其适用于小到中等规模的数据集。 K2算法,全称为Cowell-Koller-...
小结 终身学习2篇.docx
2. **卷积神经网络(CNN)**:CNN是处理图像数据的首选模型,`d2lzh_pytorch` 包将涵盖CNN的原理、结构以及如何在PyTorch中实现,包括卷积层、池化层、ReLU激活函数等。 3. **循环神经网络(RNN)与LSTM**:RNN用于...
DB2学习中文教程旨在帮助读者从基础的数据库概念开始,逐步学习DB2数据库的安装、配置、操作和管理,最终达到精通的程度。 DB2 9.7是DB2数据库的一个版本,该版本支持的平台包括Linux、UNIX和Windows等。DB2 9.7...
机器学习
TensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习...
机器学习 一、概述 1.什么是机器学习? 人工智能:通过人工的方法,实现或者近似实现某些需要人类智能处理的问题,都可以称为人工智能。...2)批量学习和增量学习 3)基于实例的学习和基于模型的学习 4.机器学习的流程
第一章 EICAD的学习 2 1.1 学习任务 2 1.2 学习时间 2 1.3 学习内容 2 1.3.1 视频路线平面设计布线 2 1.3.2视频纵断面设计 2 1.4本章小结 2 第二章 画CAD工程图 3 2.1 CAD的常用命令之A 3 2.2 CAD画人行道路面结构图...
机器学习 深度学习 pytorch tensorflow
11-Maven(学习2天) 12-SSH企业案例2_ERP_项目整合(学习15天) 13-Mybatis(学习2天) 14-SpringMVC(学习2天) 15-SSM企业案例-客户管理系统(学习1天) 16-SSM分布式案例-互联网商城(学习13天) 17品优购电商系统开发
2)批量学习和增量学习 3)基于实例的学习和基于模型的学习 4.机器学习的流程 数据采集 数据清洗 数据 ----------------------- 数据预处理 选择模型 训练模型 验证模型 机器学习 ----------------------- 使用模型 ...