summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/arch_arm64.cpp4
-rw-r--r--arch/armv7/arch_armv7.cpp4
-rw-r--r--arch/mips/arch_mips.cpp2
-rw-r--r--arch/powerpc/arch_ppc.cpp2
-rw-r--r--arch/x86/arch_x86.cpp4
-rw-r--r--binaryninjacore.h4
-rw-r--r--docs/about/license.md107
-rw-r--r--docs/dev/batch.md2
-rw-r--r--docs/dev/plugins.md4
-rw-r--r--docs/getting-started.md2
-rw-r--r--docs/guide/enterprise/index.md20
-rw-r--r--docs/guide/index.md4
-rw-r--r--docs/guide/projects.md2
-rw-r--r--docs/guide/troubleshooting.md6
-rw-r--r--docs/guide/types/typearchives.md2
-rw-r--r--examples/triage/triage.cpp2
-rw-r--r--platform/decree/platform_decree.cpp4
-rw-r--r--platform/efi/platform_efi.cpp4
-rw-r--r--platform/freebsd/platform_freebsd.cpp4
-rw-r--r--platform/linux/platform_linux.cpp4
-rw-r--r--platform/mac/platform_mac.cpp4
-rw-r--r--platform/windows-kernel/platform_windows_kernel.cpp4
-rw-r--r--platform/windows/platform_windows.cpp4
-rw-r--r--python/CMakeLists.txt2
-rw-r--r--python/__init__.py10
-rw-r--r--python/decorators.py2
-rw-r--r--python/enterprise.py6
-rw-r--r--ui/scriptingconsole.h2
-rw-r--r--ui/uitypes.h4
-rw-r--r--view/elf/elfview.cpp10
-rw-r--r--view/macho/machoview.cpp4
-rw-r--r--view/md1rom/md1rom.cpp2
-rw-r--r--view/pe/peview.cpp4
33 files changed, 140 insertions, 105 deletions
diff --git a/arch/arm64/arch_arm64.cpp b/arch/arm64/arch_arm64.cpp
index e46847fa..ee4c2ea9 100644
--- a/arch/arm64/arch_arm64.cpp
+++ b/arch/arm64/arch_arm64.cpp
@@ -3544,7 +3544,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("view_elf");
@@ -3553,7 +3553,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool Arm64PluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/arch/armv7/arch_armv7.cpp b/arch/armv7/arch_armv7.cpp
index 57ed3057..677abe39 100644
--- a/arch/armv7/arch_armv7.cpp
+++ b/arch/armv7/arch_armv7.cpp
@@ -3229,7 +3229,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("view_elf");
@@ -3238,7 +3238,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool ARMv7PluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/arch/mips/arch_mips.cpp b/arch/mips/arch_mips.cpp
index 286ae6de..938facde 100644
--- a/arch/mips/arch_mips.cpp
+++ b/arch/mips/arch_mips.cpp
@@ -3226,7 +3226,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("view_elf");
diff --git a/arch/powerpc/arch_ppc.cpp b/arch/powerpc/arch_ppc.cpp
index e44564c4..89cfa282 100644
--- a/arch/powerpc/arch_ppc.cpp
+++ b/arch/powerpc/arch_ppc.cpp
@@ -2456,7 +2456,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("view_elf");
diff --git a/arch/x86/arch_x86.cpp b/arch/x86/arch_x86.cpp
index a4bae9af..26e7cf27 100644
--- a/arch/x86/arch_x86.cpp
+++ b/arch/x86/arch_x86.cpp
@@ -4800,7 +4800,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("view_elf");
@@ -4809,7 +4809,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool X86PluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 05f77741..ce74885c 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -55,7 +55,7 @@
#define BINARYNINJAPLUGIN __attribute__((visibility("default")))
#else
#ifdef _MSC_VER
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
#ifdef BINARYNINJACORE_LIBRARY
#define BINARYNINJACOREAPI __declspec(dllexport)
#else
@@ -143,7 +143,7 @@
// The BN_DECLARE_CORE_ABI_VERSION must be included in native plugin modules. If
// the ABI version is not declared, the core will not load the plugin.
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
#define BN_DECLARE_CORE_ABI_VERSION
#else
#ifdef __cplusplus
diff --git a/docs/about/license.md b/docs/about/license.md
index edd38036..f01643a6 100644
--- a/docs/about/license.md
+++ b/docs/about/license.md
@@ -196,66 +196,51 @@ We will license a "free to use" version of Binary Ninja (TM), a software applica
14. Choice of Law & Jurisdiction. This License will be governed solely by the internal laws of the State of Florida, without reference to such State's principles of conflicts of law. The parties consent to the personal and exclusive jurisdiction of the federal and state courts in or for Brevard County, Florida.
-## Enterprise Server License
-
-BINARY NINJA™ ENTERPRISE SERVER LICENSE
+## Ultimate License
-Preamble and Definitions
-This License Agreement (the "License") is entered into between you ("you" or "your") and Vector 35 Inc, a Delaware corporation ("us", "we" or "our",) that owns Binary Ninja™ Enterprise Server, a software application (the "Server Software") that is subject to the terms and conditions of this License.
-
-You, your employees and authorized subcontractors which you permit to access the Server Software via Client Software ("Enterprise Users") are subject to the Enterprise Client License ("ECL"). Server Software is accompanied with a minimum of three floating ECLs, which number may be increased depending on your purchase (“Maximum Simultaneous Users”.)
+BINARY NINJA™ ULTIMATE LICENSE
-The terms “you” or “your” in this License mean you as the Server Software licensee. The terms "you" and "your" include you or the entity on behalf of which you are accepting the License, and you represent that you have the authority to bind that entity. Any reference to “we”, “us”, or “our” means Vector 35 Inc, a Delaware Corporation, the company that owns the Server Software.
-
-We will license the Server Software to you under the terms and conditions in this License. By installing the Server Software, you agree to be bound by the terms of this License. If you do not agree to the terms of this License, please do not install or attempt to use the Server Software.
+IMPORTANT! BE SURE TO CAREFULLY READ AND UNDERSTAND ALL OF THE TERMS SET FORTH IN THIS LICENSE AGREEMENT ("LICENSE"). BY CLICKING THE "I ACCEPT" BUTTON, YOU AGREE TO FOLLOW AND BE BOUND BY THE TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT AGREE TO ALL THE TERMS AND CONDITIONS IN THIS LICENSE, YOU MUST SELECT THE "I DECLINE" BUTTON AND MAY NOT USE THE SOFTWARE.
-1. Non-Exclusive License Grant.
-a. Under the terms of this License, the Server Software is licensed on a non-exclusive basis and is not sold. You receive no title to or ownership of the Server Software itself. This License grants you the right to install a copy of the Server Software and use it on particular server you own (the “Designated Server”), which Designated Server may be accessed by any Enterprise User(s), up to the Maximum Simultaneous Users.
-b. Enterprise User(s) shall install a local client and, after agreeing to the ECL, authenticate with an Enterprise User account created by your Server Software Administrator. You may install local clients on an unlimited number of computers, but in no event shall you or Enterprise Users simultaneously operate more instances of local clients than the Maximum Simultaneous Users.
-c. ECLs may be ‘checked out’ from the Server Software’s Maximum Simultaneous Users for local use for a duration selected by the Enterprise User (“Check-out Period”). For the duration of the Check-out Period, or until earlier checked-in by Enterprise User, the Enterprise Client software may be used locally without authenticating with the Server Software, however, the Maximum Simultaneous Users shall be decreased by one for each ECL checked out until the expiration of the Check-out Period.
-d. If you will use the Server Software on any servers other than the Designated Server that the application will be installed on, then you are required to obtain additional licenses for each such server upon which the Server Software will be installed. If your needs multiple disparate Enterprise Servers, please contact us for alternative licensing arrangements. All rights not expressly granted herein reserved by us.
+This License is entered into by and between you ("you" or "your") and Vector 35 Inc, a Delaware corporation ("us", "we" or "our").
-2. License Fee. Prices are subject to change without prior notice and the price of a License today does not guarantee a similar price in the future.
+We will license Binary Ninja™ Ultimate, a software application (the "Software"), to you under the mutual terms and conditions in this License. By using the Software, you agree to be bound by the terms of this License. If you do not agree to the terms of this License, please do not install or attempt to use the Software.
-3. Term and Termination.
+1. Non-Exclusive License Grant. Under the terms of this License, the Software is licensed on a non-exclusive basis and is not sold. You receive no title to or ownership of the Software itself. This License grants you the rights a single user license that allows a copy of the Software to be installed and used by you on other computers you own as a single designated person. In other words, you may install the Software on more than one computer owned by you as long as there is only one physical computer running the Software at any time and as long as it is only used by you. This License does not permit any concurrent use. If other users will use the Software on any of the computers that the application will be installed on, then you are required to obtain additional licenses for each user who plans to use the Software. If your needs require concurrent use, please contact us for alternative licensing arrangements. If other users will use the Software, then you are required to obtain additional licenses for each user who plans to use the Software. All rights not expressly granted herein reserved by us.
-a. License is valid for one year from date of purchase, unless renewed.
-b. Your license to the Server Software automatically terminates if you fail to comply with the terms of this License.
-c. Upon termination of this License, all licenses granted in Section 1 will terminate, and you will be unable to use the collaboration features of the Server Software.
-d. Floating EULs shall survive termination, and you may continue to use these licenses in perpetuity, provided that the Server Software is maintained as a license server. You will retain the ability to access databases and content created collaboratively on a read-only basis.
-e. The following provisions will survive termination of this License: (i) your obligation to pay for services rendered before termination; (ii) Sections 6 through 14; and (iii) any other provision of this License that must survive termination to fulfill its essential purpose.
+2. Termination. Your license to the Software automatically terminates if you fail to comply with the terms of this License. Upon termination of this License, all licenses granted in Section 1 will terminate and you are required to stop using the Software and delete all copies in your possession or control. The following provisions will survive termination of this License: (i) your obligation to pay for services rendered before termination; (ii) Sections 6 through 14; and (iii) any other provision of this License that must survive termination to fulfill its essential purpose.
-4. Modification and Upgrades. We may, from time to time, and in certain cases for a fee, replace, modify or upgrade the Server Software. The license fee includes free upgrades for the duration of the license term. When accepted by you, any such replacement or modified Server Software code or upgrade to the Server Software will be considered part of the Server Software and subject to the terms of this License (unless this License is superseded by a further License accompanying such replacement or modified version of or upgrade to the Server Software).
+3. Modification and Upgrades. We may, from time to time, and in certain cases for a fee, replace, modify, or upgrade the Software. The license fee includes one year of free upgrades. When accepted by you, any such replacement or modified Software code or upgrade to the Software will be considered part of the Software and subject to the terms of this License (unless this License is superseded by a further License accompanying such replacement or modified version of or upgrade to the Software).
-5. Restrictions. Subject to applicable copyright, trade secret and other laws, you are permitted under this License to reverse engineer or decompile the Server Software but you may not alter, duplicate, modify, rent, lease, loan, sublicense, create derivative works from or provide others with the Server Software in whole or part, or transmit or communicate any of the Server Software over a network in order to share it with others. These restrictions include prohibitions on use of the Server Software for service bureau or time-sharing purposes or in any other way allow third parties to exploit the Server Software. Time-sharing means sharing the Server Software with customers or other third parties and permitting their use of the Server Software as a service. Service bureau involves your use of the Server Software on behalf of third parties, instead of your own use. It is your responsibility to determine if your use of the Server Software is in compliance with applicable laws.
+4. Restrictions. Subject to applicable copyright, trade secret, and other laws, you are permitted under this License to reverse engineer or de-compile the Software but you may not alter, duplicate, modify, rent, lease, loan, sublicense, create derivative works from or provide others with the Software in whole or part, or transmit or communicate any of the Software over a network in order to share it with others. These restrictions include prohibitions on use of the Software for service bureau or time-sharing purposes or in any other way allow third parties to exploit the Software. Time-sharing means sharing the Software with customers or other third parties and permitting their use of the Software. Service bureau involves your use of the Software on behalf of third parties, instead of your own use. It is your responsibility to determine if your use of the Software is in compliance with applicable laws.
-6. Export Restrictions. You must use the Server Software in accordance with export laws and this means that you may not export, ship, transmit or re-export the Server Software, in whole or in part, in violation of any applicable law or regulation including but not limited to applicable export administration regulations issued by the U.S. Department of Commerce.
+5. Export Restrictions. You must use the Software in accordance with export laws and this means that you may not export, ship, transmit or re-export the Software, in whole or in part, in violation of any applicable law or regulation including but not limited to applicable export administration regulations issued by the U.S. Department of Commerce.
-7. Disclaimer of Warranties. The Server Software is provided "as is" which means that we are providing no warranty of any kind. WE MAKE NO WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. We do not warrant that the Server Software will perform without error or that it will run without interruption.
+6. Disclaimer of Warranties. The Software is provided "as is" which means that we are providing no warranty of any kind. WE MAKE NO WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. We do not warrant that the Software will perform without error or that it will run without interruption.
-8. Limitation of Liability. IN NO EVENT WILL OUR LIABILITY ARISING OUT OF OR RELATED TO THIS LICENSE EXCEED THE AGGREGATE OF FEES PAYABLE TO US UNDER THIS LICENSE (INCLUDING FEES BOTH PAID AND DUE) AT THE TIME OF THE EVENT GIVING RISE TO THE LIABILITY. IN NO EVENT WILL WE BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES. THE LIABILITIES LIMITED BY THIS SECTION 8 APPLY: (A) TO LIABILITY FOR NEGLIGENCE; (B) REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT PRODUCT LIABILITY, OR OTHERWISE; (C) EVEN IF WE ARE ADVISED IN ADVANCE OF THE POSSIBILITY OF THE DAMAGES IN QUESTION AND EVEN IF SUCH DAMAGES WERE FORESEEABLE; AND (D) EVEN IF YOUR REMEDIES FAIL OF THEIR ESSENTIAL PURPOSE. If applicable law limits the application of the provisions of this Section 8, our liability will be limited to the maximum extent permissible.
+7. Limitation of Liability. IN NO EVENT WILL OUR LIABILITY ARISING OUT OF OR RELATED TO THIS LICENSE EXCEED THE AGGREGATE OF FEES PAYABLE TO US UNDER THIS LICENSE (INCLUDING FEES BOTH PAID AND DUE) AT THE TIME OF THE EVENT GIVING RISE TO THE LIABILITY. IN NO EVENT WILL WE BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES. THE LIABILITIES LIMITED BY THIS SECTION 8 APPLY: (A) TO LIABILITY FOR NEGLIGENCE; (B) REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT PRODUCT LIABILITY, OR OTHERWISE; (C) EVEN IF WE ARE ADVISED IN ADVANCE OF THE POSSIBILITY OF THE DAMAGES IN QUESTION AND EVEN IF SUCH DAMAGES WERE FORESEEABLE; AND (D) EVEN IF YOUR REMEDIES FAIL OF THEIR ESSENTIAL PURPOSE. If applicable law limits the application of the provisions of this Section 8, our liability will be limited to the maximum extent permissible.
-9. Severability. To the extent permitted by law, we waive and you waive any provision of law that would render any clause of this License invalid or otherwise unenforceable in any respect. In the event that a provision of this License is held to be invalid or otherwise unenforceable, such provision will be interpreted to fulfill its intended purpose to the maximum extent permitted by applicable law, and the remaining provisions of this License will continue in full force and effect.
+8. Severability. To the extent permitted by law, we waive and you waive any provision of law that would render any clause of this License invalid or otherwise unenforceable in any respect. In the event that a provision of this License is held to be invalid or otherwise unenforceable, such provision will be interpreted to fulfill its intended purpose to the maximum extent permitted by applicable law, and the remaining provisions of this License will continue in full force and effect.
-10. Independent Contractors. We are not your agent and you are not our agent and so neither party may bind the other in any way. The parties are independent contractors and will represent themselves in all regards as independent contractors.
+9. Independent Contractors. We are not your agent and you are not our agent and so neither party may bind the other in any way. The parties are independent contractors and will represent themselves in all regards as independent contractors.
-11. No Waiver. Neither party will be deemed to have waived any of its rights under this License by lapse of time, course of dealing, nor by any statement or representation other than in an explicit written waiver. No waiver of a breach of this License will constitute a waiver of any prior or subsequent breach of this License.
+10. No Waiver. Neither party will be deemed to have waived any of its rights under this License by lapse of time or by any statement or representation other than in an explicit written waiver. No waiver of a breach of this License will constitute a waiver of any prior or subsequent breach of this License.
-12. Force Majeure. To the extent caused by force majeure, no delay, failure, or default will constitute a breach of this License.
+11. Force Majeure. To the extent caused by force majeure, no delay, failure, or default will constitute a breach of this License.
-13. Assignment & Successors. Neither party may assign this License or any of its rights or obligations hereunder without the other’s express written consent, except that either party may assign this License to the surviving party in a merger of that party into another entity. Except to the extent forbidden in the previous sentence, this License will be binding upon and inure to the benefit of the respective successors and assigns of the parties.
+12. Assignment & Successors. Neither party may assign this License or any of its rights or obligations hereunder without the other’s express written consent, except that either party may assign this License to the surviving party in a merger of that party into another entity. Except to the extent forbidden in the previous sentence, this License will be binding upon and inure to the benefit of the respective successors and assigns of the parties.
-14. Choice of Law & Jurisdiction. The laws of the State of Florida, excluding its conflict of law provisions, govern all matters (including, without limitation, the validity, interpretation, and construction) of the License, any dispute, claim, or proceeding arising out of or in connection with the License, or the subject matter or formation (including non-contractual disputes or claims) of such matters. If either party brings against the other any proceeding arising out of this License, such proceeding will be heard exclusively in the United States District Court for the Middle District of Florida, Orlando Division, or, only if there is no Federal subject matter jurisdiction, in any state court of Florida sitting in Brevard County, and each party consents and submits to the exclusive jurisdiction of those course for purposes of any such proceeding.
+13. Choice of Law & Jurisdiction. This License will be governed solely by the internal laws of the State of Florida, without reference to such State’s principles of conflicts of law. The parties consent to the personal and exclusive jurisdiction of the federal and state courts in or for Brevard County, Florida.
-## Enterprise Client License
+## Ultimate Floating License (Enterprise Client)
-BINARY NINJA™ ENTERPRISE CLIENT LICENSE
+BINARY NINJA™ ULTIMATE FLOATING LICENSE
IMPORTANT! BE SURE TO CAREFULLY READ AND UNDERSTAND ALL OF THE TERMS SET FORTH IN THIS LICENSE AGREEMENT ("LICENSE"). BY CLICKING THE "I ACCEPT" BUTTON, YOU AGREE TO FOLLOW AND BE BOUND BY THE TERMS AND CONDITIONS OF THIS LICENSE. IF YOU DO NOT AGREE TO ALL THE TERMS AND CONDITIONS IN THIS LICENSE, YOU MUST SELECT THE "I DECLINE" BUTTON AND MAY NOT USE THE SOFTWARE.
This License is entered into by and between you ("you" or "your") and Vector 35 Inc, a Delaware corporation ("us", "we" or "our").
-We will license the Binary Ninja™ Enterprise Client, a software application (the "Software"), to you under the mutual terms and conditions in this License. By using the Software, you agree to be bound by the terms of this License. If you do not agree to the terms of this License, please do not install or attempt to use the Software
+We will license Binary Ninja™ Ultimate, a software application (the "Software"), to you under the mutual terms and conditions in this License. By using the Software, you agree to be bound by the terms of this License. If you do not agree to the terms of this License, please do not install or attempt to use the Software.
1. Non-Exclusive License Grant. Under the terms of this License, the Software is licensed on a non-exclusive basis and is not sold. You receive no title to or ownership of the Software itself. This License grants you the rights to install and use the software by you on a particular single computer you own and run that software, provided that upon authentication with Binary Ninja™ Enterprise Server, no more than the number of Maximum Simultaneous Users described in the Enterprise Server license are currently operating at that time. This License does not permit any other concurrent use. You may check out this License from the Enterprise Server for purely local use, in which case the total remaining number of Maximum Simultaneous Users will be reduced by one for each license checked out. All rights not expressly granted herein are reserved by us.
@@ -283,4 +268,54 @@ We will license the Binary Ninja™ Enterprise Client, a software application (t
13. Choice of Law & Jurisdiction. This License will be governed solely by the internal laws of the State of Florida, without reference to such State’s principles of conflicts of law. The parties consent to the personal and exclusive jurisdiction of the federal and state courts in or for Brevard County, Florida.
+## Enterprise Server License
+
+BINARY NINJA™ ENTERPRISE SERVER LICENSE
+
+Preamble and Definitions
+This License Agreement (the "License") is entered into between you ("you" or "your") and Vector 35 Inc, a Delaware corporation ("us", "we" or "our",) that owns Binary Ninja™ Enterprise Server, a software application (the "Server Software") that is subject to the terms and conditions of this License.
+
+You, your employees and authorized subcontractors which you permit to access the Server Software via Client Software ("Enterprise Users") are subject to the Enterprise Client License ("ECL"). Server Software is accompanied with a minimum of three floating ECLs, which number may be increased depending on your purchase (“Maximum Simultaneous Users”.)
+
+The terms “you” or “your” in this License mean you as the Server Software licensee. The terms "you" and "your" include you or the entity on behalf of which you are accepting the License, and you represent that you have the authority to bind that entity. Any reference to “we”, “us”, or “our” means Vector 35 Inc, a Delaware Corporation, the company that owns the Server Software.
+
+We will license the Server Software to you under the terms and conditions in this License. By installing the Server Software, you agree to be bound by the terms of this License. If you do not agree to the terms of this License, please do not install or attempt to use the Server Software.
+
+1. Non-Exclusive License Grant.
+a. Under the terms of this License, the Server Software is licensed on a non-exclusive basis and is not sold. You receive no title to or ownership of the Server Software itself. This License grants you the right to install a copy of the Server Software and use it on particular server you own (the “Designated Server”), which Designated Server may be accessed by any Enterprise User(s), up to the Maximum Simultaneous Users.
+b. Enterprise User(s) shall install a local client and, after agreeing to the ECL, authenticate with an Enterprise User account created by your Server Software Administrator. You may install local clients on an unlimited number of computers, but in no event shall you or Enterprise Users simultaneously operate more instances of local clients than the Maximum Simultaneous Users.
+c. ECLs may be ‘checked out’ from the Server Software’s Maximum Simultaneous Users for local use for a duration selected by the Enterprise User (“Check-out Period”). For the duration of the Check-out Period, or until earlier checked-in by Enterprise User, the Enterprise Client software may be used locally without authenticating with the Server Software, however, the Maximum Simultaneous Users shall be decreased by one for each ECL checked out until the expiration of the Check-out Period.
+d. If you will use the Server Software on any servers other than the Designated Server that the application will be installed on, then you are required to obtain additional licenses for each such server upon which the Server Software will be installed. If your needs multiple disparate Enterprise Servers, please contact us for alternative licensing arrangements. All rights not expressly granted herein reserved by us.
+
+2. License Fee. Prices are subject to change without prior notice and the price of a License today does not guarantee a similar price in the future.
+
+3. Term and Termination.
+
+a. License is valid for one year from date of purchase, unless renewed.
+b. Your license to the Server Software automatically terminates if you fail to comply with the terms of this License.
+c. Upon termination of this License, all licenses granted in Section 1 will terminate, and you will be unable to use the collaboration features of the Server Software.
+d. Floating EULs shall survive termination, and you may continue to use these licenses in perpetuity, provided that the Server Software is maintained as a license server. You will retain the ability to access databases and content created collaboratively on a read-only basis.
+e. The following provisions will survive termination of this License: (i) your obligation to pay for services rendered before termination; (ii) Sections 6 through 14; and (iii) any other provision of this License that must survive termination to fulfill its essential purpose.
+
+4. Modification and Upgrades. We may, from time to time, and in certain cases for a fee, replace, modify or upgrade the Server Software. The license fee includes free upgrades for the duration of the license term. When accepted by you, any such replacement or modified Server Software code or upgrade to the Server Software will be considered part of the Server Software and subject to the terms of this License (unless this License is superseded by a further License accompanying such replacement or modified version of or upgrade to the Server Software).
+
+5. Restrictions. Subject to applicable copyright, trade secret and other laws, you are permitted under this License to reverse engineer or decompile the Server Software but you may not alter, duplicate, modify, rent, lease, loan, sublicense, create derivative works from or provide others with the Server Software in whole or part, or transmit or communicate any of the Server Software over a network in order to share it with others. These restrictions include prohibitions on use of the Server Software for service bureau or time-sharing purposes or in any other way allow third parties to exploit the Server Software. Time-sharing means sharing the Server Software with customers or other third parties and permitting their use of the Server Software as a service. Service bureau involves your use of the Server Software on behalf of third parties, instead of your own use. It is your responsibility to determine if your use of the Server Software is in compliance with applicable laws.
+
+6. Export Restrictions. You must use the Server Software in accordance with export laws and this means that you may not export, ship, transmit or re-export the Server Software, in whole or in part, in violation of any applicable law or regulation including but not limited to applicable export administration regulations issued by the U.S. Department of Commerce.
+
+7. Disclaimer of Warranties. The Server Software is provided "as is" which means that we are providing no warranty of any kind. WE MAKE NO WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. We do not warrant that the Server Software will perform without error or that it will run without interruption.
+
+8. Limitation of Liability. IN NO EVENT WILL OUR LIABILITY ARISING OUT OF OR RELATED TO THIS LICENSE EXCEED THE AGGREGATE OF FEES PAYABLE TO US UNDER THIS LICENSE (INCLUDING FEES BOTH PAID AND DUE) AT THE TIME OF THE EVENT GIVING RISE TO THE LIABILITY. IN NO EVENT WILL WE BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL, INCIDENTAL, OR PUNITIVE DAMAGES. THE LIABILITIES LIMITED BY THIS SECTION 8 APPLY: (A) TO LIABILITY FOR NEGLIGENCE; (B) REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT PRODUCT LIABILITY, OR OTHERWISE; (C) EVEN IF WE ARE ADVISED IN ADVANCE OF THE POSSIBILITY OF THE DAMAGES IN QUESTION AND EVEN IF SUCH DAMAGES WERE FORESEEABLE; AND (D) EVEN IF YOUR REMEDIES FAIL OF THEIR ESSENTIAL PURPOSE. If applicable law limits the application of the provisions of this Section 8, our liability will be limited to the maximum extent permissible.
+
+9. Severability. To the extent permitted by law, we waive and you waive any provision of law that would render any clause of this License invalid or otherwise unenforceable in any respect. In the event that a provision of this License is held to be invalid or otherwise unenforceable, such provision will be interpreted to fulfill its intended purpose to the maximum extent permitted by applicable law, and the remaining provisions of this License will continue in full force and effect.
+
+10. Independent Contractors. We are not your agent and you are not our agent and so neither party may bind the other in any way. The parties are independent contractors and will represent themselves in all regards as independent contractors.
+
+11. No Waiver. Neither party will be deemed to have waived any of its rights under this License by lapse of time, course of dealing, nor by any statement or representation other than in an explicit written waiver. No waiver of a breach of this License will constitute a waiver of any prior or subsequent breach of this License.
+
+12. Force Majeure. To the extent caused by force majeure, no delay, failure, or default will constitute a breach of this License.
+
+13. Assignment & Successors. Neither party may assign this License or any of its rights or obligations hereunder without the other’s express written consent, except that either party may assign this License to the surviving party in a merger of that party into another entity. Except to the extent forbidden in the previous sentence, this License will be binding upon and inure to the benefit of the respective successors and assigns of the parties.
+
+14. Choice of Law & Jurisdiction. The laws of the State of Florida, excluding its conflict of law provisions, govern all matters (including, without limitation, the validity, interpretation, and construction) of the License, any dispute, claim, or proceeding arising out of or in connection with the License, or the subject matter or formation (including non-contractual disputes or claims) of such matters. If either party brings against the other any proceeding arising out of this License, such proceeding will be heard exclusively in the United States District Court for the Middle District of Florida, Orlando Division, or, only if there is no Federal subject matter jurisdiction, in any state court of Florida sitting in Brevard County, and each party consents and submits to the exclusive jurisdiction of those course for purposes of any such proceeding.
diff --git a/docs/dev/batch.md b/docs/dev/batch.md
index 99b28f28..9b53a5ab 100644
--- a/docs/dev/batch.md
+++ b/docs/dev/batch.md
@@ -1,6 +1,6 @@
# Batch Processing and Other Automation Tips
-An often asked question of Binary Ninja is "How do I enable batch-processing mode?". The answer is that we don't have one--but the good news is because it doesn't need it! We have an even better solution. BN is simply a library that is trivial to include in your own scripts for batch analysis. As long as you have a Commercial license (or a [headless](https://binary.ninja/purchase/#container:~:text=This%20works%20especially%20well%20with%20our,that%20are%20designed%20for%20headless%2Donly%20installs.) license), it's possible to invoke the core analysis library with all of its APIs without even launching the UI.
+An often asked question of Binary Ninja is "How do I enable batch-processing mode?". The answer is that we don't have one--but the good news is because it doesn't need it! We have an even better solution. BN is simply a library that is trivial to include in your own scripts for batch analysis. As long as you have a Commercial or Ultimate license (or a [headless](https://binary.ninja/purchase/#container:~:text=This%20works%20especially%20well%20with%20our,that%20are%20designed%20for%20headless%2Donly%20installs.) license), it's possible to invoke the core analysis library with all of its APIs without even launching the UI.
This document describes some general tips and tricks for effective batch processing. In particular, because Binary Ninja is multi-threaded, some methods for faster processing like [multiprocessing](https://docs.python.org/3/library/multiprocessing.html) can have dangerous consequences.
diff --git a/docs/dev/plugins.md b/docs/dev/plugins.md
index 46eadb26..8e44da5a 100644
--- a/docs/dev/plugins.md
+++ b/docs/dev/plugins.md
@@ -33,7 +33,7 @@ The [`add_repository`](https://api.binary.ninja/binaryninja.pluginmanager-module
### Testing
-It's useful to be able to reload your plugin during testing. On the Commercial edition of Binary Ninja, this is easily accomplished with a stand-alone headless install using `import binaryninja` after [installing the API](https://github.com/Vector35/binaryninja-api/blob/dev/scripts/install_api.py). (install_api.py is included in each platforms respective [installation folder](../guide/index.md#binary-path))
+It's useful to be able to reload your plugin during testing. On the Commercial or Ultimate editions of Binary Ninja, this is easily accomplished with a stand-alone headless install using `import binaryninja` after [installing the API](https://github.com/Vector35/binaryninja-api/blob/dev/scripts/install_api.py). (install_api.py is included in each platforms respective [installation folder](../guide/index.md#binary-path))
Additionally, some plugin types like Architectures or BinaryViews are only loaded at launch and cannot be reloaded during a running session.
@@ -49,7 +49,7 @@ Then just `[UP] [ENTER]` to trigger the reload when the plugin has changed.
## Writing plugins using other IDEs (tab completion)
-Even though non-commercial licenses don't have headless automation, the [install API](https://github.com/Vector35/binaryninja-api/blob/dev/scripts/install_api.py) script (which is included in the installation directory) allows you to add the binaryninja module to your python environment. Once you do that, you should get automatic completion in any editor that supports it even on non-commercial! Of course, on commercial and enterprise installations, the script is even more useful, allowing for headless scripts with your existing python interpreter.
+Even though non-commercial licenses don't have headless automation, the [install API](https://github.com/Vector35/binaryninja-api/blob/dev/scripts/install_api.py) script (which is included in the installation directory) allows you to add the binaryninja module to your python environment. Once you do that, you should get automatic completion in any editor that supports it even on non-commercial! Of course, on Commercial and Ultimate installations, the script is even more useful, allowing for headless scripts with your existing python interpreter.
## Debugging using other IDEs
diff --git a/docs/getting-started.md b/docs/getting-started.md
index adb41b0e..a747729d 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -10,7 +10,7 @@ The download links you receive after purchasing expire after 72 hours but as lon
### Linux
-Because Linux install locations can vary widely, we do not assume that Binary Ninja has been installed in any particular folder on Linux. Instead, first unzip the installation zip wherever you wish to install Binary Ninja. Next, for paid versions, run `./binaryninja/scripts/linux-setup.sh`. This sets up file associations, icons, and adds Binary Ninja's Python library to your Python path. Adding the library to your path is most helpful for headless functionality in the commercial editions, but even on the Non-Commercial edition it can help your IDE find the api sources to make plugin development easier. Run the script with `-h` to see customization options.
+Because Linux install locations can vary widely, we do not assume that Binary Ninja has been installed in any particular folder on Linux. Instead, first unzip the installation zip wherever you wish to install Binary Ninja. Next, for paid versions, run `./binaryninja/scripts/linux-setup.sh`. This sets up file associations, icons, and adds Binary Ninja's Python library to your Python path. Adding the library to your path is most helpful for headless functionality in the Commercial and Ultimate editions, but even on the Non-Commercial edition it can help your IDE find the api sources to make plugin development easier. Run the script with `-h` to see customization options.
### macOS
diff --git a/docs/guide/enterprise/index.md b/docs/guide/enterprise/index.md
index a5ec1486..cb568434 100644
--- a/docs/guide/enterprise/index.md
+++ b/docs/guide/enterprise/index.md
@@ -1,20 +1,20 @@
# Binary Ninja Enterprise
!!! note
- This section only applies to the `Enterprise` edition of Binary Ninja.
+ This section only applies to the Ultimate edition of Binary Ninja.
-The Enterprise edition of Binary Ninja seamlessly integrates remote collaboration functionality within the client. This includes remote project management, push/pull of analysis database and type archive snapshots, real-time chat, and more.
+The Ultimate edition of Binary Ninja seamlessly integrates remote collaboration functionality, provided by the Binary Ninja Enterprise server, within the client. This includes remote project management, push/pull of analysis database and type archive snapshots, real-time chat, and more.
## Licensing
-Opening your Enterprise client for the first time, you will be greeted by the following dialog:
+Starting Ultimate for the first time, you will be greeted by the following dialog:
![License Dialog](../../img/enterprise/license-dialog.png){: style="max-width:500px; display: block; margin: auto;"}
-If you have a *named* license, your experience should be identical to that of a Commercial client (with extra features). Click the "Used Named License..." button and select the `license.dat` that was provided when you purchased your license. This will be placed in your [user folder](../index.md#user-folder).
+If you have a *named* license, your experience should be identical to that of a Commercial edition build, but with the additional features of Ultimate. Click the "Used Named License..." button and select the `license.dat` that was provided when you purchased your license. This will be placed in your [user folder](../index.md#user-folder).
-Otherwise, the Enterprise client will need to check out a *floating* license from your Enterprise server. Enter your server location into the box and click "Connect". (All connections should happen over HTTPS and the default port is 3535.)
+Otherwise, you will need to check out a *floating* license from your Enterprise server. Enter your server location into the box and click "Connect". (All connections should happen over HTTPS and the default port is 3535.)
## Authentication
@@ -29,15 +29,15 @@ This dialog will have up to 5 fields:
* **Username**: This text box contains your username if you are logging in with an Enterprise server account (hidden if using SSO).
* **Password**: This text box contains your password if you are logging in with an Enterprise server account (hidden if using SSO).
* **Remember Me**: This checkbox will remember the settings you choose and try to log you in the same way in the future.
-* **Checkout Duration**: This drop-down provides a selection of license durations. The default is "Until I Quit", which will refresh your license every 15 minutes until you quit the Enterprise client.
+* **Checkout Duration**: This drop-down provides a selection of license durations. The default is "Until I Quit", which will refresh your license every 15 minutes until you quit Binary Ninja.
## Configuration
-The Enterprise client has a number of settings that let you change its behavior. These settings can be found in the main Settings window (`Edit -> Preferences`) within Binary Ninja. See the [Settings](../settings.md) documentation for more details.
+Binary Ninja has a number of settings that let you change how it connects to and uses the Enterprise server. These settings can be found in the main Settings window (`Edit -> Preferences`) within Binary Ninja. See the [Settings](../settings.md) documentation for more details.
## User Interface
-The Enterprise edition of Binary Ninja adds a few extra items in the user interface. These include:
+The Ultimate edition of Binary Ninja adds a few extra items in the user interface. These include:
* An extra [status indicator](#status-indicator) in the status bar
* The [Remote Dialog](#remote-dialog)
@@ -65,7 +65,7 @@ The sync button has four indicators, some of which may be hidden:
* If you see a `*` next to the number, that indicates that you have unsaved local changes that are not yet part of a snapshot.
* If this indicator is missing, it means your user does not have permission to push snapshots to the Enterprise server for this file.
* `# ↓`: This indicates the number of remote snapshots that have not yet been pulled from the Enterprise server.
-* `↻`: This indicates that the client is in the process of checking with the Enterprise server to see if there are any new snapshots available.
+* `↻`: This indicates that Binary Ninja is in the process of checking with the Enterprise server to see if there are any new snapshots available.
!!! note
Clicking this button will cause a save to occur. It's not possible to sync without having all changes in a snapshot, which requires a save.
@@ -169,7 +169,7 @@ The left-hand side of the dialog will show the conflicts in a list. The right-ha
## API Examples
-Examples of using the `collaboration` and `enterprise` APIs (which are unique to the Enterprise edition of the client) can be found bundled with the client:
+Examples of using the `collaboration` and `enterprise` APIs (which are unique to the Ultimate edition) can be found bundled with your installation:
* **macOS**: `Binary\ Ninja.app/Contents/Resources/python/binaryninja/collaboration/examples`
* **Linux**: `binaryninja/python/binaryninja/collaboration/examples`
diff --git a/docs/guide/index.md b/docs/guide/index.md
index 541b5089..d8f44780 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -165,11 +165,11 @@ The Recent files list can be cleared via using the Command Palette (`[CTRL] + P`
Hotkeys (macOS: `[CMD] + 0` - `[CMD] + 9`, Windows/Linux: `[CTRL] + 0` - `[CTRL + 9]`) can also be used to quickly open a file. The hotkey for a given entry will be shown on the right.
-### Commercial/Enterprise Features
+### Commercial/Ultimate Features
![new tab](../img/newtab-projects.png "New Tab Projects Version"){ width="700" }
-On Commercial and Enterprise, the New Tab file list also contains a separate tab for Recent Projects. These tabs can be docked, rearranged, split, or unified, and their split is adjustable. Layout changes will be saved.
+On Commercial and Ultimate, the New Tab file list also contains a separate tab for Recent Projects. These tabs can be docked, rearranged, split, or unified, and their split is adjustable. Layout changes will be saved.
While Projects themselves are presented in their own tab, files opened in Projects will be located in the usual Recent Files list.
diff --git a/docs/guide/projects.md b/docs/guide/projects.md
index bcb31234..0579fc2a 100644
--- a/docs/guide/projects.md
+++ b/docs/guide/projects.md
@@ -3,7 +3,7 @@
Projects provide a way to keep and organize related binaries, databases, and resources in a managed format.
???+ Important "Supported Editions"
- Projects are only available in the Commercial and Enterprise editions of Binary Ninja
+ Projects are only available in the Commercial and Ultimate editions of Binary Ninja
## Creating a Project
diff --git a/docs/guide/troubleshooting.md b/docs/guide/troubleshooting.md
index cf605b8f..ca811023 100644
--- a/docs/guide/troubleshooting.md
+++ b/docs/guide/troubleshooting.md
@@ -36,7 +36,7 @@ In addition to the above-mentioned method of disabling user-plugins, you can als
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.
-Additionally, if you're having trouble running a plugin in headless mode (without a GUI calling directly into the core), make sure you're running the Commercial version of Binary Ninja as the Student/Non-Commercial edition does not support headless processing.
+Additionally, if you're having trouble running a plugin in headless mode (without a GUI calling directly into the core), make sure you're running the Commercial or Ultimate edition of Binary Ninja as the Non-Commercial edition does not support headless processing.
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 `plugins` [folder](./index.md#directories), or by switching to a different interpreter in the settings.
@@ -59,7 +59,7 @@ Binary Ninja will refuse to run as root on Linux and macOS platforms. You can wo
Binary Ninja currently uses SQLite for its analysis databases (`.bndb`), projects (`.bnpr`), and type archives (`.bnta`). This means it is only able to have a single instance of these open at any time.
-The message `Error while saving database snapshot: database is locked` means multiple copies are open at the same time. All instances will need to be closed and a new one opened to allow saving again (this includes syncing in Enterprise).
+The message `Error while saving database snapshot: database is locked` means multiple copies are open at the same time. All instances will need to be closed and a new one opened to allow saving again (this includes syncing to an Enterprise server).
### Large File Size
@@ -253,7 +253,7 @@ Other [analysis settings](settings.md#all-settings) can also help. Check the des
## Collaboration Issues
!!! note
- This section only applies to the `Enterprise` edition of Binary Ninja.
+ This section only applies to the Binary Ninja Ultimate edition when being used with the Enterprise server.
### Cannot Connect to Server
There are a number of reasons why you might not be able to connect to a server, including:
diff --git a/docs/guide/types/typearchives.md b/docs/guide/types/typearchives.md
index ce605c0d..d9357fd4 100644
--- a/docs/guide/types/typearchives.md
+++ b/docs/guide/types/typearchives.md
@@ -16,7 +16,7 @@ Using the context menu in the [Type List](basictypes.md#the-type-list) in Types
Attached Type Archives are remembered in saved analysis databases, and will be attached on reopen, provided the file still exists. If the Type Archive file is moved (or deleted), then the Type List will report the Type Archive as Disconnected (but still attached). You can reconnect the Type Archive by using **Connect Type Archive** and pointing Binary Ninja at the new location of the Type Archive file.
-Enterprise users can create Type Archives in Remote Projects in the same manner, and all changes made to Type Archives in Remote Projects will be automatically synced with the Collaboration Server. Updates made by you are sent immediately, whereas updates made by other users on your server are fetched periodically in the background every 30 seconds (configurable by the `collaboration.autoPollInterval` setting). Once changes have been fetched, you can pull them into your analysis in the same way as described below. You may also attach Type Archives created outside your Remote Project, but note they will not be synced to the Collaboration Server.
+Ultimate users working with an Enterprise server can create Type Archives in Remote Projects in the same manner, and all changes made to Type Archives in Remote Projects will be automatically synced with the Collaboration Server. Updates made by you are sent immediately, whereas updates made by other users on your server are fetched periodically in the background every 30 seconds (configurable by the `collaboration.autoPollInterval` setting). Once changes have been fetched, you can pull them into your analysis in the same way as described below. You may also attach Type Archives created outside your Remote Project, but note they will not be synced to the Collaboration Server.
## Managing Types
diff --git a/examples/triage/triage.cpp b/examples/triage/triage.cpp
index b268f069..2e75e5f6 100644
--- a/examples/triage/triage.cpp
+++ b/examples/triage/triage.cpp
@@ -8,7 +8,7 @@ extern "C"
{
BN_DECLARE_UI_ABI_VERSION
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool TriagePluginInit()
#else
BINARYNINJAPLUGIN bool UIPluginInit()
diff --git a/platform/decree/platform_decree.cpp b/platform/decree/platform_decree.cpp
index a0eb2b32..4d26566c 100644
--- a/platform/decree/platform_decree.cpp
+++ b/platform/decree/platform_decree.cpp
@@ -37,7 +37,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -45,7 +45,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool DecreePluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/efi/platform_efi.cpp b/platform/efi/platform_efi.cpp
index beee259f..eb743b96 100644
--- a/platform/efi/platform_efi.cpp
+++ b/platform/efi/platform_efi.cpp
@@ -245,7 +245,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -255,7 +255,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool EFIPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/freebsd/platform_freebsd.cpp b/platform/freebsd/platform_freebsd.cpp
index fd936a55..8aa28f7f 100644
--- a/platform/freebsd/platform_freebsd.cpp
+++ b/platform/freebsd/platform_freebsd.cpp
@@ -90,7 +90,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -100,7 +100,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool FreeBSDPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/linux/platform_linux.cpp b/platform/linux/platform_linux.cpp
index 683912d5..9a57c430 100644
--- a/platform/linux/platform_linux.cpp
+++ b/platform/linux/platform_linux.cpp
@@ -231,7 +231,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -245,7 +245,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool LinuxPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/mac/platform_mac.cpp b/platform/mac/platform_mac.cpp
index c922dd18..6c2adf7a 100644
--- a/platform/mac/platform_mac.cpp
+++ b/platform/mac/platform_mac.cpp
@@ -267,7 +267,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -277,7 +277,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool MacPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/windows-kernel/platform_windows_kernel.cpp b/platform/windows-kernel/platform_windows_kernel.cpp
index 637da1fd..da303f9f 100644
--- a/platform/windows-kernel/platform_windows_kernel.cpp
+++ b/platform/windows-kernel/platform_windows_kernel.cpp
@@ -134,7 +134,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -143,7 +143,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool WindowsKernelPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/platform/windows/platform_windows.cpp b/platform/windows/platform_windows.cpp
index eee88417..0c33bbee 100644
--- a/platform/windows/platform_windows.cpp
+++ b/platform/windows/platform_windows.cpp
@@ -595,7 +595,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifndef DEMO_VERSION
+#ifndef DEMO_EDITION
BINARYNINJAPLUGIN void CorePluginDependencies()
{
AddOptionalPluginDependency("arch_x86");
@@ -605,7 +605,7 @@ extern "C"
}
#endif
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool WindowsPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 96870fe2..63fb2d4e 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -10,7 +10,7 @@ file(GLOB PYTHON_SOURCES CONFIGURE_DEPENDS
list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/_binaryninjacore.py)
list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/enums.py)
-if(NOT ENTERPRISE)
+if(NOT ULTIMATE)
list(REMOVE_ITEM PYTHON_SOURCES ${PROJECT_SOURCE_DIR}/enterprise.py)
list(FILTER PYTHON_SOURCES EXCLUDE REGEX ".*/collaboration/.*$")
endif()
diff --git a/python/__init__.py b/python/__init__.py
index 93ddb72c..84494296 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -92,8 +92,8 @@ import warnings
# https://docs.python.org/3/library/warnings.html#default-warning-filter
warnings.filterwarnings('once', '', DeprecatedWarning)
-# Only load Enterprise Client support on Enterprise builds
-if core.BNGetProduct() == "Binary Ninja Enterprise Client":
+# Only load Enterprise Client support on Ultimate builds
+if core.BNGetProduct() == "Binary Ninja Enterprise Client" or core.BNGetProduct() == "Binary Ninja Ultimate":
from .enterprise import *
@@ -235,8 +235,8 @@ def _init_plugins():
global _enterprise_license_checkout
if not _plugin_init:
- if not core_ui_enabled() and core.BNGetProduct() == "Binary Ninja Enterprise Client":
- # Enterprise client needs to checkout a license reservation or else BNInitPlugins will fail
+ if not core_ui_enabled() and (core.BNGetProduct() == "Binary Ninja Enterprise Client" or core.BNGetProduct() == "Binary Ninja Ultimate"):
+ # Enterprise client needs to reserve a license or else BNInitPlugins will fail
_enterprise_license_checkout = enterprise.LicenseCheckout()
_enterprise_license_checkout.acquire()
@@ -484,7 +484,7 @@ def fuzzy_match_single(target, query) -> Optional[int]:
return result
-# Load Collaboration scripts from Enterprise (they are bundled in shipping builds)
+# Load Collaboration scripts from Ultimate (they are bundled in shipping builds)
try:
from . import collaboration
except ImportError:
diff --git a/python/decorators.py b/python/decorators.py
index 6ac77be0..f9bf47bf 100644
--- a/python/decorators.py
+++ b/python/decorators.py
@@ -14,7 +14,7 @@ def passive(cls):
def enterprise(cls):
enterprise_note = '''
- .. note: This object is only available in the Enterprise edition of Binary Ninja.
+ .. note: This object is only available in the Ultimate edition of Binary Ninja.
'''
if hasattr(cls, "__doc__") and cls.__doc__:
diff --git a/python/enterprise.py b/python/enterprise.py
index 65fd31be..03846a17 100644
--- a/python/enterprise.py
+++ b/python/enterprise.py
@@ -1,5 +1,5 @@
"""
-.. note: This module is only available in the Enterprise edition of Binary Ninja.
+.. note: This module is only available in the Ultimate edition of Binary Ninja.
"""
import ctypes
@@ -13,9 +13,9 @@ import binaryninja
from . import decorators
from . import deprecation
-if core.BNGetProduct() != "Binary Ninja Enterprise Client":
+if core.BNGetProduct() != "Binary Ninja Enterprise Client" and core.BNGetProduct() != "Binary Ninja Ultimate":
# None of these functions exist on other builds, so just raise here to notify anyone who tries to use this
- raise RuntimeError("Cannot use Binary Ninja Enterprise client functionality with a non-Enterprise client.")
+ raise RuntimeError("Binary Ninja Enterprise client functionality requires the Binary Ninja Ultimate edition.")
def is_initialized() -> bool:
diff --git a/ui/scriptingconsole.h b/ui/scriptingconsole.h
index 046601b7..23849e8f 100644
--- a/ui/scriptingconsole.h
+++ b/ui/scriptingconsole.h
@@ -237,7 +237,7 @@ public:
SidebarWidgetLocation defaultLocation() const override { return SidebarWidgetLocation::LeftBottom; }
SidebarContextSensitivity contextSensitivity() const override { return GlobalSidebarContext; }
bool alwaysShowTabs() const override { return true; }
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
virtual QString noWidgetMessage() const override;
#endif
};
diff --git a/ui/uitypes.h b/ui/uitypes.h
index 511e5aa9..3c8c2ed3 100644
--- a/ui/uitypes.h
+++ b/ui/uitypes.h
@@ -23,7 +23,7 @@
#endif
#else
#ifdef _MSC_VER
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
#ifdef BINARYNINJAUI_LIBRARY
#define BINARYNINJAUIAPI __declspec(dllexport)
#else
@@ -43,7 +43,7 @@
// The BN_DECLARE_UI_ABI_VERSION must be included in native UI plugin modules. If
// the ABI version is not declared, the UI will not load the plugin.
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
#define BN_DECLARE_UI_ABI_VERSION
#else
#define BN_DECLARE_UI_ABI_VERSION \
diff --git a/view/elf/elfview.cpp b/view/elf/elfview.cpp
index 801adf76..677f0b67 100644
--- a/view/elf/elfview.cpp
+++ b/view/elf/elfview.cpp
@@ -695,7 +695,7 @@ bool ElfView::Init()
m_logger->LogError("Support for ELF architecture 'x86' is not present");
break;
case 8:
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
m_logger->LogError("Support for ELF architecture 'mips' is not present");
#else
m_logger->LogError("Binary Ninja free does not support ELF architecture 'mips'. "
@@ -703,7 +703,7 @@ bool ElfView::Init()
#endif
break;
case 20:
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
m_logger->LogError("Support for ELF architecture 'ppc' is not present");
#else
m_logger->LogError("Binary Ninja free does not support ELF architecture 'ppc'. "
@@ -711,7 +711,7 @@ bool ElfView::Init()
#endif
break;
case 21:
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
m_logger->LogError("Support for ELF architecture 'ppc64' is not present");
#else
m_logger->LogError("Binary Ninja free does not support ELF architecture 'ppc64'. "
@@ -725,7 +725,7 @@ bool ElfView::Init()
m_logger->LogError("Support for ELF architecture 'x86_64' is not present");
break;
case 183:
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
m_logger->LogError("Support for ELF architecture 'arm64' is not present");
#else
m_logger->LogError("Binary Ninja free does not support ELF architecture 'arm64'. "
@@ -2888,7 +2888,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool ElfPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/view/macho/machoview.cpp b/view/macho/machoview.cpp
index 9d854f7b..4859d73d 100644
--- a/view/macho/machoview.cpp
+++ b/view/macho/machoview.cpp
@@ -1767,7 +1767,7 @@ bool MachoView::InitializeHeader(MachOHeader& header, bool isMainHeader, uint64_
string archName = UniversalViewType::ArchitectureToString(m_archId, 0, is64Bit);
if (!archName.empty())
{
- #ifdef DEMO_VERSION
+ #ifdef DEMO_EDITION
if ((archName == "arm64") /* MACHO_CPU_TYPE_ARM64 */
|| (archName == "arm64v8")
|| (archName == "arm64e")
@@ -3961,7 +3961,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool MachoPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/view/md1rom/md1rom.cpp b/view/md1rom/md1rom.cpp
index d7169eb3..3e8cb64c 100644
--- a/view/md1rom/md1rom.cpp
+++ b/view/md1rom/md1rom.cpp
@@ -444,7 +444,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool Md1RomPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()
diff --git a/view/pe/peview.cpp b/view/pe/peview.cpp
index 98cef6ed..3ae26ea5 100644
--- a/view/pe/peview.cpp
+++ b/view/pe/peview.cpp
@@ -629,7 +629,7 @@ bool PEView::Init()
m_logger->LogError("Support for PE architecture 'x86_64' is not present");
break;
case 0xaa64:
- #ifndef DEMO_VERSION
+ #ifndef DEMO_EDITION
m_logger->LogError("Support for PE architecture 'arm64' is not present");
#else
m_logger->LogError("Binary Ninja free does not support PE architecture 'arm64'. "
@@ -3141,7 +3141,7 @@ extern "C"
{
BN_DECLARE_CORE_ABI_VERSION
-#ifdef DEMO_VERSION
+#ifdef DEMO_EDITION
bool PEPluginInit()
#else
BINARYNINJAPLUGIN bool CorePluginInit()