基于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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目录 : 第0章 认识Delphi 0-1 前言 0-2 Delphi简介 0-3 进入Delphi7 0-4 退出Delphi 第1章 常用的窗口工具 1-1 窗体(Form) 1-2 代码编辑器(Code Editor) 1-3 代码浏览器(Code Explorer) 1-4 组件面板(Componet Palette) 1-5 对象检视器(Object Inspector) 1-6 快捷工具栏(Speed Menu) 1-7 项目管理器(Project Manager) 1-8 桌面工具栏(Desktops Tollbar) 1-9 图像编辑器(Image Editor) 1-10 对象浏览器(Object TreeView) 1-11 关联选项卡(Digram Page) 第2章 常用的菜单 2-1 File菜单 2-2 Edit菜单 2-3 Search菜单 2-4 View菜单 2-5 Project菜单 2-6 Run菜单 2-7 Tools菜单 2-8 Windows菜单 第3章 集成开发环境的改变 3-1 Delphi集成开民环境介绍 3-2 操作菜单方面的改进 3-2-1 外面方面的改变 3-2-2 内容方面的改变 3-3 对象检视器方面的改进 3-4 组件面板的改进 3-5 代码编辑器的改进 3-6 设计陈列室的改进 3-7 编译信息的显示 3-8 调试器方面的改进 3-8-1 Watch List改进 3-8-2 Debugger选项的改进 3-8-3 Run Parameters对话框的改进 第4章 Delphi Object Pascal的初步印象 4-1 面向对象程序概论 4-1-1 类 4-1-2 对象 4-1-3 继承 4-1-4 封装 4-1-5 信息 4-2 Delphi项目结构及窗体的建立 4-2-1 GUI模式的项目 4-2-2 Console模式的项目 4-3 Object Pascal程序结构 4-3-1 项目程序(Program)的结构 4-3-2 单元程序(Unit)的结构 4-4 如何完成一个简单的窗体程序 第5章 简单的常用指令介绍 5-1 TLabel类对象 5-1-1 Caption属性 5-2 TButton类对象 5-2-1 Caption属笥 5-2-2 OnClick事件 5-3 TEdit类对象 5-4 TCanvas类对象 5-5 Showmessage函数 5-6 InputBox函数 5-7 MessageDlg函灵敏 第6章 Delphi与Object Pascal程序的基本概念 6-1 Object Pascal Program程序结构与Delphi项目结构的关系 6-1-1 标头(Heading) 6-1-2 Uses子句 6-1-3 编译指令(Compiler directive) 6-1-4 源代码区(begin end) 6-2 Unit程序结构与窗体的关系 6-2-1 Unit代码结构 6-2-2 语句(Statement) 6-2-3 Unit间Use的状况 6-3 数据类型与定义变量 6-3-1 数据类型概论 6-3-2 不需要使用type声明的数据类型 6-3-3 必须使用type声明的数据类型 6-3-4 定义变量 6-3-5 变量的作用域 6-3-6 定义常量 6-3-7 变量的类型转换(Typecast) 6-4 Object Pascal的运算符(Operator) 6-4-1 设置运算符(assign Operator) 6-4-2 算数运算符(Arithmetic Operator) 6-4-3 关系运算符(Relational Operator) 6-4-4 布尔运算符 6-4-5 集合运算符 6-4-6 字符串运算符 6-4-7 位逻辑运算符 6-4-8 运算符优先级 6-5 流程控制 6-5-1 语句的基本概念 6-5-2 表达式语句(Expression-Statement) 6-5-3 流程控制语句 6-5-4 可视化程序与嵌套程序 6-6 数组与指针 6-6-1 数组类型 6-6-2 指针类型 6-6-3 浅谈指针与数据结构 6-7 程序与函数(Procedures and Functions) 6-7-1 函数的意义与优点 6-7-2 函数的分类与效用 6-7-3 自定义函数使用方法概述 6-7-4 函数的声明、定义及其实现 6-7-5 参数传递方式 6-7-6 声明修

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值