软件漏洞检测与安卓藏文本地化研究
1. 基于随机编程的软件漏洞检测
1.1 背景与现状
随着现代信息系统规模和复杂性的增加,软件安全变得尤为重要。软件漏洞检测方法主要分为面向源代码和面向二进制两种。面向源代码的方法虽有进展,但存在诸多不足,如多数软件供应商不提供源代码,且难以验证源代码与发布软件的关系,也无法检测编译和链接过程中引入的漏洞。而面向二进制的方法能检测常规安全漏洞以及因环境、第三方库、编译器等因素引入的漏洞,因此更为重要。
常见的软件测试方法包括模糊测试(Fuzzing)和符号执行(Symbolic Execution)。模糊测试通过提供意外输入并监控异常行为来发现漏洞,简单易部署但效率低;符号执行通过抽象符号表示程序变量,模拟或实际执行程序并记录和解决路径约束来遍历状态空间,但随着程序规模增大,执行路径呈指数级增加,复杂度优化是重要突破点。
1.2 软件分类
从不同角度,软件可分为多种类型:
- 按应用范围 :分为系统软件和应用软件。系统软件如BIOS、操作系统、数据库管理系统等,为应用软件提供支持;应用软件则用于解决各种特定问题,种类更为多样。
- 按软件权限处理方式 :应用软件可分为商品软件、共享软件和免费软件等。
- 从软件测试角度 :分为可编程软件和非可编程软件。非可编程软件通常以固定格式数据为输入,在已知数据格式的前提下可通过数据生成进行完全测试;可编程软件以合理或不合理的程序为输入,输入空间通常难以表达,无法进行完全测试。
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



