zoukankan      html  css  js  c++  java
  • 工具使用-BinDiff

    补丁比较工具BinDiff

    通过补丁比较进行漏洞挖掘的思路

    在只有补丁包的情况下,为了发掘补丁解决的漏洞,需要弄清两个问题

    1、漏洞在哪个模块中?

    2、漏洞在模块中的哪个函数?

    为解决第一个问题,可以通过ProcessMonitor,监控补丁执行时对哪些文件进行了修改,从而判断漏洞可能的模块。

    为解决第二个问题,需要将补丁前的模块和补丁后的模块进行二进制比较,分析其中被修改的函数,找到漏洞成因。

    还有一种思路,通过调试器的指令运行记录功能,记录poc在漏洞版本和修复版本运行的指令上的差异,从而找出漏洞成因和修复方法。上一种分析方法类似于静态分析,此种分析方法类似于动态调试。

    BinDiff下载以及安装教程:

    https://blog.csdn.net/counsellor/article/details/98954462

    https://www.cnblogs.com/lsdb/p/10543411.html

    https://blog.csdn.net/caiqiiqi/article/details/80890226

    注意事项

    64位的ida可以生成32位程序或64位程序的.i64文件。64位的IDA不能用于打开.idb格式的文件。

    BinDiff可以支持.idb和.i64两种格式的文件比较。

    BinDiff如果分析较大的文件,需要使用大量内存,如果内存过小,可能导致分析结果无法在bindiff.jar的界面中显示,笔者环境为win7虚拟机+ida6.8+BinDiff4.3,需要配置16Gb的虚拟机内存才能保证漏洞战争一书中漏洞补丁实例的分析。

    BindDiff中bindiff.jar界面似乎不支持中文,最好保证文件以及文件路径均为英文

    如果系统中账户用户名为中文(即c盘user目录下当前账户文件夹名为中文),会导致BinDiff执行失败,因为BinDiff会用到"C:Users用户名"路径下的文件。

    使用示例:

    搜索指定漏洞函数0x30f0b5c2

    对比漏洞函数补丁前后的执行流程

  • 相关阅读:
    skymvc文件上传支持多文件上传
    skymvc网站测试之mysql数据生成
    欢迎使用skymvc框架,简单易用的php框架
    模式识别与机器学习(第四章学习记录和心得)
    python实现MICD分类器
    python实现MED分类器
    模式识别与机器学习(第一至三章学习记录和心得)
    软工实践个人总结
    第09组 每周小结 (3/3)
    第09组 每周小结 (2/3)
  • 原文地址:https://www.cnblogs.com/hell--world/p/11610067.html
Copyright © 2011-2022 走看看