你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
Delphi编程实现U盘锁(四)
 

IniDevice;     //获得设备列表

RejectUSB;    //卸载设备

DisMountCmdOk:=false;

mydate:=now;  //获取当前日期时间

sj:=FormatDateTime('yyyy""mm""dd""hh""mm""',MyDate);

sj:=sj+'    移动设备序列号:'+inttostr(UsbId);

Append(UsbFile);  //保存非法U盘使用时间到日志文件中

WriteLn(UsbFile,sj);

end;

上文中的密码登录和U盘授权代码请读者详见本文附带源代码。U盘授权界面如下:

     


 

3.3  防止进程强制结束

防止进程被强制结束网上有很多类似的代码探讨,笔者认为常用的有两个方法:一是真正隐藏进程,即进程不在任务管理器中显示。此方法实现难度比较大,并且具有主动防御的杀毒软件会拦截。二是用远程线程插入技术创建守护线程,此方法原理比较简单,实现起来也相对容易。本文将采用第二种方法。

第二种方法的原理是:把守护线程写在DLL里面,用远程线程API函数让目标进程加载DLL,这样守护线程就在别的进程中执行。本文把守护线程插入到了Explorer进程。具体实现代码:

//远程线程插入自定义函数(HostFile为目标进程,GuestFile为要插入DLL)

function AttachToProcess(const HostFile, GuestFile: string; const PID: DWORD = 0): DWORD;

var

  hRemoteProcess: THandle; //目标进程句柄

  dwRemoteProcessId: DWORD; //目标进程ID

  cb: DWORD;

  pszLibFileRemote: Pointer;

  iReturnCode: Boolean;

  TempVar: DWORD;

  pfnStartAddr: TFNThreadStartRoutine;

  pszLibAFi
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089