星星博客 »  > 

怎样在BinaryNinja中查看Vulnerable的function(以HeartBleed CVE-2014-0160为例)

这篇博客没有什么技术含量,只是我对Binary Analysis的很多过程不熟悉,简单记录一下。

我们以OpenSSL为例,这个漏洞的信息,可以参考这里的介绍:https://blog.csdn.net/javajiawei/article/details/82429886 以及:http://blog.chinaunix.net/uid-26275986-id-4214113.html

首先在这里:https://ftp.openssl.org/source/old/1.0.1/

下载openssl-1.0.1f.tar.gz 和openssl-1.0.1g.tar.gz

然后分别进入到其解压目录后,运行make(完整的安装过程还要稍微复杂一些:https://blog.csdn.net/luckydog612/article/details/80396077,但我们这里只是需要将源码编译),make报错也不用管:

make[2]: *** [../Makefile.shared:164:link_app.] 错误 1
make[2]: 离开目录“/home/yu/DisassemblyTest/openssl-1.0.1f/apps”
make[1]: *** [Makefile:154:openssl] 错误 2
make[1]: 离开目录“/home/yu/DisassemblyTest/openssl-1.0.1f/apps”
make: *** [Makefile:284:build_apps] 错误 1

我不知道这个报错是什么鬼。其次打开BinaryNinja,定位到:openssl-1.0.1g/ssl,打开d1_both.o,定位到dtls1_process_heartbeat这个function,就可以看到其Instruction了。总体上来讲,该漏洞主要存在于OpenSSL的源文件ssl/d1_both.c和t1_lib.c中的心跳处理函数dtls1_process_heartbeat和tls_process_heartbeat两个函数中。

附上Vulnerable和Clean的两个function截图:

 

相关文章