339 lines
17 KiB
HTML
339 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta name="author" content="Vector 35 Inc">
|
|
<link rel="shortcut icon" href="../img/favicon.ico">
|
|
<title>Troubleshooting - Binary Ninja User Documentation</title>
|
|
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
|
|
|
|
<link rel="stylesheet" href="../css/theme.css" type="text/css" />
|
|
<link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
|
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
|
|
<link href="../docs.css?1535411025" rel="stylesheet">
|
|
|
|
<script>
|
|
// Current page data
|
|
var mkdocs_page_name = "Troubleshooting";
|
|
var mkdocs_page_input_path = "guide/troubleshooting.md";
|
|
var mkdocs_page_url = "/guide/troubleshooting.html";
|
|
</script>
|
|
|
|
<script src="../js/jquery-2.1.1.min.js" defer></script>
|
|
<script src="../js/modernizr-2.8.3.min.js" defer></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/cpp.min.js"></script>
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/python.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
|
|
ga('create', 'UA-72420552-3', 'docs.binary.ninja');
|
|
ga('send', 'pageview');
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body class="wy-body-for-nav" role="document">
|
|
|
|
<div class="wy-grid-for-nav">
|
|
|
|
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
|
|
<div class="wy-side-nav-search">
|
|
<a href="../index.html" class="icon icon-home"> Binary Ninja User Documentation</a>
|
|
<div role="search">
|
|
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|
<input type="text" name="q" placeholder="Search docs" title="Type search term here" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
|
<ul class="current">
|
|
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../index.html">Home</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<a class="" href="../getting-started.html">Getting Started Guide</a>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<span class="caption-text">User Guide</span>
|
|
<ul class="subnav">
|
|
<li class="">
|
|
|
|
<a class="" href="plugins.html">Using and Writing Plugins</a>
|
|
</li>
|
|
<li class=" current">
|
|
|
|
<a class="current" href="troubleshooting.html">Troubleshooting</a>
|
|
<ul class="subnav">
|
|
|
|
<li class="toctree-l3"><a href="#troubleshooting">Troubleshooting</a></li>
|
|
|
|
<ul>
|
|
|
|
<li><a class="toctree-l4" href="#basics">Basics</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#bug-reproduction">Bug Reproduction</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#plugin-troubleshooting">Plugin Troubleshooting</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#license-problems">License Problems</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#windows">Windows</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#os-x">OS X</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#linux">Linux</a></li>
|
|
|
|
<li><a class="toctree-l4" href="#api">API</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<span class="caption-text">Developer Guide</span>
|
|
<ul class="subnav">
|
|
<li class="">
|
|
|
|
<a class="" href="../dev/documentation.html">Contributing Documentation</a>
|
|
</li>
|
|
<li class="">
|
|
|
|
<a class="" href="../dev/bnil-llil.html">BNIL Guide: LLIL</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="toctree-l1">
|
|
|
|
<span class="caption-text">About</span>
|
|
<ul class="subnav">
|
|
<li class="">
|
|
|
|
<a class="" href="../about/license.html">License</a>
|
|
</li>
|
|
<li class="">
|
|
|
|
<a class="" href="../about/open-source.html">Open Source</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
|
|
|
|
|
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
<a href="../index.html">Binary Ninja User Documentation</a>
|
|
</nav>
|
|
|
|
|
|
<div class="wy-nav-content">
|
|
<div class="rst-content">
|
|
<div role="navigation" aria-label="breadcrumbs navigation">
|
|
<ul class="wy-breadcrumbs">
|
|
<li><a href="../index.html">Docs</a> »</li>
|
|
|
|
|
|
|
|
<li>User Guide »</li>
|
|
|
|
|
|
|
|
<li>Troubleshooting</li>
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
</li>
|
|
</ul>
|
|
<hr/>
|
|
</div>
|
|
<div role="main">
|
|
<div class="section">
|
|
|
|
<h1 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link">¶</a></h1>
|
|
<h2 id="basics">Basics<a class="headerlink" href="#basics" title="Permanent link">¶</a></h2>
|
|
<ul>
|
|
<li>Have you searched <a href="https://github.com/Vector35/binaryninja-api/issues?q=is%3Aissue">known issues</a>?</li>
|
|
<li>Have you tried rebooting? (Kidding!)</li>
|
|
<li>Did you read all the items on this page?</li>
|
|
<li>Then you should contact <a href="https://binary.ninja/support.html">support</a>!</li>
|
|
</ul>
|
|
<h2 id="bug-reproduction">Bug Reproduction<a class="headerlink" href="#bug-reproduction" title="Permanent link">¶</a></h2>
|
|
<p>Running Binary Ninja with debug logging will make your bug report more useful.</p>
|
|
<div class="codehilite"><pre><span></span>./binaryninja --debug --stderr-log
|
|
</pre></div>
|
|
|
|
|
|
<p>Alternatively, it might be easier to save debug logs to a file instead:</p>
|
|
<div class="codehilite"><pre><span></span>./binaryninja -d -l logfile.txt
|
|
</pre></div>
|
|
|
|
|
|
<p>(note that both long and short-form of the command-line arguments are demonstrated in the above examples)</p>
|
|
<h2 id="plugin-troubleshooting">Plugin Troubleshooting<a class="headerlink" href="#plugin-troubleshooting" title="Permanent link">¶</a></h2>
|
|
<p>While third party plugins are not officially supported, there are a number of troubleshooting tips that can help identify the cause. The most important is to enable debug logging as suggested in the previous section. This will often highlight problems with python paths or any other issues that prevent plugins from running.</p>
|
|
<p>Additionally, if you're having trouble running a plugin in headless mode (without a GUI calling directly into the core), make sure you'er running the Commercial version of Binary Ninja as the Student/Non-Commercial edition does not support headless processing.</p>
|
|
<p>Next, if running a python plugin, make sure the python requirements are met by your existing installation. Note that on windows, the bundled python is used and python requirements should be installed either by manually copying the modules to the <code>plugins</code> <a href="/getting-started/#directories">folder</a>.</p>
|
|
<h2 id="license-problems">License Problems<a class="headerlink" href="#license-problems" title="Permanent link">¶</a></h2>
|
|
<ul>
|
|
<li>If experiencing problems with Windows UAC permissions during an update, the easiest fix is to completely un-install and <a href="https://binary.ninja/recover.html">recover</a> the latest installer and license. Preferences are saved outside the installation folder and are preserved, though you might want to remove your <a href="/getting-started/#license">license</a>.</li>
|
|
<li>If you need to change the email address on your license, contact <a href="https://binary.ninja/support.html">support</a>.</li>
|
|
</ul>
|
|
<h2 id="windows">Windows<a class="headerlink" href="#windows" title="Permanent link">¶</a></h2>
|
|
<ul>
|
|
<li>While Windows 7 is not officially supported (by us, or Microsoft for that matter), it's possible to have Binary Ninja work if all available windows updates are installed as a library pack update somewhere in the updates is required for us to run.</li>
|
|
<li>If you install Windows without internet access and have never run windows updates to install an update, you may have an incomplete windows certificate store. You'll see errors when attempting to update about <code>CERTIFICATE VERIFICATION FAILED</code>. If that is the case, you can either use something like <code>certutil.exe -generateSSTFromWU roots.sst</code> and then manually copy over the DST and Amazon certificates into your root store, or wait until the next time you have an update from Windows Update which should automatically refresh your certificate store. </li>
|
|
</ul>
|
|
<h2 id="os-x">OS X<a class="headerlink" href="#os-x" title="Permanent link">¶</a></h2>
|
|
<p>While OS X is generally the most trouble-free environment for Binary Ninja, very old versions may have problems with the RPATH for our binaries and libraries. There are two solutions. First, run Binary Ninja with: </p>
|
|
<div class="codehilite"><pre><span></span>DYLD_LIBRARY_PATH="/Applications/Binary Ninja.app/Contents/MacOS" /Applications/Binary\ Ninja.app/Contents/MacOS/binaryninja
|
|
</pre></div>
|
|
|
|
|
|
<p>Or second, modify the binary itself using the <a href="https://blogs.oracle.com/dipol/dynamic-libraries,-rpath,-and-mac-os">install_name_tool</a>.</p>
|
|
<h2 id="linux">Linux<a class="headerlink" href="#linux" title="Permanent link">¶</a></h2>
|
|
<p>Given the diversity of Linux distributions, some work-arounds are required to run Binary Ninja on platforms that are not <a href="https://binary.ninja/faq.html">officially supported</a>.</p>
|
|
<h3 id="headless-ubuntu">Headless Ubuntu<a class="headerlink" href="#headless-ubuntu" title="Permanent link">¶</a></h3>
|
|
<p>If you're having trouble getting Binary Ninja installed in a headless server install where you want to be able to X-Forward the GUI on a remote machine, the following should meet requiremetns (for at least 14.04 LTS):</p>
|
|
<div class="codehilite"><pre><span></span>apt-get install libgl1-mesa-glx libfontconfig1 libxrender1 libegl1-mesa libxi6 libnspr4 libsm6
|
|
</pre></div>
|
|
|
|
|
|
<h3 id="arch-linux">Arch Linux<a class="headerlink" href="#arch-linux" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>Install python2 from the <a href="https://wiki.archlinux.org/index.php/Official_repositories">official repositories</a> (<code>sudo pacman -S python2</code>) and create a sym link: <code>sudo ln -s /usr/lib/libpython2.7.so.1.0 /usr/lib/libpython2.7.so.1</code></li>
|
|
<li>Install the <a href="https://www.archlinux.org/packages/community/x86_64/libcurl-compat/">libcurl-compat</a> library with <code>sudo pacman -S libcurl-compat</code>, and run Binary Ninja via <code>LD_PRELOAD=libcurl.so.3 ~/binaryninja/binaryninja</code></li>
|
|
</ul>
|
|
<h3 id="kde">KDE<a class="headerlink" href="#kde" title="Permanent link">¶</a></h3>
|
|
<p>To run Binary Ninja in a KDE based environment, set the <code>QT_PLUGIN_PATH</code> to the <code>QT</code> sub-folder:</p>
|
|
<div class="codehilite"><pre><span></span>cd ~/binaryninja
|
|
QT_PLUGIN_PATH=./qt ./binaryninja
|
|
</pre></div>
|
|
|
|
|
|
<h3 id="debian">Debian<a class="headerlink" href="#debian" title="Permanent link">¶</a></h3>
|
|
<p>For Debian variants that (Kali, eg) don't match packages with Ubuntu LTS or the latest stable, the following might fix problems with libssl and libcrypto:</p>
|
|
<div class="codehilite"><pre><span></span>$ <span class="nb">cd</span> binaryninja
|
|
$ ln -s plugins/libssl.so libssl.so.1.0.0
|
|
$ ln -s plugins/libcrypto.so libcrypto.so.1.0.0
|
|
</pre></div>
|
|
|
|
|
|
<p>Alternatively, you might need to (as root):</p>
|
|
<div class="codehilite"><pre><span></span>apt-get install libssl-dev
|
|
ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
|
|
ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
|
|
</pre></div>
|
|
|
|
|
|
<h3 id="gentoo">Gentoo<a class="headerlink" href="#gentoo" title="Permanent link">¶</a></h3>
|
|
<p>One Gentoo user <a href="https://github.com/Vector35/binaryninja-api/issues/672">reported</a> a failed SSL certificate when trying to update. The solution was to copy over <code>/etc/ssl/certs/ca-certificates.crt</code> from another Linux distribution.</p>
|
|
<h3 id="nixos">NixOS<a class="headerlink" href="#nixos" title="Permanent link">¶</a></h3>
|
|
<p>Here's a customer-provided nix derivation file for the Binary Ninja demo. Adapt as necessary for other versions, or hop onto our slack (specifically the #unsupported-distros channel) to find out more:</p>
|
|
<div class="codehilite"><pre><span></span><span class="p">{</span> stdenv<span class="p">,</span> autoPatchelfHook<span class="p">,</span> makeWrapper<span class="p">,</span> fetchurl<span class="p">,</span> unzip<span class="p">,</span> libGL<span class="p">,</span> glib<span class="p">,</span> fontconfig<span class="p">,</span> xlibs<span class="p">,</span> dbus<span class="p">,</span> xkeyboard_config <span class="p">}:</span>
|
|
stdenv<span class="o">.</span>mkDerivation <span class="k">rec</span> <span class="p">{</span>
|
|
<span class="ss">name =</span> <span class="s2">"binary-ninja-demo"</span><span class="p">;</span>
|
|
<span class="ss">buildInputs =</span> <span class="p">[</span> autoPatchelfHook makeWrapper unzip libGL stdenv<span class="o">.</span>cc<span class="o">.</span>cc<span class="o">.</span>lib glib fontconfig xlibs<span class="o">.</span>libXi xlibs<span class="o">.</span>libXrender dbus <span class="p">];</span>
|
|
<span class="ss">src =</span> fetchurl <span class="p">{</span>
|
|
<span class="ss">url =</span> <span class="s2">"https://cdn.binary.ninja/installers/BinaryNinja-demo.zip"</span><span class="p">;</span>
|
|
<span class="ss">sha256 =</span> <span class="s2">"1yq2kgrhrwdi7f66jm1w5sc6r49hdhqnff9b0ysr5k65w9kxhl1k"</span><span class="p">;</span>
|
|
<span class="p">};</span>
|
|
|
|
<span class="ss">buildPhase =</span> <span class="s2">":"</span><span class="p">;</span>
|
|
<span class="ss">installPhase =</span> <span class="s1">''</span>
|
|
<span class="s1"> mkdir -p $out/bin</span>
|
|
<span class="s1"> mkdir -p $out/opt</span>
|
|
<span class="s1"> cp -r * $out/opt</span>
|
|
<span class="s1"> chmod +x $out/opt/binaryninja</span>
|
|
<span class="s1"> makeWrapper $out/opt/binaryninja \</span>
|
|
<span class="s1"> $out/bin/binaryninja \</span>
|
|
<span class="s1"> --prefix "QT_XKB_CONFIG_ROOT" ":" "</span><span class="si">${</span>xkeyboard_config<span class="si">}</span><span class="s1">/share/X11/xkb"</span>
|
|
<span class="s1"> ''</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
|
|
|
|
<h2 id="api">API<a class="headerlink" href="#api" title="Permanent link">¶</a></h2>
|
|
<ul>
|
|
<li>If the GUI launches but the license file is not valid when launched from the command-line, check that you're using the right version of Python. Only a 64-bit Python 2.7 is supported at this time. Additionally, the <a href="https://binary.ninja/purchase.html">personal</a> edition does not support headless operation.</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
|
|
|
<a href="../dev/documentation.html" class="btn btn-neutral float-right" title="Contributing Documentation">Next <span class="icon icon-circle-arrow-right"></span></a>
|
|
|
|
|
|
<a href="plugins.html" class="btn btn-neutral" title="Using and Writing Plugins"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
|
|
|
</div>
|
|
|
|
|
|
<hr/>
|
|
|
|
<div role="contentinfo">
|
|
<!-- Copyright etc -->
|
|
|
|
<p>(<a href="https://creativecommons.org/licenses/by/3.0/">cc</a>) Vector 35 Inc</p>
|
|
|
|
</div>
|
|
|
|
Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<div class="rst-versions" role="note" style="cursor: pointer">
|
|
<span class="rst-current-version" data-toggle="rst-current-version">
|
|
|
|
|
|
<span><a href="plugins.html" style="color: #fcfcfc;">« Previous</a></span>
|
|
|
|
|
|
<span style="margin-left: 15px"><a href="../dev/documentation.html" style="color: #fcfcfc">Next »</a></span>
|
|
|
|
</span>
|
|
</div>
|
|
<script>var base_url = '..';</script>
|
|
<script src="../js/theme.js" defer></script>
|
|
<script src="../search/main.js" defer></script>
|
|
|
|
</body>
|
|
</html>
|