|
本帖最后由 sorrow 于 2014-4-2 05:31 编辑
比如找到的一个
.子程序 进程_ID是否有效, 逻辑型, 公开, 判断一个进程ID是否存在(有效)
.参数 进程ID, 整数型
.局部变量 信息, 进程信息列表
.局部变量 进程快照, 整数型
.局部变量 进程句柄, 整数型
进程快照 = CreateToolhelp32Snapshot (15, 0)
.如果真 (进程快照 = 0)
返回 (假)
.如果真结束
信息.dwSize = 1024
进程句柄 = Process32First (进程快照, 信息)
.判断循环首 (进程句柄 ≠ 0)
.如果真 (进程ID = 信息.进程ID)’找到了进程ID的时候 直接返回 未释放句柄 导致了内存泄漏
CloseHandle (进程快照)‘这里是3.70版本没有的 是我自己加的
返回 (真)
.如果真结束
进程句柄 = Process32Next (进程快照, 信息)
.判断循环尾 ()
CloseHandle (进程快照)
返回 (假)
CreateToolhelp32Snapshot 如果创建失败 返回的是 INVALID_HANDLE_VALUE(值为-1)
而不是0
有非常多的命令 创建了多个句柄 第二个创建失败 并没有释放第一个 如:线程_DLL注入 线程_DLL卸载等
’请考虑命令的完善性
意见:进程_关闭命令可能很多人会误解 会以为是结束进程
‘建议改名 句柄_关闭 或 内核_关闭等
|
评分
-
参与人数 1 | 好评 +1 |
精币 +3 |
收起
理由
|
冰点
| + 1 |
+ 3 |
已记录,感谢提醒,记录帖地址:http://bbs.125.la/thread- |
查看全部评分
|