#include "stdafx.h"
#include "apihook.h"
#include <stdio.h>
typedef BOOL (WINAPI *PFNCPW)(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
extern CAPIHook g_CreateProcessW;
BOOL WINAPI proxy_CreateProcessW(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
)
LPSTR lpszName = new CHAR[ 255 ];
LPSTR lpszName1 = new CHAR[ 255 ];
//由于传入的是宽字符串,所以要做处理,,
//下面可以添加你要处理的代码,,我只是弹出对话框要求用户确认运行还是不运行
::WideCharToMultiByte( CP_ACP, 0, (unsigned short *)lpCommandLine, -1, lpszName1, 255, NULL, NULL );
::WideCharToMultiByte( CP_ACP, 0, (unsigned short *)lpApplicationName, -1, lpszName, 255, NULL, NULL );
OutputDebugString(lpszName);
OutputDebugString(lpszName1);
wsprintf(buf,"%s\r\n%s",lpszName,lpszName1);
if(MessageBox(NULL,buf,"注意",MB_YESNO|MB_ICONWARNING|MB_SYSTEMMODAL)
==IDNO)
return FALSE;
return ((PFNCPW)(PROC)g_CreateProcessW)(
lpApplicationName,
lpCommandLine,
lpProcessAttributes,
lpThreadAttributes,
bInheritHandles,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
lpStartupInfo,
lpProcessInformation
);
}
CAPIHook g_CreateProcessW("kernel32.dll", "CreateProcessW",
(PROC)proxy_CreateProcessW);
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
分享到:
相关推荐
监控相应进程的创建,可以用来限制相应进程的创建数量
本人经过查阅资料编写的一个简单进程监控demo,其中用到libev库中相关技术,测试时编译运行文件内的代码,他会打印子进程的ID,然后在控制台的kill命令杀死该进程id, 程序会检测到子进程已被杀死,并重新创建子进程。
Android手机电池电量监控模块示例源代码,生成安卓电池记录文件:/sdcard/BatteryDog/battery.csv ,该文件包含时间、电量信息、温度和电压以及一些简单的图形。四个源码文件: BatteryDog_Service继承了服务...
5进程创建时都会向csrss来注册,从这个进程里面句柄表来枚举进程 6通过自身进程的HANDLETABLE来枚举进程 7通过EPROCESS的SessionProcessLinks来枚举进程 8通过EPROCESS ---VM---WorkingSetExpansionLinks获取进程 9...
当有了进程对象后,可以通过进程对象名称来创建PerformanceCounter类型对象,通过设定PerformanceCounter构造函数的参数实现获取特定进程的CPU和内存使用情况。 具体实例代码如下: 首先是获取本机中所有进程对象,...
能够定时截取当前电脑的屏幕,并将图标隐藏在自己创建的一个文件夹...退出监控程序要通过任务管理器的进程,当前存储图片的文件夹为C://programfiles//360//pic,可自行通过代码修改,重申:请不要用于非正当途径!!!
Delphi 监视进程运行状况,示例以创建记事本进程向大家展示,创建进程、终止进程的情况,通过监视器可知道进程的状态。在判断进程状态时,以下代码起到了关键作用: dwExitCode := 0; fprocessExit := ...
微软脚本中心里的例子,用到了WMI事件,抄下来备查。
程序功能:进程查看,进程详细信息,结束进程 监视指定目录下的文件创建,删除,改变,重命名 已将可执行文件和源码全部打包 <br>程序运行界面可到如下地址查看: ...
22、双击进程框列出的需要守护监控的进程,可以查看该进程更多详细信息。 23、配置文件中路径,一定要注意用\\表示,比如 <url>d:\\bitboy\\bitboy.exe</url> 还要有扩展名,name中的进程名不能有扩展名,否则找不到...
2003年11月适用于: Microsoft:registered:ASP.NET摘要:学习如何创建ASP.NETHTTP处理程序,以查看Web站点使用的进程的运行状况和关闭状况。另外,还将学习如何创建配置节处理程序(本文包含一些指向英文站点的链接...
代码如下:#!/bin/shwhile truedo ps ax -o command | sort | uniq > 1.txt usleep 100000 ps ax -o command | sort | uniq > 2.txt diff 1.txt 2.txt | grep ‘^\+[^\+]’ | while read a do a=`echo ${a#*+}...
该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社...
1)监控进程创建 2)杀线程 3)保护进程和屏蔽文件执行 9。其他 1)获取ntoskrnl.exe模块地址的几种办法 2)驱动感染技术扫盲 3)shadow ssdt学习笔记 4)高手进阶windows内核定时器之一 5)高手进阶...
(2)进程的分类、权限管理,重要进程的监控等扩展功能。 2.5 扩展功能:(1)实现一键关机; (2)资源管理器不同语言选择; (3)实现磁盘垃圾清理; (4)快捷键完成文件或文件夹操作; (5)本机版本显示; ...
1)监控进程创建 2)杀线程 3)保护进程和屏蔽文件执行 9。其他 1)获取ntoskrnl.exe模块地址的几种办法 2)驱动感染技术扫盲 3)shadow ssdt学习笔记 4)高手进阶windows内核定时器之一 5)高手进阶...
gh0st源代码!3.6版本的。 特性: 控制端采用IOCP模型,数据传输采用zlib压缩方式 稳定快速,上线数量无上限,可同时控制上万台主机 控制端自动检测CPU使用率调整自己的工作线程, 稳定高效 宿主为svchost以系统服务...
在Node里,子进程可以和父进程进行双向通信,而且在某种程度上,父进程还可以监控和管理子进程。 另外一种需要使用子进程的情况是,当你想简单地执行一个外部命令,并让Node获取命令的返回值时。比如,你可以执行一...
forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。 二、 forever安装 全局...
注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(5-8)、明日科技《C#示例源代码》(9-12)、明日科技《C#...