`
317422638
  • 浏览: 14111 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习2

    博客分类:
  • C++
c++ 
阅读更多
// 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学习学习2

    LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2LINUX学习学习2

    深入,NET指导学习2

    深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2 深入,NET,指导学习2,S2

    EPLAN-3D布线学习2

    机器学习

    linux 基础学习2

    linux 基础学习,包含linux环境的学习,linux命令的学习。

    TensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdf

    TensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习实战(共7章)第2章 TensorFlow 2快速入门.pdfTensorFlow2深度学习...

    Reinforcement Learning 2nd(Richard_S._Sutton).pdf

    《强化学习(第2版)》英文版,作为强化学习思想的深度解剖之作,被业内公认为是一本强化学习基础理论的经典著作。它从强化学习的基本思想出发,深入浅出又严谨细致地介绍了马尔可夫决策过程、蒙特卡洛方法、时序差...

    人工智能机器学习2.rar

    sklearn机器学习

    ssh2 学习学习

    ssh2 学习学习

    ROS2官网教程学习笔记理解ROS2 actions动作

    ROS2官网教程学习笔记理解ROS2 actions动作背景准备条件学习内容1. 启动节点2. 使用 actions动作3. ros2 node info4. ros2 action list4.1 ros2 action list -t5. ros2 action info6. ros2 interface show7. ros2 ...

    基于Python的机器学习.docx

    机器学习 一、概述 1.什么是机器学习? 人工智能:通过人工的方法,实现或者近似实现某些需要人类智能处理的问题,都可以称为人工智能。...2)批量学习和增量学习 3)基于实例的学习和基于模型的学习 4.机器学习的流程

    struts2经典学习资料大全2(3-2)

    struts2经典学习资料大全2,很好很经典(3-2)

    2,STM32 USB 学习资料.zip

    2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip2,STM32 USB 学习资料.zip...

    爱学习广东学习网专用浏览器

    2、 进入学习中心后,打开没有学习的课程,可以一键学习完,不包含考试,不必天天挂网 3、 根据你的网速你所有的课程能在10分钟内学完,神吧,试试吧 4、 本浏览器用.Net 2.0开发,需要2.0的运行时

    《强化学习》英文版(第2版)

    Sutton老爷子经典之作,《强化学习》英文版(第2版)。 作为强化学习领域的经典导论性教材,第2版《强化学习》从强化学习基本思想出发,深入浅出又严谨细致地介绍了马尔可夫决策过程、蒙特卡洛方法、时序差分方法、...

    百度飞桨学习python机器学习、深度学习资料

    【机器学习】Word2Vec实现:实践-基于CBOW和Skip-gram实现Word2Vec 【机器学习】飞桨高层API的实践 【计算机视觉】1.实践:飞浆与python入门操作 【计算机视觉】2.实践:python复杂操作 【计算机视觉】3.理论:...

    2018年传智播客黑马训练营JAVAEE49期培训视频教程

    11-Maven(学习2天) 12-SSH企业案例2_ERP_项目整合(学习15天) 13-Mybatis(学习2天) 14-SpringMVC(学习2天) 15-SSM企业案例-客户管理系统(学习1天) 16-SSM分布式案例-互联网商城(学习14天) 17品优购电商系统开发

    Processing编程学习指南(第2版)

    Processing编程学习指南(第2版) Processing编程学习指南(第2版)

    机器学习课程课件

    机器学习是计算机科学的一个分支,它致力于通过让计算机系统学习数据中的模式来改善其性能,而无需显式编程。这门课程的课件是大牛根据8年的实战经验精心总结的,涵盖了理论与实践的结合,旨在帮助学习者深入理解和...

    基于Matlab实现统计学习、机器学习、神经网络、深度学习案例(源码+数据).rar

    2、适用人群:计算机,电子信息工程、数学等专业的学习者,作为“参考资料”参考学习使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本...

    强化学习理论部分.pdf

    2. 免模型算法进一步划分为基于价值(Value-Based)和基于策略(Policy-Based)两大类。基于价值的算法专注于寻找最优的价值函数,以此来指导动作的选择;而基于策略的算法则是直接学习最优策略函数,即直接对动作的...

Global site tag (gtag.js) - Google Analytics