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

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

  • 相关阅读:
    Python os模块
    Python 常用模块
    CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目
    CentOS下安装Python3.4
    修改windows文件的换行符
    dubbo源码阅读-ProxyFactory(十一)之JdkProxyFactory
    dubbo源码阅读-Filter默认实现(十一)之DeprecatedFilter
    dubbo源码阅读-Filter默认实现(十一)之TimeoutFilter
    dubbo源码阅读-Filter默认实现(十一)之ExceptionFilter
    dubbo源码阅读-Filter默认实现(十一)之ContextFilter&ConsumerContextFilter
  • 原文地址:https://www.cnblogs.com/hell--world/p/11610067.html
Copyright © 2011-2022 走看看