软件的黑盒和白盒分析方法
在无法获得程序源代码文件的情况下,町以通过黑盒分析和白盒分析的方法来分
析一个可执行程序。黑盒分析不能深入可执行程序的内部结构,仪通过分析程序的输
入和输…来推断其内部工作原理和流程。而白盒分析则是通过软件逆向分析,对可执
行程序反}L编,通过研究程序的汇编代码来确定其工怍原理和流程。
传统的黑盒分析技术相对'm言容易实施,而且可以快速了解软件的大致工作流
程。

仅凭传统的黑盒分
析方法难以准确地了解软件的工作过程以及所使用的秘密信息。

采用白盒分析技术,通过仔细地阅读程序的汇编代码,分
析软件的每一个操作,从而获得软件的整体工作流程以及所使用的各种秘密信息。但
是白盒分析也有其弱点,即容易陷入细枝末节,难以对软件的工作流程建立1个清晰
和直观的印象。凼此我们采用黑盒分析和白盒分析相结合的策略,通过两者的优势互
补,高效而准确地分析软件。
在软件的白盒分析中,主要是对软件的二进制代码进行分析,这其中
也包含两种不同的分析技术,

静态分析技术
动态分析技术

。所谓静态分析,是指不
运行软件,而仅仅观察软件的,_进制代码而进行的分析,这种分析不涉及软件在运行
过程中可能从外界获取的数据,仅仅是做逻辑上的判断。

静态分析的最大优点,是对
没有运行起来的软件的-进制代码进行扫描,得到其中的函数调用关系,划分出功能
模块,并通过一定的手段分析出部分数据结构,再结合手工分析,从而得到软件的一
个整体架构图。但由于软件并不是一个静态的实体,它的行为相逻辑流程还要依赖于
程序的输入输出和外界控制,因此,在静态分析中我们在得不到数据的情况下,对软
件的行为进行精确判断,在多数情况下是困难的。此外,由于涉及到操作系统的系统
调用和外部的库文件调用,程序代码中不可能实现所有的功能,我们还需要观察其调
用外部函数的行为,然而仅凭静态分析难以得出外部函数执行的结果[zl。

动态分析技术正是为了弥补静态分析的不足之处而产生的调试技术,这种分析使
用调试器运行待分析的程序,通过单步跟踪和设置断点,并观察程序运行过程中内存
和寄存器等的数据变化情况,研究程序的具体行为。动态分析技术具有以'优势:
(l)借助CPU执行指令的准确性,确保了程序运行的流程,不会因为人工分析的
错误而把程序的功能逻辑判断错误。
(2)可以在较高层而上抽象分析,即对于某砦函数调用,并不需要分析其具体实现,
而只需要令其执行并观察执行前后数槲结果变化即町。
(3)在执行期问根据需要更改程序的数据甚至指令,以实现更高效的分析。
但纯粹的动态分析也有缺陷:程序在调试器中运行,有'町能产生不稳定的结果,
甚至有可能导致计算机的系统崩溃。同时,动态分析不能分析整个程序的全貌,对整
个程序的结构分析不能得到令入满意的结果。
因此,我们采用了动态分析和静态分析结合的策略,在程序运行前先进行静态分
析,进行模块功能的划分,然后在此基础上进行动态调试。这样,我们既可以一直观清
晰的看到软件的结构,义可吼动态观察软件的行为,从而极大地提高了软件逆向分析的效率

Powered by Zoundry

软件的黑盒和白盒分析方法相关推荐

  1. 【测试】软件测试之黑盒、白盒、灰盒测试

      黑盒测试: 不关心软件内部的逻辑,是关心输入和输出是否达到预期效果,相当把测试的软件看成一个只有输入和输出的黑盒子.   黑盒测试设计测试用例的方法:等价类.边界值.因果图法.正交法.场景法和错误 ...

  2. 软件测试之测试策略:黑盒和白盒

    软件测试策略:黑盒测试和白盒测试 1. 基本概念 测试,是通过运行代码的方式来检验程序和需求的符合性.不管我们使用什么样的测试策略,最终都是需要运行一个个测试用例,检验合理性.个人认为,黑盒和白盒,更 ...

  3. 如何绘制逻辑图— 4. 要素的属性:黑盒与白盒

    在上一篇文中已经介绍了描述要素大小的属性(粒度与分层),这一篇要说明描述要素状态的属性. 看到了"黑盒/白盒",可能认为在讨论软件的测试工作?错了,在分析方法中借用了软件测试的黑/ ...

  4. java软件测试黑盒工具,软件测试中的抽象层次系列之一 – 黑盒与白盒

    前几天我在微博上发出了一个STB-010(软件测试在线公益课程系列)报名通知的帖子,这一讲的题目是"软件测试黒盒技术与应用 - 状态转换测试方法",立即引来了一些讨论. 比如朱少民 ...

  5. 软件工程白盒测试的流图怎么画_功能安全理论 | 黑盒 与 白盒

    点击上方?"汽车知识共享空间"关注订阅号,设为星标⭐获取更多实时内容更新... 功能安全标准ISO 26262-6的第9部分是关于软件单元验证的的,总共三个Table(7.8.9) ...

  6. 黑盒、白盒、灰盒测试

    黑盒.白盒.灰盒测试 1.黑盒测试关注的是被测对象整体外部特征,而不关注内部的构造细节,比如一个查询功能,只要测试这个功能是否能够完成精确查询.模糊查询等操作,而不必在意具体是怎么实现查询的. 2.白 ...

  7. 面向可解释AI的黑盒和白盒模型

    使用模型属性.本地逻辑表示和全局逻辑表示从黑盒模型生成解释 快速回顾:XAI 和 NSC 可解释人工智能 (XAI) 致力于开发对人类(包括用户.开发人员.政策制定者和审计人员)来说本质上更容易理解的 ...

  8. 独家 | 机器学习解释模型:黑盒VS白盒(附资料链接)

    作者:Lars Hulstaert 翻译:吴金笛 校对:Nicola 本文约2000字,建议阅读9分钟. 本文将讨论一些可用于解释机器学习模型的不同技术. 大多数机器学习系统需要能够为利益相关者解释为 ...

  9. 【渗透测试】一次从黑盒转向白盒

    前言 本次是针对学校某系统的渗透记录,已获得相应授权.通用漏洞涉及影响单位早前已提交至SRC平台,厂商已发布对应补丁. [查看资料] 信息收集 目标系统主要是一个支付平台,是近期刚上线的系统,向学校老 ...

  10. 黑盒、白盒、灰盒验证

    黑盒验证: 所有的代码只局限于与rtl的外部信号进行连接,验证环境对于rtl的细节是不知道的 黑盒验证的关键在于能否根据输入预测出输出. 优点为验证环境较易维护 缺点是缺乏内部信号的控制和观测点 白盒 ...

最新文章

  1. SQL查询 的一些原则
  2. html5有foreach吗,JavaScript中的map()和forEach()有什么区别?
  3. 堪比JMeter的.Net压测工具 - Crank 入门篇
  4. 和信虚拟终端的全面部署-虚拟终端网络工程实施
  5. 如何快速入门LABVIEW及数据采集
  6. 中望cad文字显示问号怎么办_中望CAD钢筋符号显示为问号怎么办?
  7. 【日记本砸】21.02.01-12 过程只是过程,目的才是目的。
  8. 微信小程序 java社区快递柜取件管理系统python php
  9. win7快速启动栏计算机,没有快速启动栏?Win7任务栏功能更丰富
  10. 用xshell ssh连接测试服务器时候出的问题
  11. 访问局域网另外一台电脑虚拟机中CentOS7
  12. 百面机器学习 之 逻辑回归
  13. 腾讯云 视频通话SDK 第一个坑 域名要开https
  14. 0到新浪微博综搜榜第一
  15. 真心付出的一方失恋为什么痛,甚至厌世?
  16. 搜狗输入法 状态栏 自带的好用工具
  17. 读洛克的《政府论》下篇
  18. 【工业互联网】2018工业互联网红利爆发:政策战略、关键技术、典型案例深度解读!
  19. 欧文分校的计算机科学,有关美国加州大学欧文分校计算机科学专业.pdf
  20. 基于JAVA大学生学籍管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

热门文章

  1. (六十五)for循环
  2. JAVA 注解示例 详解
  3. My first essay
  4. 求高人指点此分页存储过程怎么样?
  5. SQL Server 建立索引视图并查看性能状况
  6. CSS基础学习-10.CSS伸缩盒(老版本)
  7. android注解处理技术APT
  8. 【2018.9.26】K-D Tree详解
  9. ABAP 练习用航班数据
  10. 联合主键用hibernate注解映射方式主要有三种: