From e5be1fc1b4f36a62226e00fa03a2726779026a3b Mon Sep 17 00:00:00 2001 From: Jordan Wiens Date: Tue, 4 Jul 2017 00:15:44 -0400 Subject: initial plugin using writing documentation --- docs/getting-started.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs/getting-started.md') diff --git a/docs/getting-started.md b/docs/getting-started.md index 27188dae..a7bbe20c 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -200,6 +200,8 @@ Plugins can be installed by one of two methods. First, they can be manually inst Alternatively, plugins can be installed with the new [pluginmanager](https://api.binary.ninja/binaryninja.pluginmanager-module.html) API. +For more detailed information, see the [plugin guide](/guide/plugins). + ## Preferences/Updates ![preferences >](/images/preferences.png "Preferences") -- cgit v1.3.1 From 8bb1e3f38e26a3ac26aa053b9ccb0c7a3b559cfc Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Sun, 13 Aug 2017 11:46:01 -0400 Subject: Update documentation with settings and pdb usage --- docs/getting-started.md | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'docs/getting-started.md') diff --git a/docs/getting-started.md b/docs/getting-started.md index a7bbe20c..46dee008 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -202,6 +202,15 @@ Alternatively, plugins can be installed with the new [pluginmanager](https://api For more detailed information, see the [plugin guide](/guide/plugins). +## PDB Plugin + +Binary Ninja supports loading PDB files through the built in PDB plugin. When selected from the plugin menu it attempts to find where the corresponding PDB file is located using the following search order: + +1. Look for in the same directory as the opened file/bndb (e.g. If you ahve `c:\foo.exe` or `c:\foo.bndb` open the pdb plugin looks for `c:\foo.pdb`) +2. Look in the local symbol store. This is the directory specified by the settings: `local-store-relative` or `local-store-absolute`. The format of this directory is `foo.pdb\\foo.pdb`. +3. Attempt to connect and download the PDB from the list of symbol servers specified in setting `symbol-server-list`. +4. Prompt the user for the pdb. + ## Preferences/Updates ![preferences >](/images/preferences.png "Preferences") @@ -210,8 +219,37 @@ Binary Ninja automatically updates itself by default. This functionality can be On windows, this is achieved through a separate launcher that loads first and replaces the installation before launching the new version. On OS X and Linux, the original installation is overwritten after the update occurs as these operating systems allow files to be replaced while running. The update on restart is thus immediate. -Most preferences are fairly intuitive. There is no advanced preference system at this time, but it is [expected](https://github.com/Vector35/binaryninja-api/issues/126) to be added soon. - +## Settings + +Settings are stored in the _user_ directory in the file `settings.json`. Each top level object in this file is represents a different plugin. As of build 860 the following settings are available: + +|Plugin | Setting | Type | Default | Description | +|------:|-------------------------:|-------------:|-----------------------------------------------:|:----------------------------------------------------------------------------------------------| +| ui | activeContent | boolean | True | Allow Binary Ninja to connect to the web to check for updates | +| ui | colorblind | boolean | True | Choose colors that are visible to those with red/green colorblind | +| ui | debug | boolean | False | Enable developer debugging features (Additional views: Lifted IL, and SSA forms) | +| pdb | local-store-absolute | string | "" | Absolute path specifying where the pdb symbol store exists on this machine, overrides relative path | +| pdb | local-store-relative | string | "symbols" | Path *relative* to the binaryninja _user_ directory, sepcifying the pdb symbol store | +| pdb | auto-download-pdb | boolean | True | Automatically download pdb files from specified symbol servers | +| pdb | symbol-server-list | list(string) | ["http://msdl.microsoft.com/download/symbols"] | List of servers to query for pdb symbols. | + +Below is an example `settings.json` setting various options: +``` +{ + "ui" : + { + "activeContent" : false, + "colorblind" : false, + "debug" : true + } + "pdb" : + { + "local-store-absolute" : "C:\Symbols", + "local-store-relative" : "", + "symbol-server-list" : ["http://mysymbolserver.company.lan"] + } +} +``` ## Getting Support Vector 35 offers a number of ways to get Binary Ninja [support]. -- cgit v1.3.1 From 207640bcbc5d0ee8639c2b6de0bef9e3c4eadeeb Mon Sep 17 00:00:00 2001 From: Jordan Wiens Date: Mon, 21 Aug 2017 21:54:23 -0500 Subject: updated docs --- docs/getting-started.md | 39 ++++++++++++++++++++++++++++++++------- docs/guide/type.md | 2 ++ 2 files changed, 34 insertions(+), 7 deletions(-) (limited to 'docs/getting-started.md') diff --git a/docs/getting-started.md b/docs/getting-started.md index 46dee008..d91eb046 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -2,18 +2,45 @@ Welcome to Binary Ninja. This introduction document is meant to quickly guide you over some of the most common uses of Binary Ninja. -![license popup >](/images/license-popup.png "License Popup") +## Directories -## License +Binary Ninja uses two main locations. The first is the install path of the binary itself and the second is the user folders for user-installed content. -When you first run Binary Ninja, it will prompt you for your license key. You should have received your license key via email after your purchase. If not, please contact [support]. +### Binary Path + +Binaries are installed in the following locations by default: + +- OS X: `/Applications/Binary Ninja.app` +- Windows: `C:\Program Files\Vector35\BinaryNinja` +- Linux: Wherever you extract it! (No standard location) -Once the license key is installed, you can change it, back it up, or otherwise inspect it simply by looking in: +!!! Warning "Warning" + Do not put any user content in the install-path of Binary Ninja. The auto-update process of Binary Ninja may replace any files included in these folders. + +### User Folder + +The base locations of user folders are: - OS X: `~/Library/Application Support/Binary Ninja` - Linux: `~/.binaryninja` - Windows: `%APPDATA%\Binary Ninja` +Contents of the user folder includes: + +- `settings.json`: Advanced settings (see [settings](#settings)) +- `lastrun`: A text file containing the directory of the last BinaryNinja binary path -- very useful for plugins to resolve the install locations in non-default settings or on linux. +- `plugins/`: Folder containing all manually installed user plugins +- `repositories/`: Folder containing files and plugins managed by the [Plugin Manager API](https://api.binary.ninja/binaryninja.pluginmanager-module.html) + +![license popup >](/images/license-popup.png "License Popup") + +## License + +When you first run Binary Ninja, it will prompt you for your license key. You should have received your license key via email after your purchase. If not, please contact [support]. + +Once the license key is installed, you can change it, back it up, or otherwise inspect it simply by looking inside the base of the user folder for `license.dat`. + + ## Linux Setup Because linux install locations can vary widely, we do not assume a Binary Ninja has been installed in any particular folder on linux. Rather, you can simply run `binaryninja/scripts/linux-setup.sh` after extracting the zip and various file associations, icons, and other settings will be set up. Run it with `-h` to see the customization options. @@ -252,6 +279,4 @@ Below is an example `settings.json` setting various options: ``` ## Getting Support -Vector 35 offers a number of ways to get Binary Ninja [support]. - -[support]: https://binary.ninja/support/ +Vector 35 offers a number of ways to get Binary Ninja [support](https://binary.ninja/support/). diff --git a/docs/guide/type.md b/docs/guide/type.md index e69de29b..65121864 100644 --- a/docs/guide/type.md +++ b/docs/guide/type.md @@ -0,0 +1,2 @@ +# Types and Structures + -- cgit v1.3.1