BinDiff is a comparison tool for binary files that helps to quickly find differences and similarities in disassembled code. It is used by security researchers and engineers across the globe to identify and isolate fixes for vulnerabilities in vendor-supplied patches and to analyze multiple versions of the same binary. Another common use case is to transfer analysis results from one binary to another, helping to prevent duplicate analyses of, for example, malware binaries. This also helps to retain knowledge across teams of binary analysts where the individual workflows might vary from analyst to analyst.
More specifically, BinDiff can be used to:
- Compare binary files for x86, MIPS, ARM/AArch64, PowerPC, and other architectures.
- Identify identical and similar functions in different binaries.
- Port function names, comments and local variable names from one disassembly to another.
- Detect and highlight changes between two variants of the same function.
Here is a screenshot demonstrating what using BinDiff to display per-function differences looks like:
At Google, the BinDiff core engine powers a large-scale malware processing pipeline helping to protect both internal and external users. BinDiff provides the underlying comparison results needed to cluster the world’s malware into related families with billions of comparisons performed so far.
IDA Patcher is a plugin for Hex-Ray’s IDA Pro disassembler designed to enhance IDA’s ability to patch binary files and memory. The plugin is useful for tasks related to malware analysis, exploit development as well as bug patching. IDA Patcher blends into the standard IDA user interface through the addition of a subview and several menu items
Simply copy idapatcher.py into IDA’s plugins folder. The plugin will be automatically loaded the next time you start IDA Pro.
The plugin uses pure IDA Python API, so it should be compatible with all versions of IDA on different platforms. However, it was only extensively tested on IDA Pro 6.5 for Windows with x86, x86-64 and ARM binaries.
Windows版的插件编写可以参考的文档比较多，并且也有专门的向导可以来做这件事情，相对来说比较简单。但是针对Mac下的插件编写虽然也有一些参考文档但是都比较老旧。有参考价值但是意义不大，形同鸡肋。Windows下的插件编写可以参考下面两篇文章中的向导：IDA Pro Plugin wizard for vs2013 以及 Ida Plugin Wizard For VS2010。
Mac OS 10.9.4
IDA Pro For Mac 6.5+sdk65
- 运行Xcode选择新建项目，从OSX中选的Framework & Library类，然后选择STL C++ Library（注意不要选择C/C++ Library，选择该项会在编译的时候出现非常多的诡异的错误，即使能够解决也相当的麻烦。）