南大软分实验笔记|A8 污点分析
💡
原文中文,约14500字,阅读约需35分钟。
📝
内容提要
本文介绍了南大软件分析课程第八个实验中的污点分析方法,通过添加污点传播规则和处理source和sink实现。作者解决了污点传播问题,并通过修改代码通过了所有测试用例。文章还介绍了如何使用StringAppend.java进行测试,并提供了正确的TaintFlow结果。作者总结了不放弃的经验,并表示污点分析很有意思。
🎯
关键要点
- 本文介绍了南大软件分析课程第八个实验中的污点分析方法。
- 实验基于上下文敏感的过程间指针分析实现污点分析。
- 实现策略包括处理invoke语句、source和污点传播规则。
- 初始版本通过了大部分测试用例,但未能通过StringAppend.java测试。
- 经过调试,发现问题出在污点传播上,最终代码通过了所有测试用例。
- Source和Sink的生成规则简单,污点传播包括基于invoke语句的传播。
- 实现中增加了对source和污点传播规则的处理。
- 通过分析指针分析的结果,发现污点对象未能正确传播。
- 提出了使用Taint Flow Graph (TFG) 来记录污点传播边的解决方案。
- 修改了doTaintTransfer方法以基于TFG实现污点传播。
- 总结了在调试过程中的经验,强调了污点分析的趣味性。
🏷️
标签
➡️