GithubHelp home page GithubHelp logo

disasmcomparison's Introduction

Comparing B2R2's disassembler with Iced, SharpDisasm and Capstone.NET

In this repository, we compare the speed of B2R2's disassembly with 3 other well-known disassembly libraries. For the comparison, we use three different raw binary blobs that we gathered from default linux distros as follows.

Binary Blobs Used

  1. blob_x86
  2. blob_x86_64
  3. libc_x86

Comparison Targets

We compare B2R2 (v0.5.0) against three .NET-based tools. For Capstone, we used both the Python version and .NET version.

Commands to Run Each Tool

<bit-length> is either 32 or 64, and <target file path> is the path to one of the blobs.

B2R2

dotnet run -c release --project b2r2_test/b2r2_test/b2r2_test.csproj <bit-length> <target file path>

Iced

dotnet run -c release --project iced_test/iced_test/iced_test.csproj <bit-length> <target file path>

SharpDisasm

dotnet run -c release --project sharpdisasm_test/sharpdisasm_test/sharpdisasm_test.csproj <bit-length> <target file path>

Capstone.NET

dotnet run -c release --project Capstone.NET_test/Capstone.NET_test/Capstone.NET_test.csproj <bit-length> <target file path>

Capstone(python)

python capstone_test_python.py <bit-length> <target file path>

Results

Below is the result showing how many seconds it took to disassemble each binary blob (lower is better). Each number is the average of 10 repeated runs. B2R2 took the second place, but please note that B2R2 is not merely a disassembly engine: it can lift a binary into a well-formed IR, and it can recover CFG from it, and many more.

Rank Tool blob_x86 blob_x86_64 libc_x86 Average
1 Iced (C#) 25.067 21.549 0.594 15.737
2 B2R2 (F#) 28.298 24.317 0.63 17.748
3 SharpDisasm (C#) 29.03 25.234 0.7 18.321
4 Capstone.NET (C#) 127.847 106.414 2.245 78.835
5 Capstone (python) 132.693 111.604 2.22 82.172

disasmcomparison's People

Contributors

cheonhoojeon avatar sangkilc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.