程序分析及约束求解器.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序分析及约束求解器

程序分析及约束求解器 Edgar Barbosa SyScan360 北京 - 2014 作者简介 •  ⾼级安全研究员- COSEINC(国际知名安全机构) •  从事Windows 内核、驱动设备和管理程序的逆向⼯程 •  BluePill 硬件虚拟化Rootkit作者之⼀ •  现在专注于漏洞挖掘的⾃动化研究 提纲 •  程序分析 •  漏洞挖掘 •  SAT 求解器 •  SMT 求解器 •  中间语⾔ ⺫的 •  本次演讲的⺫的是展⽰如何使⽤约束求解器,包括 SMT 约束求解器,⽤于逆向⼯程和漏洞挖掘之类的程 序分析。 程序分析 漏洞挖掘 漏洞挖掘 •  近来,程序分析和逆向⼯程⼤多是专⽤于⼀个特定的 ⺫标:挖掘软件漏洞。 •  ⽆论你是否喜欢,这就是事实。逆向⼯程的主要功能 不仅仅是理解和修改应⽤程序,还作为漏洞挖掘的辅 助⼯具。 如何挖掘漏洞? •  如何挖掘闭源应⽤程序的漏洞? •  ⿊盒测试是通过操纵其公开接⼝对软件系统 进⾏评估的⽅法。 •  最知名的⿊盒测试⼯具是模糊测试. Fuzzing •  模糊测试或者模糊化是⼀种软件测试技术, , 通常是⾃动化或者半⾃动化 它包括提供⽆效 的、未预期的、随机的数据作为程序的输⼊。 Fuzzing Phases 1.  识别⺫标 2.  识别输⼊ 3.  ⽣成模糊化数据 4.  将模糊化数据作为输⼊执⾏程序 5.  监视异常 6.  验证可⽤性 Fuzzing – 输⼊类型 •  FTP 如果我们要对⼀台 服务器进⾏模糊测试, 我们不能仅仅⽣成随机数据,并将其发送给 ( ) 服务器。这是⾮常低效的 除了极少数情况 。 •  FTP 建⽴⼀个能够理解 协议的模糊测试机是有 必要的。这同样适合于其他任何协议或⽂件 格式,如pdf或doc。 Fuzzing – 格式 •  问题是开发者必须事先知道关于输⼊格式的 知识。 •  如果协议或格式是未知的怎么办? •  如果使⽤的校验算法是未知的怎么办? •  , 另外的情况下,尽管协议是公开的 但⼀些实 现⽅式并未遵守协议规范。 逆向⼯程 •  结合逆向⼯程,我们可以提取协议和格式的 信息。 •  ⼀些⾼层次的信息在编译过程中会丢失,但 ⽤于理解应⽤程序⼯作的所有必要信息是编 码在可执⾏⽂件中的。 •  这包括协议和⽂件解析器。 Fuzzing •  模糊测试仍然是漏洞挖掘的有效⼿段。 •  它能产⽣很多崩溃,这些崩溃作为分析问题的 起点,以便确定漏洞的可利⽤性。 •  是否存在⾃动化的模糊测试⽅法,⽽不需要程 序员学习新的协议或⽂件格式规范? •  我们很懒惰,学习新的格式和协议很费时。 漏洞挖掘⾃动化

文档评论(0)

75986597 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档