开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 871|回复: 4
收起左侧

[求助] 如何禁止进程强制关闭程序?

[复制链接]
结帖率:90% (27/30)
发表于 2023-3-26 17:03:37 | 显示全部楼层 |阅读模式   辽宁省沈阳市
怎么才能防止“任务管理器”在进程中 结束进程 呢 ?我的想法是 只能通过 启动程序窗口界面的关闭或关闭按钮 来结束自身程序


结帖率:92% (172/187)

签到天数: 10 天

发表于 2023-3-26 18:27:21 | 显示全部楼层   广东省茂名市
驱动_保护进程()
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 8 天

发表于 2023-3-26 18:33:00 | 显示全部楼层   广西壮族自治区南宁市
设置另一个进程来守护它
如果被关闭了就重新打开
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 2 天

发表于 2023-3-27 11:12:30 | 显示全部楼层   云南省普洱市
内核中使用ObRegisterCallbacks注册回调类型为OB_OPERATION_HANDLE_CREATE的函数.函数体代码为:

    //获取pid,这里的HANDLE保存的其实是一个进程pid
    HANDLE pid = PsGetProcessId((PEPROCESS)pOperationInformation->Object);
    UNREFERENCED_PARAMETER(RegistrationContext);

    //如果是pid

    if (g_ulProtectPid && pid == g_ulProtectPid)
    {
        //如果创建句柄
        if (pOperationInformation->Operation == OB_OPERATION_HANDLE_CREATE)
        {
            //给进程赋予新权限,直接降权
            pOperationInformation->Parameters->CreateHandleInformation.DesiredAccess = 0x0;

            int code = pOperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess;

            if (code == 0x1041)
                pOperationInformation->Parameters->CreateHandleInformation.DesiredAccess = STANDARD_RIGHTS_ALL;

        }
    }
回复 支持 反对

使用道具 举报

结帖率:100% (20/20)

签到天数: 4 天

发表于 2023-3-27 15:14:44 | 显示全部楼层   天津市天津市
防止“任务管理器”结束进程,可以在程序中监听系统消息 WM_CLOSE 和 WM_QUERYENDSESSION,防止关闭消息的发送。同时,可以在程序运行时创建一个进程保护程序,对主程序进行监视和保护,一旦主程序被关闭,进程保护程序就会重新启动主程序,确保主程序的持续运行。

以下是示例代码,可以实现上述功能:

e
Copy code
.版本 2

' 导入系统库
.使用命名空间 "System.Windows.Forms"

' 定义全局变量
全局变量
    程序互斥体 = System.Threading.Mutex("MyProgram")
    进程保护程序路径 = "C:\Program Files\MyProgram\ProcessProtector.exe"
    主程序路径 = "C:\Program Files\MyProgram\MyProgram.exe"
    主程序进程名 = "MyProgram.exe"
    进程保护程序进程名 = "ProcessProtector.exe"
    进程保护程序启动参数 = "-watch MyProgram.exe"

' 创建进程保护程序
进程保护程序 = New System.Diagnostics.Process
进程保护程序.StartInfo.FileName = 进程保护程序路径
进程保护程序.StartInfo.Arguments = 进程保护程序启动参数
进程保护程序.Start()

' 监听系统消息
监听系统消息(Wnd, Msg, wParam, lParam)
    选择 Msg
        情况 WM_CLOSE:
            ' 禁止关闭窗口
            返回 1
        情况 WM_QUERYENDSESSION:
            ' 禁止关闭程序
            返回 0
    结束选择
    ' 调用默认消息处理函数
    返回 DefWindowProc(Wnd, Msg, wParam, lParam)

' 启动主程序
主程序 = New System.Diagnostics.Process
主程序.StartInfo.FileName = 主程序路径
主程序.Start()

' 进入消息循环
应用程序.运行()
需要注意的是,这只是一个简单的示例代码,实际上还需要考虑更多因素,例如程序的启动方式、运行环境等。为了实现更好的程序保护,建议使用专业的安全框架或工具。
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表