博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Delphi中隐藏程序进程
阅读量:6135 次
发布时间:2019-06-21

本文共 2002 字,大约阅读时间需要 6 分钟。

在开发某些软件的时候,为了保护程序自身,就需要用到隐藏程序进程。以下通过实例来讲解隐藏程序进程的方法:    1、创建一个新的项目   Project1  选择File,New   Application。在表单Form1上放一Memo组件,一个OK按钮组件,改变OK按钮组件的Cation属性为   CreateProcess。再放一个timer组件。设置timer组件的Interval值为1000,每秒检查一次进程是否终止。    2、在Unit1   Use节的Type后定义一个过程  procedure   EstablishProcess;  在Unit1   Use节的Var后定义一个变量:  piProcInfoGPS:PROCESS_INFORMATION;    3、在Unit1   implementation节中编写EstablishProcess过程的实现代码如下:  procedure   EstablishProcess;  Var    siStartupInfSTARTUPINFO;    saProcess,saThread:SECURITY_ATTRIBUTES;    fSuccess:boolean;  begin    fSuccess:=false;    ZeroMemory(@siStartupInfo,sizeof(siStartupInfo));    siStartupInfo.cb:=sizeof(siStartupInfo);    saProcess.nLength:=sizeof(saProcess);    saProcess.lpSecurityDescriptor:=PChar(nil);    saProcess.bInheritHandle:=true;    saThread.nLength:=sizeof(saThread);    saThread.lpSecurityDescriptor:=PChar(nil);    saThread.bInheritHandle:=true;    fSuccess:=CreateProcess(PChar(nil),'c:\sr350\Sr350buff',@saProcess,@saThread,false,    CREATE_DEFAULT_ERROR_MODE,Pchar(nil),Pchar(nil),siStartupInfo,piProcInfoGPS);    if(   not   fSuccess)then      Form1.Memo1.Lines.Add('Create   Process   Sr350buff   fail.')    else      Form1.Memo1.Lines.Add('Create   Process   Sr350buff   success.')  end;  4、在CreateProcess按钮的OnClick事件中调用过程  EstablishProcess;  5、为Timer1的OnTimer事件编写代码:  Procedure   TForm1.Timer1Timer(Sender:   TObject);  Var    dwExitCode:DWORD;    fprocessExit:boolean;  Begin    dwExitCode:=0;    fprocessExit:=false;    fprocessExit:=GetExitCodeProcess(piProcInfoGPS.hProcess,dwExitCode);    if(fprocessExit   and   (dwExitCode<>STILL_ACTIVE))then    begin      Memo1.Lines.Add('SR350buff.exe进程终止');      CloseHandle(piProcInfoGPS.hThread);      CloseHandle(piProcInfoGPS.hProcess);      EstablishProcess;    end;  End;  6、程序中设可执行文件名为c:\sr350\sr350buff.exe,所以c:盘\sr350目录下需有sr350buff.exe文件。  7、编译联接,运行project1,单击CreateProcess可见c:\sr350\sr350buff.exe启动。关掉sr350buff.exe进程,可见sr350buff.exe自动再启动。

  

转载于:https://www.cnblogs.com/qingsong/p/4033048.html

你可能感兴趣的文章
Go 2提上日程,官方团队呼吁社区给新特性提案提交反馈
查看>>
技术绩效考量:你们可能都做错了
查看>>
“亲切照料”下的领域驱动设计
查看>>
除了输入法,移动端AI还有哪些想象空间?
查看>>
回家路上想起来关于Js一个有趣的东西
查看>>
B端大数据应用的架构实践与思考
查看>>
2019 SRE 调查报告:事故处理是主要工作,SRE 压力山大
查看>>
React创建组件的三种方式及其区别
查看>>
大中型企业的天网:Apache Geode
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
本地部署比SaaS更容易满足GDPR要求吗?
查看>>
业内预测:2017中国光通信设备规模将达近千亿元
查看>>
网页开发从业者仍更重视桌面程序及网页应用
查看>>
如何解决mysql数据库8小时无连接自动关闭
查看>>
ASP.NET Aries 入门开发教程5:自定义列表页工具栏区
查看>>
Rushcrm:如何利用CRM系统的权限设置
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.7 复习题
查看>>
Facebook 开源 Android 调试工具 —— Stetho
查看>>
生活不止有苟且,还有N个免费DevOps开源工具
查看>>
视频直播Android推流SDK初体验
查看>>