• 基于Delphi7的木马程序的查杀设计与实现


    目 录
    第一章 引言 7
    1.1 选题意义 7
    1.1.1 QQ安全背景及现状 7
    1.1.2木马研究现状 8
    1.2本文研究的内容及组织结构 8
    1.3技术介绍 9
    1.3.1钩子技术介绍 9
    1.3.2动态链接库(DLL) 12
    1.4开发工具介绍 14
    第二章 木马介绍 15
    2. 1 普通木马介绍 15
    2.1.1木马种类 15
    2.1.2木马特性 15
    2.1.3中木马后出现的状况 16
    2.1.4木马启动 16
    2.1.5木马隐藏 18
    2.1.6木马解法 19
    2.1.7木马的防范 20
    2. 2本系统所针对的特殊类型木马的介绍 21
    第三章 系统功能分析设计及实现 23
    3. 1需求分析 23
    3. 2 系统设计 23
    3.2.1业务流程图与功能模块图 23
    3.2.2 系统实现追求性能原则 24
    3. 3系统实现 25
    第四章 系统界面分析和设计 30
    4. 1主界面设计 30
    4. 2浏览界面设计 31
    4. 3确认关闭QQ界面设计 31
    4. 4确认杀死木马程序界面设计 32
    4. 5确认杀死硬盘中木马程序界面设计 32
    第五章 总结与展望 34
    5. 1总结 34
    5. 2展望 34
    致 谢 35
    附 录 37
    第三章 系统功能分析设计及实现
    3. 1需求分析
    输出:杀毒时,当系统发现有QQ运行时,弹出提示信息,询问用户是否要关闭QQ;当发现系统有木马时也要有相应的提示,询问用户是否要查杀木马。
    性能:要求系统性能稳定,操作简单方便、响应快速,木马查杀过程会在面板上显示,出现异常时,要有控制,捕获异常。
    功能:杀毒模块中,实现系统木马的查杀,有四个方面入手:内存,系统目录,注册表,硬盘,当发现QQ程序运行并在提示信息中选择关闭该程序,则可以看到进程列表中的QQ进程将会被关闭,如果发现木马的话,相应的木马进程将被关闭、文件将被删除,杀毒过程中,显示查杀进度;浏览模块中,当用户在“浏览”中选择好了木马查杀的路径之后,该路径会相应的出现在界面上的查杀路径中;停止模块只有在杀毒进行时才有效;进程管理模块,有刷新进程、结束进程、复制信息及自动刷新几个功能,便于用户比较有效的观察到进程的变化。
    控制:每隔五秒钟刷新进程,如果进程列表中进程有发生变化则十秒钟后自动刷新进程。
    3. 2 系统设计
    3.2.1业务流程图与功能模块图
    在这里插入图片描述

    图3.1系统功能模块结构图

    在这里插入图片描述

    图3.2杀毒功能模块图
    在这里插入图片描述

    图3.3进程管理模块图

    3.2.2 系统实现追求性能原则
    1.实用性:遵循面向应用,注重实效,急用先上,逐步完善的原则;
    2.先进性:采用先进成熟的网络概念、技术、方法,反映当今先进水平,又给未来的发展留有余地;
    3.可靠性:系统必须可靠运行;
    4.可扩充性:系统是一个逐步发展的应用环境,针对木马的不断更新在木马查杀等方面必须具有升级换代的可能,本文转载自http://www.biyezuopin.vip/onews.asp?id=12712这种扩充不仅能充分保护原有资源,而且具有较高的性能价格比;
    5.可维护性:系统具有良好的管理、监控、故障分析和处理能力,使系统具有极高的可维护性。

    procedure TMainForm.KillAntivirusBtnClick(Sender: TObject);
    var
      hProc       : THandle;
    begin
      LockBtn;
      {
      if SearchDirEdit.Text='' then
         SearchDirEdit.Text:=gWinPath + '\System32';
      }
      gSearchPath:=SearchDirEdit.Text;//获取查杀路径
      if TrojanNameList=Nil then
        TrojanNameList:=TStringList.Create
      else
        TrojanNameList.Clear;
      TrojanNameList.Add( LowerCase(TrojanProcName) );//添加查杀列表
      TrojanNameList.Add( LowerCase(TrojanDLLName) );//添加查杀列表
    
      ForceStop       := False;
      TrojanCnt       := 0;
      MemTrojanCnt    := 0;
      DiskTrojanCnt   := 0;
      RegTrojanCnt    := 0;
      SkipTrojanCnt   := 0;
      Console.Clear;
      ProgressBar1.Max:=200;
      ProgressBar1.Position:=0;
      StatusBar1.Panels.Items[0].Text:='扫描内存进程...';
    
      //开始扫描内存进程
      StatusBar1.Panels.Items[0].Text:='扫描内存进程...';
      Console.Lines.Add('开始查毒'#13#10'==============');
      Console.Lines.Add('开始扫描内存进程...');
      ProgressBar1.Position:=10;
      StatusBar1.Panels.Items[0].Text:='扫描内存中的QQ程序进程...';
      Console.Lines.Add('开始扫描内存中的QQ程序进程...');
    
      if ProcessStopMsg then Exit;
    
      //扫描并中止QQ进程
      hProc := FindProcByName(QQProcName);
      if hProc <= 0 then
        Console.Lines.Add('内存中没有发现QQ程序进程 ')
      else
        begin
          Console.Lines.Add('内存中发现QQ程序进程,准备中止QQ进程... ');
          case Application.MessageBox('要继续杀毒,强烈建议关闭QQ程序,确定要关闭所有QQ程序吗?','确认关闭QQ程序',MB_YESNOCANCEL) of
            IDYES:
                begin
                  while hProc>0 do
                  begin
                    if not KillTaskByProc(hProc) then
                      Console.Lines.Add(' 关闭QQ程序失败,杀毒继续!')
                    else
                      Console.Lines.Add(' 关闭QQ程序成功,杀毒继续!');
                    Sleep(100);
                    hProc := FindProcByName(QQProcName);//如果还有QQ进程,继续关闭
                  end;
                end;
            IDNO:
                begin
                  Console.Lines.Add(' 关闭QQ程序跳过,杀毒继续!');
                end;
            else
                begin
                  Console.Lines.Add(' 关闭QQ程序被取消,杀毒中止!');
                  ProgressBar1.Position:=0;
                  StatusBar1.Panels.Items[0].Text:='杀毒被中止.';
                  UnLockBtn;
                  Exit;
                end;
            end;
        end;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【Designing ML Systems】第 9 章 :生产中的持续学习和测试
    如何将项目打包上传到NuGet服务器(图文教程)?
    antd-design的modal结合form表单传值
    leetcode724. 寻找数组的中心下标
    备战“金九银十”之MySQL:(历年高频面试真题+MySQL学习路线+学习笔记)
    Servlet系列:生命周期(init、 service、destroy)详解
    含文档+PPT+源码等]精品微信小程序旅游服务平台+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计
    基于 Python 的地理空间绘图(附源码)
    【通信系列 5 -- HTTPS 介绍】
    基于SSM的学籍证明打印系统设计与实现。
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/127459737