diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index ed305c92f..cffdae4a0 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -139,6 +139,7 @@ jobs: --entrypoint bash \ redballoonsecurity/ofrak/ghidra:latest \ -c "python -m ofrak_ghidra.server start \ + && ofrak license --community --i-agree \ && make test" ofrak-angr: @@ -183,7 +184,9 @@ jobs: --entrypoint bash \ --volume "$(pwd)":/ofrak \ redballoonsecurity/ofrak/angr:latest \ - -c "make -C /ofrak_angr test && make -C /ofrak_capstone test" + -c "ofrak license --community --i-agree \ + && make -C /ofrak_angr test \ + && make -C /ofrak_capstone test" ofrak-tutorial: name: Test OFRAK examples and tutorial notebooks @@ -227,5 +230,6 @@ jobs: --entrypoint bash \ redballoonsecurity/ofrak/tutorial:latest \ -c "python -m ofrak_ghidra.server start \ + && ofrak license --community --i-agree \ && make -C /examples test \ && make -C /ofrak_tutorial test" diff --git a/.gitignore b/.gitignore index 8e7dfdfcd..5a50bdbc6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ frontend/public/build ofrak_core/ofrak/core/entropy/entropy_c.cpython* ofrak_core/ofrak/gui/public ofrak_core/build +ofrak_core/ofrak/license/license.json diff --git a/LICENSE b/LICENSE index 155304e57..3819119a6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/disassemblers/ofrak_angr/CHANGELOG.md b/disassemblers/ofrak_angr/CHANGELOG.md index 72408096d..061a5550b 100644 --- a/disassemblers/ofrak_angr/CHANGELOG.md +++ b/disassemblers/ofrak_angr/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Changed - Update to latest angr==9.2.77, which also necessitates Python >= 3.8. - Refactored AngrDecompilationAnalysis/Analyzer to use generic components in ofrak core. ([#453](https://github.com/redballoonsecurity/ofrak/pull/453)) +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) ### Fixed - Add `importlib-resources` dependency as workaround for z3-solver dependency issue. ([#401](https://github.com/redballoonsecurity/ofrak/pull/401)) diff --git a/disassemblers/ofrak_angr/LICENSE b/disassemblers/ofrak_angr/LICENSE index 155304e57..3819119a6 100644 --- a/disassemblers/ofrak_angr/LICENSE +++ b/disassemblers/ofrak_angr/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/disassemblers/ofrak_binary_ninja/LICENSE b/disassemblers/ofrak_binary_ninja/LICENSE index 155304e57..3819119a6 100644 --- a/disassemblers/ofrak_binary_ninja/LICENSE +++ b/disassemblers/ofrak_binary_ninja/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/disassemblers/ofrak_capstone/CHANGELOG.md b/disassemblers/ofrak_capstone/CHANGELOG.md index bc0b6a026..48120b89c 100644 --- a/disassemblers/ofrak_capstone/CHANGELOG.md +++ b/disassemblers/ofrak_capstone/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Changed - Update to captione==5.0.0.post1. +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) ## 1.0.0 - 2022-01-25 ### Added diff --git a/disassemblers/ofrak_capstone/LICENSE b/disassemblers/ofrak_capstone/LICENSE index 155304e57..3819119a6 100644 --- a/disassemblers/ofrak_capstone/LICENSE +++ b/disassemblers/ofrak_capstone/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/disassemblers/ofrak_ghidra/CHANGELOG.md b/disassemblers/ofrak_ghidra/CHANGELOG.md index 395f8851d..1a5c8eef6 100644 --- a/disassemblers/ofrak_ghidra/CHANGELOG.md +++ b/disassemblers/ofrak_ghidra/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to `ofrak-ghidra` will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master) + +### Changed +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) + ### Fixed - Speedup: do not run Ghidra auto-analysis upon importing a program. ([#473](https://github.com/redballoonsecurity/ofrak/pull/473)) - Ensure large 64-bit addresses are interpreted as unsigned. ([#474](https://github.com/redballoonsecurity/ofrak/pull/474)) diff --git a/disassemblers/ofrak_ghidra/LICENSE b/disassemblers/ofrak_ghidra/LICENSE index 155304e57..3819119a6 100644 --- a/disassemblers/ofrak_ghidra/LICENSE +++ b/disassemblers/ofrak_ghidra/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/docs/license.md b/docs/license.md new file mode 100644 index 000000000..f048cb5c1 --- /dev/null +++ b/docs/license.md @@ -0,0 +1,428 @@ +# License + +Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see . + +## OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT . YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + + 1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can + be found at ; (b) the following + Python packages, which are also available via PyPI, the Python Package Index: + ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, + ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); + and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and + add-ons provided by Red Balloon with respect thereto that Red Balloon makes + available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made + available in three formats: (i) source code repository, (ii) PyPI Packages and + (iii) Docker images with dependencies preinstalled. + + 1.2 "Academic Purposes" means use within a non-profit academic institution + by its then-current faculty and students for the purposes of non-profit + scholarly research, classroom and education, and not any other use (including + without limitation, directly or indirectly in connection with any commercial + activity such as, for example, sponsored research or consulting services). + Shared Use of OFRAK for an Academic Purpose is permitted only when (a) used for + educational purposes, (b) access is restricted and not provided to the general + public, (c) access is limited to employees and/or students of the same + institution involved in a specific educational activity, and (d) all users + accept and are subject to this Agreement. + + 1.3 "Non-Commercial Use" means personal research, evaluation, or + development use by an individual, and not use by or on behalf of any commercial + entity or organization or directly or indirectly in connection with any + commercial activity. For clarity, you cannot make money off of redistributing + OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or + other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. + + 1.4 "Commercial Use" means any use other than Academic Purposes or + Non-Commercial Use, including, without limitation, use for any commercial + purpose or by any commercial entity, including without limitation + redistributing the OFRAK code (including Derivatives), OFRAK analysis, + OFRAK-modified binaries, or other OFRAK outputs for any monetary or other + commercial consideration. + + 1.5 "Derivatives" means any modifications, additions, enhancements, or + derivative works of OFRAK or any component thereof. For purposes of this + Agreement, Derivatives shall not include works that remain separable from, or + merely link to, the interfaces of OFRAK or any Derivatives. + + 1.6 "Shared Use" means any use of OFRAK where the person who set up a + particular instance of OFRAK is not the same person interacting with that + instance of OFRAK, or where a single instance of OFRAK is used by more than one + person (whether on the same or different occasions). This includes, but is not + limited to, the use of OFRAK on a server that is accessible by more than one + person, or by any person other than the person who set up the use of OFRAK on + the said server. + +2. License. Subject to the terms and conditions of this Agreement, Red +Balloon grants to you a nonexclusive, nonsublicensable, nontransferable, +no-charge, royalty-free, limited license to install, use, copy, modify, create +derivative works of OFRAK only for (a) Academic Purposes and (b) Non-Commercial +Use and to share Derivatives (i) publicly within the community (via publicly +available forks on GitHub.com), (ii) for Shared Use for an Academic Purpose, +and (iii) with Red Balloon, for the purposes stated in this Agreement. For +clarity, the foregoing license does not grant to you any right or license to +commercialize, distribute or use OFRAK, Derivatives, OFRAK code, OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for any other purpose +whatsoever, including Commercial Use, other than Academic Purposes or +Non-Commercial Use. In the event that you wish to use OFRAK for any other +purpose, including Commercial Use, you need to contact Red Balloon and enter +into a separate OFRAK Pro License, OFRAK Enterprise License or other custom +agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that you prepare or create any Derivatives, +you shall and hereby grant to (a) all users of OFRAK a right and license to +such Derivatives upon the terms and conditions set forth in this Agreement and +(b) Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. You acknowledge that Red Balloon may, but is not obligated to, +include your Derivatives in, and otherwise incorporate your Derivatives into, +the core OFRAK codebase. In the event that you create Derivatives, you must +(i) retain all copyright and other proprietary rights licenses included in the +original OFRAK code, and any other Derivatives, and (ii) make it clear that you +modified the original version of OFRAK. Red Balloon encourages you to make +your Derivatives available to the community by forking the OFRAK source code +repository on GitHub and publishing your Derivatives on your forked repository, +but you are not required to do so. You represent and warrant that you have +sufficient rights to any Derivatives and are legally entitled to grant the +above rights and licenses. If you are an individual and your +employer(s)/institution(s) have rights to intellectual property that you create +that includes your Derivatives, you represent that you have received permission +to make and contribute Derivatives on behalf of that employer/institution. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives, you may, from time to time and +in your sole discretion, make suggestions for changes, modifications or +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, +perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free +right and license to use, distribute and otherwise exploit all Feedback for any +purpose. + +6. No Cost License. OFRAK and any Derivatives provided pursuant to this +Agreement shall be provided during the Term at no charge to you. 7. +Services. No training or support services are provided under this Agreement. +Red Balloon may in its discretion respond to support inquiries through Red +Balloon’s support channels, such as Slack. + +8. Term and Termination. This Agreement shall commence upon the initial +download of OFRAK and shall continue until and unless terminated as set forth +herein (the "Term"). This Agreement may be terminated by Red Balloon +immediately upon notice to you in the event that you breach any term or +condition of this Agreement. Upon any termination, you shall immediately cease +all use of OFRAK. This sentence and the following provisions will survive +termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and +all other remedies will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE +THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED +BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. + +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS +AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE YOU OR OTHERS MAY MAKE OF OFRAK, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. You agree that (a) Red Balloon and any contributors +shall have no liability whatsoever for your use of OFRAK or any Derivatives and +(b) you shall indemnify, and hold harmless, and (upon request) defend Red +Balloon and any other user or contributor from and against any and all claims, +damages, liabilities, losses, and costs (including reasonable attorneys’ fees) +suffered or incurred by such party which arise from or relate to your (i) use +of OFRAK or Derivatives, or (ii) breach of this Agreement. + +12. Miscellaneous. Neither this Agreement nor the licenses granted +hereunder are assignable or transferable by you; any attempt to do so shall be +void. Red Balloon may assign this Agreement in whole or in part. Any notice, +report, approval or consent required or permitted hereunder shall be in +writing. The provisions hereof are for the benefit of the parties only and not +for any other person or entity. If any provision of this Agreement shall be +adjudged by any court of competent jurisdiction to be unenforceable or invalid, +that provision shall be limited or eliminated to the minimum extent necessary +so that this Agreement shall otherwise remain in full force and effect and +enforceable. This Agreement shall be deemed to have been made in, and shall be +construed pursuant to the laws of the State of New York, without regard to +conflicts of laws provisions thereof, and without regard to the United Nations +Convention on the International Sale of Goods or the Uniform Computer +Information Transactions Act. Any waivers or amendments shall be effective only +if made in writing. This Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this Agreement. + + +## OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + + 1.1. "OFRAK" consists of (a) the source code repository for OFRAK, which can + be found at ; (b) the following + Python packages, which are also available via PyPI, the Python Package Index: + ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, + ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); + and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and + add-ons provided by Red Balloon with respect thereto that Red Balloon makes + available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made + available in three formats: (i) source code repository, (ii) PyPI Packages and + (iii) Docker images with dependencies preinstalled. + + 1.2. "Academic Purposes" means use within a non-profit academic institution + by its then-current faculty and students for the purposes of non-profit + scholarly research, classroom and education, and not any other use (including + without limitation, directly or indirectly in connection with any commercial + activity such as, for example, sponsored research or consulting services). + + 1.3 "Authorized User(s)" means any user(s) named in the license file. + + 1.4 "Commercial Use" means any use other than Academic Purposes or Limited + Commercial Use, and any use other than by an Authorized User, including without + limitation redistributing the OFRAK code (including Derivatives), OFRAK + analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a + consulting engagement of Licensee or volume redistribution of any + OFRAK-modified binaries. + + 1.5 "Derivatives" means any modifications, additions, enhancements, or + derivative works of OFRAK or any component thereof. For purposes of this OFRAK + Pro Agreement, Derivatives shall not include works that remain separable from, + or merely link to, the interfaces of OFRAK or any Derivatives. + + 1.6 "Limited Commercial Use" means internal business use by any Authorized + User of OFRAK during the term specified in the license file (the "Term"), which + includes use of OFRAK in exchange for monetary and other consideration (such as + security research purposes) and redistribution of (i) OFRAK analysis, (ii) + other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such + end user’s internal use, in each case in connection with consulting engagements + entered into between Licensee and such end user. For clarity, neither Licensee + nor the end user shall have the right to further redistribute OFRAK-modified + binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +, this OFRAK Pro Agreement shall control. diff --git a/mkdocs.yml b/mkdocs.yml index fb8fad401..9fdf8f829 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -92,3 +92,4 @@ nav: - ResourceView: "contributor-guide/core/resource_view.md" # Built by gen-files and literate-nav - Code Reference: reference/ + - License: "license.md" diff --git a/ofrak_core/CHANGELOG.md b/ofrak_core/CHANGELOG.md index 203bdfdb1..3c478f320 100644 --- a/ofrak_core/CHANGELOG.md +++ b/ofrak_core/CHANGELOG.md @@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master) ### Added +- Add license check command to prompt users about community or pro licenses. ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) - Support `application/vnd.android.package-archive` mime type for APKs, which is returned by newer versions of libmagic ([#470](https://github.com/redballoonsecurity/ofrak/pull/470)) - Add links to other resources and locations in comments with an autocomplete feature in the comment view. ([#447](https://github.com/redballoonsecurity/ofrak/pull/447)) - Add modifier to add and remove sections using lief. ([#443](https://github.com/redballoonsecurity/ofrak/pull/443)) @@ -35,6 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - `Resource.flush_to_disk` method renamed to `Resource.flush_data_to_disk`. ([#373](https://github.com/redballoonsecurity/ofrak/pull/373)) - `build_image.py` supports building Docker images with OFRAK packages from any ancestor directory. ([#425](https://github.com/redballoonsecurity/ofrak/pull/425)) - Partially reverted [#150](https://github.com/redballoonsecurity/ofrak/pull/150) so entropy C code is called with `ctypes` again, but maintaining the current API and automatic compilation by `setup.py`. ([#482](https://github.com/redballoonsecurity/ofrak/pull/482)) +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) ## [3.2.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-v3.1.0...ofrak-v3.2.0) ### Added diff --git a/ofrak_core/LICENSE b/ofrak_core/LICENSE index 155304e57..3819119a6 100644 --- a/ofrak_core/LICENSE +++ b/ofrak_core/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/ofrak_core/Makefile b/ofrak_core/Makefile index c1aee9ec4..c82f6be7e 100644 --- a/ofrak_core/Makefile +++ b/ofrak_core/Makefile @@ -16,6 +16,8 @@ inspect: .PHONY: test test: inspect $(PYTHON) -m pytest -n auto test_ofrak --cov=ofrak --cov-report=term-missing + (sleep 2; echo 1; sleep 2; echo i agree) \ + | python3 -m coverage run --append --source ofrak -m ofrak license --force fun-coverage --cov-fail-under=100 ofrak/gui/public: diff --git a/ofrak_core/ofrak/__main__.py b/ofrak_core/ofrak/__main__.py index 61158a642..ffb0423d7 100644 --- a/ofrak_core/ofrak/__main__.py +++ b/ofrak_core/ofrak/__main__.py @@ -3,6 +3,7 @@ from ofrak.cli.command.deps import DepsCommand from ofrak.cli.command.gui import GUICommand from ofrak.cli.command.identify import IdentifyCommand +from ofrak.cli.command.license import LicenseCommand from ofrak.cli.command.list import ListCommand from ofrak.cli.command.unpack import UnpackCommand from ofrak.cli.ofrak_cli import OFRAKCommandLineInterface @@ -10,7 +11,14 @@ def main(): # pragma: no cover ofrak_cli = OFRAKCommandLineInterface( - (ListCommand(), DepsCommand(), IdentifyCommand(), UnpackCommand(), GUICommand()) + ( + ListCommand(), + DepsCommand(), + IdentifyCommand(), + UnpackCommand(), + GUICommand(), + LicenseCommand(), + ) ) ofrak_cli.parse_and_run(sys.argv[1:]) diff --git a/ofrak_core/ofrak/cli/command/license.py b/ofrak_core/ofrak/cli/command/license.py new file mode 100644 index 000000000..30405b744 --- /dev/null +++ b/ofrak_core/ofrak/cli/command/license.py @@ -0,0 +1,65 @@ +import os +import sys +from argparse import ArgumentDefaultsHelpFormatter, Namespace + +from ofrak.cli.ofrak_cli import OFRAKEnvironment, OfrakCommand +from ofrak.license import ( + verify_registered_license, + LICENSE_PATH, + select_license_to_register, + verify_license_is_valid_and_current, + accept_license_agreement, + register_license, +) + + +class LicenseCommand(OfrakCommand): + def create_parser(self, ofrak_subparsers): + argument_parser = ofrak_subparsers.add_parser( + "license", + help="Configure the OFRAK license", + description="Configure the OFRAK license", + formatter_class=ArgumentDefaultsHelpFormatter, + ) + argument_parser.add_argument( + "-c", + "--community", + action="store_true", + default=False, + help="Use the community license", + ) + argument_parser.add_argument( + "--i-agree", action="store_true", default=False, help="Agree to the license terms" + ) + argument_parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + help="Replace the current license with a new configuration", + ) + argument_parser.add_argument("-l", "--license", help="Path to a license file to use") + return argument_parser + + def run(self, ofrak_env: OFRAKEnvironment, args: Namespace): + try: + if args.force or not os.path.exists(LICENSE_PATH): + license_data, license_path = select_license_to_register( + force_community=args.community, + license_path=args.license, + ) + if license_data is None: + return + try: + verify_license_is_valid_and_current(license_data) + accept_license_agreement(args.i_agree, license_data) + register_license(license_data) + return + except RuntimeError as msg: + file_details = f" License file: {license_path}." if license_path else "" + sys.exit(RuntimeError(str(msg) + file_details)) + verify_registered_license(full_details=True) + except KeyboardInterrupt: + print() + sys.exit(-1) + return diff --git a/ofrak_core/ofrak/license/__init__.py b/ofrak_core/ofrak/license/__init__.py new file mode 100644 index 000000000..69d6710e1 --- /dev/null +++ b/ofrak_core/ofrak/license/__init__.py @@ -0,0 +1,277 @@ +import json +import os +import sys +import time +import webbrowser +from base64 import b64decode +from textwrap import wrap +from typing import Dict, Optional, Tuple, cast, List + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey + +LicenseDataType = Dict[str, Optional[str]] +LicenseListType = List[LicenseDataType] +COMMUNITY_LICENSE = [ + { + "license_type": "Community License", + "name": "OFRAK Community", + "email": "ofrak@redballoonsecurity.com", + "phone_number": None, + "date": "1720554759", + "date_pretty": "2024-07-09 15:52:39.720467", + "expiration_date": None, + "expiration_date_pretty": None, + "serial": "00000000000000000000000000000000", + "signature": "ihKX823u51cqhvyQmXZ1TGELBiHzYzSIcbpxvZVDaYvpJU9EJKY+Gi8XRFKPfhE1K1DK5UcsMbyynTbAQngHDw==", + } +] + +RBS_PUBLIC_KEY = b"D\xa9LN_\xf3\xdd\x82\xfd\x96\xa5~\x0f=Z\x06\xbe\xdb\xe3`\x1f\xb60\x0e\x07\xe6(\x08\xc3(\x08\x8c" +LICENSE_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "license.json")) + + +def verify_registered_license(full_details: bool = False) -> None: + """ + Verify presence of a registered OFRAK license. + + If you are reading this, you might be a good candidate to + work at Red Balloon Security – we're hiring! Check out our jobs page + for more info: + + https://redballoonsecurity.com/company/careers/ + + :param full_details: print full license details after verification + :raises RuntimeError: if license has not been configured or is invalid + """ + try: + with open(LICENSE_PATH) as f: + license_list: LicenseListType = json.load(f) + except FileNotFoundError: + sys.exit( + RuntimeError( + "OFRAK license not configured! Run 'ofrak license' to configure your OFRAK license." + ) + ) + + # TODO: Try multiple licenses instead of failing if the first one is invalid + license_data: LicenseDataType = license_list[0] + + try: + verify_license_is_valid_and_current(license_data) + except RuntimeError as msg: + sys.exit(msg) + + if license_data["license_type"] and "community" in license_data["license_type"].lower(): + print("Using OFRAK Community License.") + else: + if full_details: + print( + f"Using OFRAK Pro License: " + f"{json.dumps(license_data, indent=2).lstrip('{').rstrip('}')}" + ) + else: + print( + f"Using OFRAK Pro License: {license_data['serial']}." + f"\n" + f"Run 'ofrak license' to see full license details." + ) + + +def verify_license_is_valid_and_current(license_data: LicenseDataType) -> None: + """ + Verify the OFRAK license signature and expiration date. + + If you are reading this, you might be a good candidate to + work at Red Balloon Security – we're hiring! Check out our jobs page + for more info: + + https://redballoonsecurity.com/company/careers/ + + :raises RuntimeError: if any part of the license is invalid. + """ + key = Ed25519PublicKey.from_public_bytes(RBS_PUBLIC_KEY) + try: + key.verify( + b64decode(cast(str, license_data["signature"])), + get_canonical_license_data(license_data), + ) + except InvalidSignature: + raise RuntimeError("Invalid signature.") + if ( + license_data["expiration_date"] is not None + and int(license_data["expiration_date"]) < time.time() + ): + raise RuntimeError("OFRAK License expired! Please purchase an OFRAK Pro license.") + + +def get_canonical_license_data(license_data: LicenseDataType) -> bytes: + """ + Canonicalize license data and serialize to validate signature. Signed + fields must be ordered to ensure data is serialized consistently for + signature validation. + """ + signed_fields = [ + "name", + "date", + "expiration_date", + "email", + "serial", + ] + return json.dumps([(k, license_data[k]) for k in signed_fields]).encode("utf-8") + + +def register_license(license_data: LicenseDataType) -> None: + """ + Write license data to LICENSE_PATH. + """ + if os.path.exists(LICENSE_PATH): + with open(LICENSE_PATH) as f: + license_list = json.load(f) + else: + license_list = [] + with open(LICENSE_PATH, "w") as f: + json.dump([license_data] + license_list, f, indent=2) + + if license_data["license_type"] and "community" in license_data["license_type"].lower(): + print("Registered OFRAK Community License.") + else: + print( + f"Registered OFRAK Pro License: " + f"{json.dumps(license_data, indent=2).lstrip('{').rstrip('}')}" + ) + + +def accept_license_agreement(force_agree: bool, license_data: LicenseDataType) -> None: + print( + "Read the license agreement below.\n\n" + + "\n".join(wrap(Agreement.get_agreement(license_data), width=79)), + end="\n\n", + ) + if force_agree: + print('Type "I agree" to agree to the license terms: I agree') + else: + agreement = None + while agreement is None or agreement.lower() != "i agree": + agreement = input('Type "I agree" to agree to the license terms: ') + print() + + +def select_license_to_register( + force_community: bool = False, + license_path: Optional[str] = None, +) -> Tuple[Optional[LicenseDataType], Optional[str]]: + if force_community: + return COMMUNITY_LICENSE[0], None + elif license_path: + license_data, abs_license_path = read_license_file(license_path) + return license_data, abs_license_path + else: + print( + "\n".join( + [ + "Welcome to OFRAK License configuration!", + "Use the following prompts to select a Community or Pro License.", + "(To learn more about the license types, visit https://ofrak.com/license.)\n", + ] + ) + ) + license_type = choose( + "How will you use OFRAK?", + "I will use OFRAK for fun, educational, or personal projects (OFRAK Community)", + "I will use OFRAK for work (OFRAK Pro)", + ) + + if license_type == 0: + return COMMUNITY_LICENSE[0], None + find_or_buy = choose( + "Do you already have an OFRAK Pro License?", + "Request an OFRAK Pro License from Red Balloon Security", + "Register an OFRAK Pro License file on disk", + ) + if find_or_buy == 0: + print( + "\n".join( + wrap( + "To request an OFRAK Pro License, complete the form at https://ofrak.com/pro-license/ " + "and we will get back to you promptly. In the meantime, feel free to use the OFRAK Community " + "License to walk through the OFRAK tutorials: " + "https://ofrak.com/docs/getting-started.html#tutorial.", + width=79, + ) + ) + ) + webbrowser.open("https://ofrak.com/pro-license/") + return None, None + else: + license_path = input("Path to license file: ") + license_data, abs_license_path = read_license_file(license_path) + return license_data, abs_license_path + + +def read_license_file(license_path: str) -> Tuple[LicenseDataType, str]: + """ + Read license file and return the absolute path and license data. + + :raises RuntimeError: If license file does not exist. + """ + abs_license_path = os.path.abspath(license_path) + try: + with open(abs_license_path) as f: + license_list = json.load(f) + license_data = license_list[0] + except FileNotFoundError: + sys.exit(RuntimeError(f"License file '{abs_license_path}' does not exist.")) + except KeyError: + # This happens when the LicenseListType is not properly formatted + sys.exit(RuntimeError(f"License file '{abs_license_path}' is incorrectly formatted")) + return license_data, abs_license_path + + +def choose(prompt, *options: str) -> int: + print(prompt) + for i, option in enumerate(options): + print(f"[{i + 1}] {option}") + selection = 0 + while not (1 <= selection <= len(options)): + try: + selection = int(input(f"Enter an option (1-{len(options)}): ")) + except (ValueError, TypeError): + continue + return selection - 1 + + +class Agreement: + @classmethod + def get_agreement(cls, license_data: LicenseDataType): + if license_data["license_type"] and "community" in license_data["license_type"].lower(): + return cls.community_agreement() + else: + return cls.pro_agreement() + + @classmethod + def community_agreement(cls) -> str: + return cls.complete_agreement("OFRAK COMMUNITY") + + @classmethod + def pro_agreement(cls) -> str: + return cls.complete_agreement("OFRAK PRO") + + @classmethod + def complete_agreement(cls, license_type: str) -> str: + return ( + f"RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH " + f'AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND ' + f"RELATED DOCUMENTATION PURSUANT TO THE {license_type} LICENSE AGREEMENT " + f'(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS ' + f"AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER " + f'THE {license_type} AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR ' + f"OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU " + f'("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY ' + f"EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A " + f"MATERIAL PART OF THE {license_type} LICENSE AGREEMENT BETWEEN LICENSEE AND RED " + f"BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU " + f"ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES " + f'NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR ' + f"OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK." + ) diff --git a/ofrak_core/ofrak/ofrak_context.py b/ofrak_core/ofrak/ofrak_context.py index a3901caf4..0b74878e4 100644 --- a/ofrak_core/ofrak/ofrak_context.py +++ b/ofrak_core/ofrak/ofrak_context.py @@ -6,7 +6,9 @@ from types import ModuleType from typing import Type, Any, Awaitable, Callable, List, Iterable, Optional + import ofrak_patch_maker +from ofrak.license import verify_registered_license from ofrak_type import InvalidStateError from synthol.injector import DependencyInjector @@ -124,6 +126,7 @@ def __init__( logging_level: int = DEFAULT_LOG_LEVEL, log_file: Optional[str] = None, exclude_components_missing_dependencies: bool = False, + verify_license: bool = True, ): """ Set up the OFRAK environment that a script will use. @@ -131,7 +134,10 @@ def __init__( :param logging_level: Logging level of OFRAK instance (logging.DEBUG, logging.WARNING, etc.) :param exclude_components_missing_dependencies: When initializing OFRAK, check each component's dependency and do not use any components missing some dependencies + :param verify_license: Verify OFRAK license """ + if verify_license: + verify_registered_license() logging.basicConfig(level=logging_level, format="[%(filename)15s:%(lineno)5s] %(message)s") if log_file is None: log_file = DEFAULT_LOG_FILE diff --git a/ofrak_core/requirements.txt b/ofrak_core/requirements.txt index ec028a0f6..942458bec 100644 --- a/ofrak_core/requirements.txt +++ b/ofrak_core/requirements.txt @@ -2,6 +2,7 @@ aiohttp~=3.9.3 aiohttp-cors~=0.7.0 beartype~=0.12.0 black==23.3.0 +cryptography==42.0.8 fdt==0.3.3 GitPython==3.1.41 importlib-metadata>=4.13 diff --git a/ofrak_core/test_ofrak/unit/test_license.py b/ofrak_core/test_ofrak/unit/test_license.py new file mode 100644 index 000000000..fe3c52998 --- /dev/null +++ b/ofrak_core/test_ofrak/unit/test_license.py @@ -0,0 +1,28 @@ +import json +import os + +import pytest + +from ofrak.license import Agreement, LicenseDataType, read_license_file + + +class TestAgreement: + @pytest.mark.parametrize( + "license_data", ({"license_type": "Community License"}, {"license_type": "Pro License"}) + ) + def test_get_agreement(self, license_data: LicenseDataType): + assert isinstance(Agreement.get_agreement(license_data), str) + + +@pytest.fixture +def license_file(tmpdir) -> str: + file_path = os.path.join(tmpdir, "license.json") + with open(file_path, "w") as f: + json.dump([{"a": "b", "b": None}], f) + return file_path + + +def test_read_license_file(license_file: str): + license_data, abs_path = read_license_file(license_file) + assert isinstance(license_data, dict) + assert os.path.exists(abs_path) diff --git a/ofrak_io/CHANGELOG.md b/ofrak_io/CHANGELOG.md index e31d83c46..b54bcf944 100644 --- a/ofrak_io/CHANGELOG.md +++ b/ofrak_io/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master) +### Changed +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) + ## [1.1.0](https://github.com/redballoonsecurity/ofrak/releases/tag/ofrak-io-v1.1.0) - 2023-01-03 ### Changed - Removed reference to obsolete `ofrak_components` from README.md. diff --git a/ofrak_io/LICENSE b/ofrak_io/LICENSE index 155304e57..3819119a6 100644 --- a/ofrak_io/LICENSE +++ b/ofrak_io/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/ofrak_patch_maker/CHANGELOG.md b/ofrak_patch_maker/CHANGELOG.md index 9c16abaf3..3f6c36189 100644 --- a/ofrak_patch_maker/CHANGELOG.md +++ b/ofrak_patch_maker/CHANGELOG.md @@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### Changed - Removed `SUBALIGN(0)` for `.bss` sections +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) ## [4.0.2](https://github.com/redballoonsecurity/ofrak/compare/ofrak-patch-maker-v.4.0.1...ofrak-patch-maker-v.4.0.2) ### Fixed diff --git a/ofrak_patch_maker/LICENSE b/ofrak_patch_maker/LICENSE index 155304e57..3819119a6 100644 --- a/ofrak_patch_maker/LICENSE +++ b/ofrak_patch_maker/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/ofrak_tutorial/LICENSE b/ofrak_tutorial/LICENSE index 155304e57..3819119a6 100644 --- a/ofrak_tutorial/LICENSE +++ b/ofrak_tutorial/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control. diff --git a/ofrak_tutorial/notebooks_with_outputs/0_start_here.ipynb b/ofrak_tutorial/notebooks_with_outputs/0_start_here.ipynb index 808d76150..16e598d4a 100644 --- a/ofrak_tutorial/notebooks_with_outputs/0_start_here.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/0_start_here.ipynb @@ -119,7 +119,15 @@ "execution_count": 3, "id": "eef6e91b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "import logging\n", "from ofrak import OFRAK\n", @@ -200,7 +208,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" } }, "nbformat": 4, diff --git a/ofrak_tutorial/notebooks_with_outputs/1_simple_string_modification.ipynb b/ofrak_tutorial/notebooks_with_outputs/1_simple_string_modification.ipynb index bb04cabc9..f2a3a3632 100644 --- a/ofrak_tutorial/notebooks_with_outputs/1_simple_string_modification.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/1_simple_string_modification.ipynb @@ -21,7 +21,15 @@ "execution_count": 1, "id": "fae6f8ac", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "from ofrak import OFRAK\n", "from ofrak_tutorial.helper_functions import create_hello_world_binary\n", @@ -139,15 +147,15 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { "cell_type": "raw", - "source": [], "metadata": { "collapsed": false - } + }, + "source": [] } } }, diff --git a/ofrak_tutorial/notebooks_with_outputs/2_ofrak_internals.ipynb b/ofrak_tutorial/notebooks_with_outputs/2_ofrak_internals.ipynb index 5cf92e314..fdae5dd06 100644 --- a/ofrak_tutorial/notebooks_with_outputs/2_ofrak_internals.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/2_ofrak_internals.ipynb @@ -29,7 +29,15 @@ "execution_count": 1, "id": "4f0b5a52", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "from ofrak import OFRAK\n", "from ofrak_tutorial.helper_functions import create_hello_world_binary\n", @@ -159,177 +167,177 @@ "name": "stdout", "output_type": "stream", "text": [ - "┌7ec3ae1b09aa4a7dbc0fd3125646bbdb: [caption=(File: hello_world, Elf), attributes=(AttributesType[FilesystemEntry], Magic), global_offset=(0x0-0x4020), parent_offset=(0x0-0x0), data_hash=f5cd0893]\n", - "├────1555fee0a9054dbbaacdf8b2543e937e: [caption=(ElfBasicHeader), attributes=(Data, AttributesType[ElfBasicHeader]), global_offset=(0x0-0x10), parent_offset=(0x0-0x10), data_hex=7f454c46020101000000000000000000]\n", - "├────7920a68209a34f76bfa5a1d1e0b58706: [caption=(ElfHeader), attributes=(Data, AttributesType[ElfHeader]), global_offset=(0x10-0x40), parent_offset=(0x10-0x40), data_hex=02003e000100000040104000000000004000000000000000e03800000000000000000000400038000b0040001d001c00]\n", - "├────889c9ce9a69a4b118fdc82d87b0e051e: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x38e0-0x3920), parent_offset=(0x38e0-0x3920), data_hex=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]\n", - "├────227806fb68884cc29f562e583e3844c2: [caption=(ElfSection), attributes=(AttributesType[ElfSectionStructure])]\n", - "├────4aab9d471bbe4ece8023d34d1b3349a6: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3920-0x3960), parent_offset=(0x3920-0x3960), data_hex=1b000000010000000200000000000000a802400000000000a8020000000000001c00000000000000000000000000000001000000000000000000000000000000]\n", - "├────5525a41d8d96415fa5aef778f6b7d7fc: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2a8-0x2c4), parent_offset=(0x2a8-0x2c4), data_hex=2f6c696236342f6c642d6c696e75782d7838362d36342e736f2e3200]\n", - "├────764757192d374f909f4f9bb5e9d43c71: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3960-0x39a0), parent_offset=(0x3960-0x39a0), data_hex=23000000070000000200000000000000c402400000000000c4020000000000002400000000000000000000000000000004000000000000000000000000000000]\n", - "├────77cff397e5804c3d94c00093c030f7c4: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2c4-0x2e8), parent_offset=(0x2c4-0x2e8), data_hex=040000001400000003000000474e550017fb4e8bc7504a89fa3603690cb745adfd747237]\n", - "├────349c4e6f37e841cda4f83c0c68d18e6c: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x39a0-0x39e0), parent_offset=(0x39a0-0x39e0), data_hex=36000000070000000200000000000000e802400000000000e8020000000000002000000000000000000000000000000004000000000000000000000000000000]\n", - "├────93a034e8d1b9457d930e889a4aad1b55: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e8-0x308), parent_offset=(0x2e8-0x308), data_hex=040000001000000001000000474e550000000000030000000200000000000000]\n", - "├────91b63e364b2c4926af8519f09fff05f4: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x39e0-0x3a20), parent_offset=(0x39e0-0x3a20), data_hex=44000000f6ffff6f0200000000000000080340000000000008030000000000001c00000000000000050000000000000008000000000000000000000000000000]\n", - "├────b9efefb1a9b74ca5afe476c5d30ba2bb: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x308-0x324), parent_offset=(0x308-0x324), data_hex=01000000010000000100000000000000000000000000000000000000]\n", - "├────989b3273a42741328cf8c6f86c0a7296: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3a20-0x3a60), parent_offset=(0x3a20-0x3a60), data_hex=4e0000000b0000000200000000000000280340000000000028030000000000006000000000000000060000000100000008000000000000001800000000000000]\n", - "├───┬bc46ab37c0764cdf8bd8dbfde40537c1: [caption=(ElfDynSymbolSection: .dynsym), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[Addressable], AttributesType[MemoryRegion], AttributesType[NamedProgramSection]), global_offset=(0x328-0x388), parent_offset=(0x328-0x388), data_hex=0000000000000000000000000000000000000000000000000100000012000000000000000000000000000000000000000600000012000000000000000000000000000000000000002e0000002000000000000000000000000000000000000000]\n", - "│ ├────008aca663fac46c29b5c462476871b5e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x328-0x340), parent_offset=(0x0-0x18), data_hex=000000000000000000000000000000000000000000000000]\n", - "│ ├────50d89a7f07b8402c870d4fe10d51e8c4: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x340-0x358), parent_offset=(0x18-0x30), data_hex=010000001200000000000000000000000000000000000000]\n", - "│ ├────7eec0db4d92e423abfb2de4647316f25: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x358-0x370), parent_offset=(0x30-0x48), data_hex=060000001200000000000000000000000000000000000000]\n", - "│ └────d51544794fd94d1f8075a6836f73047d: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x370-0x388), parent_offset=(0x48-0x60), data_hex=2e0000002000000000000000000000000000000000000000]\n", - "├────b3e52741dd2347cfa95607048884ce85: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3a60-0x3aa0), parent_offset=(0x3a60-0x3aa0), data_hex=56000000030000000200000000000000880340000000000088030000000000003d00000000000000000000000000000001000000000000000000000000000000]\n", - "├────fff8b3acf48d410bbdc03120092da112: [caption=(ElfSection, ElfStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x388-0x3c5), parent_offset=(0x388-0x3c5), data_hex=0070757473005f5f6c6962635f73746172745f6d61696e006c6962632e736f2e3600474c4942435f322e322e35005f5f676d6f6e5f73746172745f5f00]\n", - "├────5656e4d3e4af45afb271e2eb01bf7862: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3aa0-0x3ae0), parent_offset=(0x3aa0-0x3ae0), data_hex=5e000000ffffff6f0200000000000000c603400000000000c6030000000000000800000000000000050000000000000002000000000000000200000000000000]\n", - "├────893b708882404d6a99f86825180d8e2a: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3c6-0x3ce), parent_offset=(0x3c6-0x3ce), data_hex=0000020002000000]\n", - "├────784dbbc2c0c6464588db9f537954c000: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ae0-0x3b20), parent_offset=(0x3ae0-0x3b20), data_hex=6b000000feffff6f0200000000000000d003400000000000d0030000000000002000000000000000060000000100000008000000000000000000000000000000]\n", - "├────4c401d7d42394d8bb1f68b680768f241: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3d0-0x3f0), parent_offset=(0x3d0-0x3f0), data_hex=01000100180000001000000000000000751a6909000002002200000000000000]\n", - "├────ae7c270dba3a4a9597b3ae8d84b7f424: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3b20-0x3b60), parent_offset=(0x3b20-0x3b60), data_hex=7a000000040000000200000000000000f003400000000000f0030000000000003000000000000000050000000000000008000000000000001800000000000000]\n", - "├───┬6b64fccb4aa74bd99c5c573666e67059: [caption=(ElfRelaSection: .rela.dyn), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[Addressable], AttributesType[MemoryRegion], AttributesType[NamedProgramSection]), global_offset=(0x3f0-0x420), parent_offset=(0x3f0-0x420), data_hex=f03f40000000000006000000020000000000000000000000f83f40000000000006000000030000000000000000000000]\n", - "│ ├────7a55cc8e3f054d8aa597d4de4a502922: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x3f0-0x408), parent_offset=(0x0-0x18), data_hex=f03f40000000000006000000020000000000000000000000]\n", - "│ └────d6a8cb8a7d084a088ebe9b6c6c5f260e: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x408-0x420), parent_offset=(0x18-0x30), data_hex=f83f40000000000006000000030000000000000000000000]\n", - "├────89e54a843ab44f1ca3b96cebb7a48cb4: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3b60-0x3ba0), parent_offset=(0x3b60-0x3ba0), data_hex=84000000040000004200000000000000200440000000000020040000000000001800000000000000050000001600000008000000000000001800000000000000]\n", - "├───┬197fade116be4971aa2d3ccf9fda5e9f: [caption=(ElfRelaSection: .rela.plt), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[Addressable], AttributesType[MemoryRegion], AttributesType[NamedProgramSection]), global_offset=(0x420-0x438), parent_offset=(0x420-0x438), data_hex=184040000000000007000000010000000000000000000000]\n", - "│ └────1d87a47fda1542c6af0bb0560cb069ea: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x420-0x438), parent_offset=(0x0-0x18), data_hex=184040000000000007000000010000000000000000000000]\n", - "├────1c68566fd848425fa831210133f3a0ae: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ba0-0x3be0), parent_offset=(0x3ba0-0x3be0), data_hex=8e000000010000000600000000000000001040000000000000100000000000001700000000000000000000000000000004000000000000000000000000000000]\n", - "├────64983f9ba7204ed494b99944ab3d0ff3: [caption=(ElfSection, CodeRegion), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1000-0x1017), parent_offset=(0x1000-0x1017), data_hex=4883ec08488b05ed2f00004885c07402ffd04883c408c3]\n", - "├────333e6e6581c94728978450427ec9b63a: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3be0-0x3c20), parent_offset=(0x3be0-0x3c20), data_hex=89000000010000000600000000000000201040000000000020100000000000002000000000000000000000000000000010000000000000001000000000000000]\n", - "├────72ed80a0f46c4b5ab2cddb3c5eea86b0: [caption=(ElfSection, CodeRegion), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1020-0x1040), parent_offset=(0x1020-0x1040), data_hex=ff35e22f0000ff25e42f00000f1f4000ff25e22f00006800000000e9e0ffffff]\n", - "├────de7bd641c27c4bdd84df7f31c2ec8b2d: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3c20-0x3c60), parent_offset=(0x3c20-0x3c60), data_hex=94000000010000000600000000000000401040000000000040100000000000006101000000000000000000000000000010000000000000000000000000000000]\n", - "├────59f70c17c0a742ec90206013dea49773: [caption=(ElfSection, CodeRegion), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1040-0x11a1), parent_offset=(0x1040-0x11a1), data_hash=1eeedffe]\n", - "├────12aaf5e20fd1407b93323a74c8329241: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3c60-0x3ca0), parent_offset=(0x3c60-0x3ca0), data_hex=9a000000010000000600000000000000a411400000000000a4110000000000000900000000000000000000000000000004000000000000000000000000000000]\n", - "├────c0753d43a8e84b8d85dc13fd217f7a88: [caption=(ElfSection, CodeRegion), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x11a4-0x11ad), parent_offset=(0x11a4-0x11ad), data_hex=4883ec084883c408c3]\n", - "├────dc5c5ebae79d498da647c1ba6c83ea21: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ca0-0x3ce0), parent_offset=(0x3ca0-0x3ce0), data_hex=a0000000010000000200000000000000002040000000000000200000000000001200000000000000000000000000000004000000000000000000000000000000]\n", - "├────82d0c5584c7a446bbbca77ef89f916da: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2000-0x2012), parent_offset=(0x2000-0x2012), data_hex=0100020048656c6c6f2c20576f726c642100]\n", - "├────8295be99c79a4e3b92b07ebf962d7e05: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ce0-0x3d20), parent_offset=(0x3ce0-0x3d20), data_hex=a8000000010000000200000000000000142040000000000014200000000000003c00000000000000000000000000000004000000000000000000000000000000]\n", - "├────a40437099c894f5598cb03747ca82769: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2014-0x2050), parent_offset=(0x2014-0x2050), data_hex=011b033b38000000060000000cf0ffff940000002cf0ffff540000005cf0ffff800000000ef1ffffbc0000002cf1ffffdc0000008cf1ffff24010000]\n", - "├────dc9fa3e9eeb248a3ba42742c61eb0e24: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3d20-0x3d60), parent_offset=(0x3d20-0x3d60), data_hex=b6000000010000000200000000000000502040000000000050200000000000000001000000000000000000000000000008000000000000000000000000000000]\n", - "├────044434721476420e85bdf7470d9cead5: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2050-0x2150), parent_offset=(0x2050-0x2150), data_hash=ef716b33]\n", - "├────9f6142f8b7ca4a7ea1bfa667c2a60606: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3d60-0x3da0), parent_offset=(0x3d60-0x3da0), data_hex=c00000000e0000000300000000000000103e400000000000102e0000000000000800000000000000000000000000000008000000000000000800000000000000]\n", - "├───┬81d2e7cf2c5c44c89bd793b16ce9aa33: [caption=(ElfInitArraySection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e10-0x2e18), parent_offset=(0x2e10-0x2e18), data_hex=2011400000000000]\n", - "│ └────3aed4544bef44063af6a4df79d8289e2: [caption=(ElfVirtualAddress), attributes=(Data), global_offset=(0x2e10-0x2e18), parent_offset=(0x0-0x8), data_hex=2011400000000000]\n", - "├────35839cfc301e43bfb19d68d7fdfeeb25: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3da0-0x3de0), parent_offset=(0x3da0-0x3de0), data_hex=cc0000000f0000000300000000000000183e400000000000182e0000000000000800000000000000000000000000000008000000000000000800000000000000]\n", - "├───┬39d2332886044a27ba6c822d219f636e: [caption=(ElfFiniArraySection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e18-0x2e20), parent_offset=(0x2e18-0x2e20), data_hex=f010400000000000]\n", - "│ └────e6342b244fd94acb96a28b8fff9fc254: [caption=(ElfVirtualAddress), attributes=(Data), global_offset=(0x2e18-0x2e20), parent_offset=(0x0-0x8), data_hex=f010400000000000]\n", - "├────5a381742faa64e479aa06f42876383f5: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3de0-0x3e20), parent_offset=(0x3de0-0x3e20), data_hex=d8000000060000000300000000000000203e400000000000202e000000000000d001000000000000060000000000000008000000000000001000000000000000]\n", - "├───┬2c68fc7e09a9465fae9b257c6f5baddb: [caption=(ElfDynamicSection: .dynamic), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[Addressable], AttributesType[MemoryRegion], AttributesType[NamedProgramSection]), global_offset=(0x2e20-0x2ff0), parent_offset=(0x2e20-0x2ff0), data_hash=4438de54]\n", - "│ ├────b6eb90d01b204dc987fd81b160005b8c: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e20-0x2e30), parent_offset=(0x0-0x10), data_hex=01000000000000001800000000000000]\n", - "│ ├────f705825a5cba43388934ad4a4d0bdf9c: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e30-0x2e40), parent_offset=(0x10-0x20), data_hex=0c000000000000000010400000000000]\n", - "│ ├────99d4463b4d794414addaccfa0fd6d28d: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e40-0x2e50), parent_offset=(0x20-0x30), data_hex=0d00000000000000a411400000000000]\n", - "│ ├────7ed8e4e561d44564946682ab125be13d: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e50-0x2e60), parent_offset=(0x30-0x40), data_hex=1900000000000000103e400000000000]\n", - "│ ├────44461189539644e8b5b6f32e1a11d5cc: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e60-0x2e70), parent_offset=(0x40-0x50), data_hex=1b000000000000000800000000000000]\n", - "│ ├────5ae22b77dc984cf6ae0d214e72495ee5: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e70-0x2e80), parent_offset=(0x50-0x60), data_hex=1a00000000000000183e400000000000]\n", - "│ ├────0eb9eb88ebfd4a6598d5cf71d84b89b7: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e80-0x2e90), parent_offset=(0x60-0x70), data_hex=1c000000000000000800000000000000]\n", - "│ ├────4f20a4cac7f4419eb9689f8790e281c1: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e90-0x2ea0), parent_offset=(0x70-0x80), data_hex=f5feff6f000000000803400000000000]\n", - "│ ├────130c4f4e7b1447299b2cfb93f74ef8f0: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ea0-0x2eb0), parent_offset=(0x80-0x90), data_hex=05000000000000008803400000000000]\n", - "│ ├────70c4b90b30dc4703b772b56ac8b9623f: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2eb0-0x2ec0), parent_offset=(0x90-0xa0), data_hex=06000000000000002803400000000000]\n", - "│ ├────62b1aae2cb854c9d8dd67285f5ed420c: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ec0-0x2ed0), parent_offset=(0xa0-0xb0), data_hex=0a000000000000003d00000000000000]\n", - "│ ├────6ca482b0921c4438b213c8d0e29fec35: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ed0-0x2ee0), parent_offset=(0xb0-0xc0), data_hex=0b000000000000001800000000000000]\n", - "│ ├────3b70d9de54cf47beb3e411bd443108e0: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ee0-0x2ef0), parent_offset=(0xc0-0xd0), data_hex=15000000000000000000000000000000]\n", - "│ ├────b00fa84d21c4448aa7b979c68176f5a5: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ef0-0x2f00), parent_offset=(0xd0-0xe0), data_hex=03000000000000000040400000000000]\n", - "│ ├────9b6cea1ede9442329ede9c9a6762dc42: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f00-0x2f10), parent_offset=(0xe0-0xf0), data_hex=02000000000000001800000000000000]\n", - "│ ├────909779148bd4427a93151b6f3489517a: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f10-0x2f20), parent_offset=(0xf0-0x100), data_hex=14000000000000000700000000000000]\n", - "│ ├────58ff0e4abd1e44708203908d40717c7b: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f20-0x2f30), parent_offset=(0x100-0x110), data_hex=17000000000000002004400000000000]\n", - "│ ├────8954a9c269d449c2bb71a4c50c0ef2c0: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f30-0x2f40), parent_offset=(0x110-0x120), data_hex=0700000000000000f003400000000000]\n", - "│ ├────353446007ece42cd9c3884f7206336aa: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f40-0x2f50), parent_offset=(0x120-0x130), data_hex=08000000000000003000000000000000]\n", - "│ ├────bc23b1bb841b430e9d3dfb412f333de0: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f50-0x2f60), parent_offset=(0x130-0x140), data_hex=09000000000000001800000000000000]\n", - "│ ├────46cf5f5e656242a8a02fa58f20bd45f1: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f60-0x2f70), parent_offset=(0x140-0x150), data_hex=feffff6f00000000d003400000000000]\n", - "│ ├────fb0c015c2ebd458b8e38a6fa25baf728: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f70-0x2f80), parent_offset=(0x150-0x160), data_hex=ffffff6f000000000100000000000000]\n", - "│ ├────c00c0a9b085e4d179110559d4679a773: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f80-0x2f90), parent_offset=(0x160-0x170), data_hex=f0ffff6f00000000c603400000000000]\n", - "│ ├────73f324b882ac499c97bbfd341f335afc: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f90-0x2fa0), parent_offset=(0x170-0x180), data_hex=00000000000000000000000000000000]\n", - "│ ├────203419b4dd4a48678a7e6f1ce991119a: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fa0-0x2fb0), parent_offset=(0x180-0x190), data_hex=00000000000000000000000000000000]\n", - "│ ├────1931d0cf7eb74618aa39d15a4487a4d5: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fb0-0x2fc0), parent_offset=(0x190-0x1a0), data_hex=00000000000000000000000000000000]\n", - "│ ├────e3c4d316a6c8421096900cc5b511a231: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fc0-0x2fd0), parent_offset=(0x1a0-0x1b0), data_hex=00000000000000000000000000000000]\n", - "│ ├────4c5e21867ebf4e218409f92bfd19beb6: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fd0-0x2fe0), parent_offset=(0x1b0-0x1c0), data_hex=00000000000000000000000000000000]\n", - "│ └────921d775d20c04511b918f82b54a01ba3: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fe0-0x2ff0), parent_offset=(0x1c0-0x1d0), data_hex=00000000000000000000000000000000]\n", - "├────3be0bda2f05f4b0a9b0e335a68c39649: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3e20-0x3e60), parent_offset=(0x3e20-0x3e60), data_hex=e1000000010000000300000000000000f03f400000000000f02f0000000000001000000000000000000000000000000008000000000000000800000000000000]\n", - "├────568c1adc329847119834457d4fdab065: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2ff0-0x3000), parent_offset=(0x2ff0-0x3000), data_hex=00000000000000000000000000000000]\n", - "├────002309662ba04030a2065fc449807d9b: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3e60-0x3ea0), parent_offset=(0x3e60-0x3ea0), data_hex=e6000000010000000300000000000000004040000000000000300000000000002000000000000000000000000000000008000000000000000800000000000000]\n", - "├────7cdae41335344d71b9101d176455995e: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3000-0x3020), parent_offset=(0x3000-0x3020), data_hex=203e400000000000000000000000000000000000000000003610400000000000]\n", - "├────17ae988daefa4a319bcf73b2d6972851: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ea0-0x3ee0), parent_offset=(0x3ea0-0x3ee0), data_hex=ef000000010000000300000000000000204040000000000020300000000000001000000000000000000000000000000008000000000000000000000000000000]\n", - "├────168f6a7572d04cc09a5a655215439b76: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3020-0x3030), parent_offset=(0x3020-0x3030), data_hex=00000000000000000000000000000000]\n", - "├────39a76ddf9af14535842581a1981317f3: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ee0-0x3f20), parent_offset=(0x3ee0-0x3f20), data_hex=f5000000080000000300000000000000304040000000000030300000000000000800000000000000000000000000000001000000000000000000000000000000]\n", - "├────496b4d122a4b4839b031f33e32591231: [caption=(ElfSection), attributes=(AttributesType[ElfSectionStructure])]\n", - "├────f436ed40956847cda90489eb9232f215: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3f20-0x3f60), parent_offset=(0x3f20-0x3f60), data_hex=fa000000010000003000000000000000000000000000000030300000000000002700000000000000000000000000000001000000000000000100000000000000]\n", - "├────aedff0584009432ea8fe7ed5ce71be20: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3030-0x3057), parent_offset=(0x3030-0x3057), data_hex=4743433a202844656269616e2031302e322e312d36292031302e322e3120323032313031313000]\n", - "├────936847ba855a4363ba0ed9442cf7d3b6: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3f60-0x3fa0), parent_offset=(0x3f60-0x3fa0), data_hex=0100000002000000000000000000000000000000000000005830000000000000b8050000000000001b0000002b00000008000000000000001800000000000000]\n", - "├───┬7f4df427959e4e899b9bbba56830b6cb: [caption=(ElfSymbolSection: .symtab), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[Addressable], AttributesType[MemoryRegion], AttributesType[NamedProgramSection]), global_offset=(0x3058-0x3610), parent_offset=(0x3058-0x3610), data_hash=f6bc0737]\n", - "│ ├────d6fd3402287f4fc0924e09166817d462: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3058-0x3070), parent_offset=(0x0-0x18), data_hex=000000000000000000000000000000000000000000000000]\n", - "│ ├────8acccc15acf44297891c05a3263f9abd: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3070-0x3088), parent_offset=(0x18-0x30), data_hex=0000000003000100a8024000000000000000000000000000]\n", - "│ ├────d505c1b03f3840e18dfb2f97191ad4dc: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3088-0x30a0), parent_offset=(0x30-0x48), data_hex=0000000003000200c4024000000000000000000000000000]\n", - "│ ├────076faae384194fa18daf13b26dd456e6: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30a0-0x30b8), parent_offset=(0x48-0x60), data_hex=0000000003000300e8024000000000000000000000000000]\n", - "│ ├────710d8bf589d048cd873f1571e2676ff3: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30b8-0x30d0), parent_offset=(0x60-0x78), data_hex=000000000300040008034000000000000000000000000000]\n", - "│ ├────723c1e879c804e76b8e116f1f75ada36: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30d0-0x30e8), parent_offset=(0x78-0x90), data_hex=000000000300050028034000000000000000000000000000]\n", - "│ ├────ec6ae347714b4d39b0399bb95aeacf5f: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30e8-0x3100), parent_offset=(0x90-0xa8), data_hex=000000000300060088034000000000000000000000000000]\n", - "│ ├────17c0bfe47fae415e9a658a18cb63bbe4: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3100-0x3118), parent_offset=(0xa8-0xc0), data_hex=0000000003000700c6034000000000000000000000000000]\n", - "│ ├────5f07c8158b7a443ca6953eb89c49eaf0: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3118-0x3130), parent_offset=(0xc0-0xd8), data_hex=0000000003000800d0034000000000000000000000000000]\n", - "│ ├────ec1ff8ae15fc45e48303b8bd2e3bf03b: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3130-0x3148), parent_offset=(0xd8-0xf0), data_hex=0000000003000900f0034000000000000000000000000000]\n", - "│ ├────563a84cfa3b141f4a61fc735037074da: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3148-0x3160), parent_offset=(0xf0-0x108), data_hex=0000000003000a0020044000000000000000000000000000]\n", - "│ ├────ab5954c90fe3479e9722f4c46c304168: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3160-0x3178), parent_offset=(0x108-0x120), data_hex=0000000003000b0000104000000000000000000000000000]\n", - "│ ├────4cb70182d7684f099fafb1f5280fc594: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3178-0x3190), parent_offset=(0x120-0x138), data_hex=0000000003000c0020104000000000000000000000000000]\n", - "│ ├────973236522d4347a1bc98ff268fd3a188: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3190-0x31a8), parent_offset=(0x138-0x150), data_hex=0000000003000d0040104000000000000000000000000000]\n", - "│ ├────13e4a55999a44863973398d90847865d: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31a8-0x31c0), parent_offset=(0x150-0x168), data_hex=0000000003000e00a4114000000000000000000000000000]\n", - "│ ├────bbd1f4e42bc84157ae2b319fd65e7bd5: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31c0-0x31d8), parent_offset=(0x168-0x180), data_hex=0000000003000f0000204000000000000000000000000000]\n", - "│ ├────3944be07ff4b4be9b4b7756384de2fe3: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31d8-0x31f0), parent_offset=(0x180-0x198), data_hex=000000000300100014204000000000000000000000000000]\n", - "│ ├────09c4a1d945a84eab8069c075fa974227: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31f0-0x3208), parent_offset=(0x198-0x1b0), data_hex=000000000300110050204000000000000000000000000000]\n", - "│ ├────a7f5604a59144cf2ace51d1719af84e2: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3208-0x3220), parent_offset=(0x1b0-0x1c8), data_hex=0000000003001200103e4000000000000000000000000000]\n", - "│ ├────16b5d8ed376f4b758e4fdd64a5193ffc: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3220-0x3238), parent_offset=(0x1c8-0x1e0), data_hex=0000000003001300183e4000000000000000000000000000]\n", - "│ ├────c05804bde68d4dba8f2421ef6580198e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3238-0x3250), parent_offset=(0x1e0-0x1f8), data_hex=0000000003001400203e4000000000000000000000000000]\n", - "│ ├────f5d86700f16a423f8d92cf47ff443e78: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3250-0x3268), parent_offset=(0x1f8-0x210), data_hex=0000000003001500f03f4000000000000000000000000000]\n", - "│ ├────9bf427fbf2524691a6ec046158a949e1: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3268-0x3280), parent_offset=(0x210-0x228), data_hex=000000000300160000404000000000000000000000000000]\n", - "│ ├────b195d126b2a648278eebdc4f71f6e4dc: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3280-0x3298), parent_offset=(0x228-0x240), data_hex=000000000300170020404000000000000000000000000000]\n", - "│ ├────23e2ca30cdc348538007a7db3e79ccd1: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3298-0x32b0), parent_offset=(0x240-0x258), data_hex=000000000300180030404000000000000000000000000000]\n", - "│ ├────fffa25ec4fb74374a7e69b7ef361e032: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32b0-0x32c8), parent_offset=(0x258-0x270), data_hex=000000000300190000000000000000000000000000000000]\n", - "│ ├────eaa17981b430447db640a47c707145c4: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32c8-0x32e0), parent_offset=(0x270-0x288), data_hex=010000000400f1ff00000000000000000000000000000000]\n", - "│ ├────92a1313d1ed048f2851b2679e6815848: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32e0-0x32f8), parent_offset=(0x288-0x2a0), data_hex=0c00000002000d0080104000000000000000000000000000]\n", - "│ ├────f089c856fa494d4eb898987f7e59867a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32f8-0x3310), parent_offset=(0x2a0-0x2b8), data_hex=0e00000002000d00b0104000000000000000000000000000]\n", - "│ ├────b2253507cc324d14a3080345593abad9: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3310-0x3328), parent_offset=(0x2b8-0x2d0), data_hex=2100000002000d00f0104000000000000000000000000000]\n", - "│ ├────d47c18ff2f364253ac700e0345e18bc3: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3328-0x3340), parent_offset=(0x2d0-0x2e8), data_hex=370000000100180030404000000000000100000000000000]\n", - "│ ├────0d9bd08ae41d4c9aa66917b3f5448c69: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3340-0x3358), parent_offset=(0x2e8-0x300), data_hex=4300000001001300183e4000000000000000000000000000]\n", - "│ ├────23a22c769556448da6519900d53509da: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3358-0x3370), parent_offset=(0x300-0x318), data_hex=6a00000002000d0020114000000000000000000000000000]\n", - "│ ├────794fc4b7cfbb46509764f29920aefe19: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3370-0x3388), parent_offset=(0x318-0x330), data_hex=7600000001001200103e4000000000000000000000000000]\n", - "│ ├────344464d733cc4f2f999a85954d5bb9d2: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3388-0x33a0), parent_offset=(0x330-0x348), data_hex=950000000400f1ff00000000000000000000000000000000]\n", - "│ ├────71f73ff2fb434294a6d2c6aa0f911e2a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33a0-0x33b8), parent_offset=(0x348-0x360), data_hex=010000000400f1ff00000000000000000000000000000000]\n", - "│ ├────eb5efda26ef84017bc612ef14587ad38: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33b8-0x33d0), parent_offset=(0x360-0x378), data_hex=a3000000010011004c214000000000000000000000000000]\n", - "│ ├────a54dcf89bf2648d9bae34a6afc29f537: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33d0-0x33e8), parent_offset=(0x378-0x390), data_hex=000000000400f1ff00000000000000000000000000000000]\n", - "│ ├────fd2c96e5c82840d48e8ad9d2ac00fe8c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33e8-0x3400), parent_offset=(0x390-0x3a8), data_hex=b100000000001200183e4000000000000000000000000000]\n", - "│ ├────804264991b7a45caa33c367d698893b9: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3400-0x3418), parent_offset=(0x3a8-0x3c0), data_hex=c200000001001400203e4000000000000000000000000000]\n", - "│ ├────f8c69edfad8e4eacbdb67acf98359e85: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3418-0x3430), parent_offset=(0x3c0-0x3d8), data_hex=cb00000000001200103e4000000000000000000000000000]\n", - "│ ├────acd517a8db4c4353a996164095732c1e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3430-0x3448), parent_offset=(0x3d8-0x3f0), data_hex=de0000000000100014204000000000000000000000000000]\n", - "│ ├────5a06c5d52da64ab2abb3607e7c687247: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3448-0x3460), parent_offset=(0x3f0-0x408), data_hex=f10000000100160000404000000000000000000000000000]\n", - "│ ├────7130d0386d01459f8bcbf59e53f5855f: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3460-0x3478), parent_offset=(0x408-0x420), data_hex=0701000012000d00a0114000000000000100000000000000]\n", - "│ ├────156b9bc2b9e34e12a606da4bebfd978a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3478-0x3490), parent_offset=(0x420-0x438), data_hex=4f0100002000170020404000000000000000000000000000]\n", - "│ ├────f2a348fc941f42f6b53ba1856a4d4d72: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3490-0x34a8), parent_offset=(0x438-0x450), data_hex=170100001200000000000000000000000000000000000000]\n", - "│ ├────10eaae4b85eb4b53aad265a8901b91c8: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34a8-0x34c0), parent_offset=(0x450-0x468), data_hex=280100001000170030404000000000000000000000000000]\n", - "│ ├────dd21956da645496e816036cbeb0ce48c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34c0-0x34d8), parent_offset=(0x468-0x480), data_hex=1101000012020e00a4114000000000000000000000000000]\n", - "│ ├────6821c90624374a0caf68fb506e689f01: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34d8-0x34f0), parent_offset=(0x480-0x498), data_hex=2f0100001200000000000000000000000000000000000000]\n", - "│ ├────517ce3c57958456bbfadb5c57958dc46: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34f0-0x3508), parent_offset=(0x498-0x4b0), data_hex=4d0100001000170020404000000000000000000000000000]\n", - "│ ├────6a3dcfdce1d342608ccb7f9eacde3362: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3508-0x3520), parent_offset=(0x4b0-0x4c8), data_hex=5a0100002000000000000000000000000000000000000000]\n", - "│ ├────f09b418dc51a483892a6042b1ed87634: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3520-0x3538), parent_offset=(0x4c8-0x4e0), data_hex=690100001102170028404000000000000000000000000000]\n", - "│ ├────6d57c22dbce2493f9fdd9218e255479b: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3538-0x3550), parent_offset=(0x4e0-0x4f8), data_hex=7601000011000f0000204000000000000400000000000000]\n", - "│ ├────5c341f74bc2d43f5aaab7076caca2c03: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3550-0x3568), parent_offset=(0x4f8-0x510), data_hex=8501000012000d0040114000000000005d00000000000000]\n", - "│ ├────96284ebc1c2e4f5b83200bcc750a4fef: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3568-0x3580), parent_offset=(0x510-0x528), data_hex=bd0000001000180038404000000000000000000000000000]\n", - "│ ├────14151cbe5a144134a69a078622ce8e2c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3580-0x3598), parent_offset=(0x528-0x540), data_hex=9501000012020d0070104000000000000100000000000000]\n", - "│ ├────5f547cfdff45493380ca584b27bf44c3: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3598-0x35b0), parent_offset=(0x540-0x558), data_hex=5301000012000d0040104000000000002b00000000000000]\n", - "│ ├────d2b8b0cd7c5a4ad89310951553d2d3c2: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35b0-0x35c8), parent_offset=(0x558-0x570), data_hex=ad0100001000180030404000000000000000000000000000]\n", - "│ ├────65dbe06d408b4a5181ff6c26dced6a8d: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35c8-0x35e0), parent_offset=(0x570-0x588), data_hex=b901000012000d0022114000000000001700000000000000]\n", - "│ ├────5bafab18e55446e3bac55140c5f1da80: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35e0-0x35f8), parent_offset=(0x588-0x5a0), data_hex=be0100001102170030404000000000000000000000000000]\n", - "│ └────99c652c5c468492ca145b951a87f899c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35f8-0x3610), parent_offset=(0x5a0-0x5b8), data_hex=8f01000012020b0000104000000000000000000000000000]\n", - "├────fbadd51624154144830b32a2a57828d2: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3fa0-0x3fe0), parent_offset=(0x3fa0-0x3fe0), data_hex=0900000003000000000000000000000000000000000000001036000000000000ca01000000000000000000000000000001000000000000000000000000000000]\n", - "├────e801f3a5dbb34975a79c8d662fd8e14c: [caption=(ElfSection, ElfStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3610-0x37da), parent_offset=(0x3610-0x37da), data_hash=800e56e9]\n", - "├────7c0d17f39c8f4ae5b43e050b80ffea4b: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3fe0-0x4020), parent_offset=(0x3fe0-0x4020), data_hex=110000000300000000000000000000000000000000000000da370000000000000301000000000000000000000000000001000000000000000000000000000000]\n", - "├────bce8fdcd97d0493885df4bf2257cb603: [caption=(ElfSection, ElfSectionNameStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x37da-0x38dd), parent_offset=(0x37da-0x38dd), data_hash=6db41dea]\n", - "├────d2a4b9cd389349a7a3b6fadc842dc4d9: [caption=(ElfProgramHeader: PHDR, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x40-0x78), parent_offset=(0x40-0x78), data_hex=0600000004000000400000000000000040004000000000004000400000000000680200000000000068020000000000000800000000000000]\n", - "├────6774abc4d43e4341ba0229176a6f6cb0: [caption=(ElfProgramHeader: INTERP, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x78-0xb0), parent_offset=(0x78-0xb0), data_hex=0300000004000000a802000000000000a802400000000000a8024000000000001c000000000000001c000000000000000100000000000000]\n", - "├────4016bcc472e04feaab48b887131db1d4: [caption=(ElfProgramHeader: LOAD, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0xb0-0xe8), parent_offset=(0xb0-0xe8), data_hex=0100000004000000000000000000000000004000000000000000400000000000380400000000000038040000000000000010000000000000]\n", - "├────2dbf367e00344888ae2db96d5e2eddd0: [caption=(ElfProgramHeader: LOAD, RX), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0xe8-0x120), parent_offset=(0xe8-0x120), data_hex=0100000005000000001000000000000000104000000000000010400000000000ad01000000000000ad010000000000000010000000000000]\n", - "├────935e9bf7dc764b7fa7f7eb36fa3cbd52: [caption=(ElfProgramHeader: LOAD, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x120-0x158), parent_offset=(0x120-0x158), data_hex=0100000004000000002000000000000000204000000000000020400000000000500100000000000050010000000000000010000000000000]\n", - "├────76ded1a82fb646a692f381d3e66e9ae4: [caption=(ElfProgramHeader: LOAD, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x158-0x190), parent_offset=(0x158-0x190), data_hex=0100000006000000102e000000000000103e400000000000103e400000000000200200000000000028020000000000000010000000000000]\n", - "├────76f6effa81564daa9f491783e826075e: [caption=(ElfProgramHeader: DYNAMIC, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x190-0x1c8), parent_offset=(0x190-0x1c8), data_hex=0200000006000000202e000000000000203e400000000000203e400000000000d001000000000000d0010000000000000800000000000000]\n", - "├────eb69f5aed9244eedaf92057e28880ba5: [caption=(ElfProgramHeader: NOTE, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x1c8-0x200), parent_offset=(0x1c8-0x200), data_hex=0400000004000000c402000000000000c402400000000000c402400000000000440000000000000044000000000000000400000000000000]\n", - "├────70c7363eb6de481c9be32353d1032c5a: [caption=(ElfProgramHeader: GNU_EH_FRAME, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x200-0x238), parent_offset=(0x200-0x238), data_hex=50e57464040000001420000000000000142040000000000014204000000000003c000000000000003c000000000000000400000000000000]\n", - "├────0978e1b79bf542859e5b0452c7bd5a7e: [caption=(ElfProgramHeader: GNU_STACK, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x238-0x270), parent_offset=(0x238-0x270), data_hex=51e5746406000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000]\n", - "└────85d9284be41443f797d0800d5d721315: [caption=(ElfProgramHeader: GNU_RELRO, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x270-0x2a8), parent_offset=(0x270-0x2a8), data_hex=52e5746404000000102e000000000000103e400000000000103e400000000000f001000000000000f0010000000000000100000000000000]\n", + "┌3d0dba226977427db9da67ef90b8a6d6: [caption=(File: hello_world, Elf), attributes=(AttributesType[FilesystemEntry], Magic), global_offset=(0x0-0x4020), parent_offset=(0x0-0x0), data_hash=f5cd0893]\n", + "├────983096a34da149daa8c65d378e109ae3: [caption=(ElfBasicHeader), attributes=(Data, AttributesType[ElfBasicHeader]), global_offset=(0x0-0x10), parent_offset=(0x0-0x10), data_hex=7f454c46020101000000000000000000]\n", + "├────bff4ac13993b44b9ab74c93b7a6735ce: [caption=(ElfHeader), attributes=(Data, AttributesType[ElfHeader]), global_offset=(0x10-0x40), parent_offset=(0x10-0x40), data_hex=02003e000100000040104000000000004000000000000000e03800000000000000000000400038000b0040001d001c00]\n", + "├────eec4b8662f584c758dc95684f0c5b542: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x38e0-0x3920), parent_offset=(0x38e0-0x3920), data_hex=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]\n", + "├────2f742a92b98644129418aeac07fee851: [caption=(ElfSection), attributes=(AttributesType[ElfSectionStructure])]\n", + "├────fbc45cbf43034f7bab865b92e30f48e4: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3920-0x3960), parent_offset=(0x3920-0x3960), data_hex=1b000000010000000200000000000000a802400000000000a8020000000000001c00000000000000000000000000000001000000000000000000000000000000]\n", + "├────b9acbca9ba5844cb97b536a8451275bc: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2a8-0x2c4), parent_offset=(0x2a8-0x2c4), data_hex=2f6c696236342f6c642d6c696e75782d7838362d36342e736f2e3200]\n", + "├────ba61ef91e8124d8eb1b79b081bc57284: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3960-0x39a0), parent_offset=(0x3960-0x39a0), data_hex=23000000070000000200000000000000c402400000000000c4020000000000002400000000000000000000000000000004000000000000000000000000000000]\n", + "├────507bb08240904dc785e7c328c54cbbdc: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2c4-0x2e8), parent_offset=(0x2c4-0x2e8), data_hex=040000001400000003000000474e550017fb4e8bc7504a89fa3603690cb745adfd747237]\n", + "├────4b27823bf6994068a1f68ee6757551fe: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x39a0-0x39e0), parent_offset=(0x39a0-0x39e0), data_hex=36000000070000000200000000000000e802400000000000e8020000000000002000000000000000000000000000000004000000000000000000000000000000]\n", + "├────50123010c4cc4ffdb632f20b0f6e1e3a: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e8-0x308), parent_offset=(0x2e8-0x308), data_hex=040000001000000001000000474e550000000000030000000200000000000000]\n", + "├────0a07da2ed3b144daa19c012e82c8f374: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x39e0-0x3a20), parent_offset=(0x39e0-0x3a20), data_hex=44000000f6ffff6f0200000000000000080340000000000008030000000000001c00000000000000050000000000000008000000000000000000000000000000]\n", + "├────51566b08303b4b6dad9aba60daec376f: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x308-0x324), parent_offset=(0x308-0x324), data_hex=01000000010000000100000000000000000000000000000000000000]\n", + "├────45212060af7c475f969406419c86ce35: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3a20-0x3a60), parent_offset=(0x3a20-0x3a60), data_hex=4e0000000b0000000200000000000000280340000000000028030000000000006000000000000000060000000100000008000000000000001800000000000000]\n", + "├───┬4e749e4a7e1143d8b0f646bf57ba622d: [caption=(ElfDynSymbolSection: .dynsym), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[NamedProgramSection], AttributesType[MemoryRegion], AttributesType[Addressable]), global_offset=(0x328-0x388), parent_offset=(0x328-0x388), data_hex=0000000000000000000000000000000000000000000000000100000012000000000000000000000000000000000000000600000012000000000000000000000000000000000000002e0000002000000000000000000000000000000000000000]\n", + "│ ├────d5b4db243e524a26acfda71521b14395: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x328-0x340), parent_offset=(0x0-0x18), data_hex=000000000000000000000000000000000000000000000000]\n", + "│ ├────9d9a0decf49244ea9a5be5d2153ed25d: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x340-0x358), parent_offset=(0x18-0x30), data_hex=010000001200000000000000000000000000000000000000]\n", + "│ ├────4a5b02290d6a4ae38ac43b4906bcccd4: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x358-0x370), parent_offset=(0x30-0x48), data_hex=060000001200000000000000000000000000000000000000]\n", + "│ └────beadb4f638fc496196e59923e5d20159: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x370-0x388), parent_offset=(0x48-0x60), data_hex=2e0000002000000000000000000000000000000000000000]\n", + "├────9924d03432e74d99a097b0b546e36bfe: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3a60-0x3aa0), parent_offset=(0x3a60-0x3aa0), data_hex=56000000030000000200000000000000880340000000000088030000000000003d00000000000000000000000000000001000000000000000000000000000000]\n", + "├────bf2d7566366b4a55ab5f87e56bd0b834: [caption=(ElfSection, ElfStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x388-0x3c5), parent_offset=(0x388-0x3c5), data_hex=0070757473005f5f6c6962635f73746172745f6d61696e006c6962632e736f2e3600474c4942435f322e322e35005f5f676d6f6e5f73746172745f5f00]\n", + "├────8654761e2bc04cf78b8a9090f4ae9976: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3aa0-0x3ae0), parent_offset=(0x3aa0-0x3ae0), data_hex=5e000000ffffff6f0200000000000000c603400000000000c6030000000000000800000000000000050000000000000002000000000000000200000000000000]\n", + "├────11a71aaa02cc42a095cbb839cd474ea1: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3c6-0x3ce), parent_offset=(0x3c6-0x3ce), data_hex=0000020002000000]\n", + "├────0c6c3494f6f6478ead7751753b4c6de9: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ae0-0x3b20), parent_offset=(0x3ae0-0x3b20), data_hex=6b000000feffff6f0200000000000000d003400000000000d0030000000000002000000000000000060000000100000008000000000000000000000000000000]\n", + "├────d037b4a7352b4bb99a4109307cbc6509: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3d0-0x3f0), parent_offset=(0x3d0-0x3f0), data_hex=01000100180000001000000000000000751a6909000002002200000000000000]\n", + "├────e11e655e61a84675a618d80d1050934f: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3b20-0x3b60), parent_offset=(0x3b20-0x3b60), data_hex=7a000000040000000200000000000000f003400000000000f0030000000000003000000000000000050000000000000008000000000000001800000000000000]\n", + "├───┬3af89663e1e3442699f3f8ec16a396b9: [caption=(ElfRelaSection: .rela.dyn), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[NamedProgramSection], AttributesType[MemoryRegion], AttributesType[Addressable]), global_offset=(0x3f0-0x420), parent_offset=(0x3f0-0x420), data_hex=f03f40000000000006000000020000000000000000000000f83f40000000000006000000030000000000000000000000]\n", + "│ ├────c47496030ee441efa3eb03273eb220d6: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x3f0-0x408), parent_offset=(0x0-0x18), data_hex=f03f40000000000006000000020000000000000000000000]\n", + "│ └────4382dd6197804ec885e90c53b863fb28: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x408-0x420), parent_offset=(0x18-0x30), data_hex=f83f40000000000006000000030000000000000000000000]\n", + "├────931a4615cec24acb8bdbc1eceda02155: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3b60-0x3ba0), parent_offset=(0x3b60-0x3ba0), data_hex=84000000040000004200000000000000200440000000000020040000000000001800000000000000050000001600000008000000000000001800000000000000]\n", + "├───┬70c34d4853c54f87b6dda12362a6096e: [caption=(ElfRelaSection: .rela.plt), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[NamedProgramSection], AttributesType[MemoryRegion], AttributesType[Addressable]), global_offset=(0x420-0x438), parent_offset=(0x420-0x438), data_hex=184040000000000007000000010000000000000000000000]\n", + "│ └────203d00ee4bec483fbea7e371c760c255: [caption=(ElfRelaEntry), attributes=(Data), global_offset=(0x420-0x438), parent_offset=(0x0-0x18), data_hex=184040000000000007000000010000000000000000000000]\n", + "├────6487d0078e7741c18139125516de1c15: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ba0-0x3be0), parent_offset=(0x3ba0-0x3be0), data_hex=8e000000010000000600000000000000001040000000000000100000000000001700000000000000000000000000000004000000000000000000000000000000]\n", + "├────864b2bbf22524fe7b686ae41e234518d: [caption=(CodeRegion, ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1000-0x1017), parent_offset=(0x1000-0x1017), data_hex=4883ec08488b05ed2f00004885c07402ffd04883c408c3]\n", + "├────3f241bee1ca344b4a9da529df255a59e: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3be0-0x3c20), parent_offset=(0x3be0-0x3c20), data_hex=89000000010000000600000000000000201040000000000020100000000000002000000000000000000000000000000010000000000000001000000000000000]\n", + "├────06806edc25954d3fa764e019556cd2de: [caption=(CodeRegion, ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1020-0x1040), parent_offset=(0x1020-0x1040), data_hex=ff35e22f0000ff25e42f00000f1f4000ff25e22f00006800000000e9e0ffffff]\n", + "├────d6a0926169d34ab588da0e974b582c5a: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3c20-0x3c60), parent_offset=(0x3c20-0x3c60), data_hex=94000000010000000600000000000000401040000000000040100000000000006101000000000000000000000000000010000000000000000000000000000000]\n", + "├────b18cd7cd86c14b2286bc6c2dde7cefd6: [caption=(CodeRegion, ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x1040-0x11a1), parent_offset=(0x1040-0x11a1), data_hash=1eeedffe]\n", + "├────9ed4d1c9c9f845b88daee4e74a235d63: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3c60-0x3ca0), parent_offset=(0x3c60-0x3ca0), data_hex=9a000000010000000600000000000000a411400000000000a4110000000000000900000000000000000000000000000004000000000000000000000000000000]\n", + "├────30bb22f4cc284590a2ff5f47ff31a5ba: [caption=(CodeRegion, ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x11a4-0x11ad), parent_offset=(0x11a4-0x11ad), data_hex=4883ec084883c408c3]\n", + "├────ecf12c323abd459ca83ee70a1e3b8bb3: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ca0-0x3ce0), parent_offset=(0x3ca0-0x3ce0), data_hex=a0000000010000000200000000000000002040000000000000200000000000001200000000000000000000000000000004000000000000000000000000000000]\n", + "├────fcf40686f55042f8aa53a62e74fb375f: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2000-0x2012), parent_offset=(0x2000-0x2012), data_hex=0100020048656c6c6f2c20576f726c642100]\n", + "├────0ba4b0513599410685b2e8038160fcdb: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ce0-0x3d20), parent_offset=(0x3ce0-0x3d20), data_hex=a8000000010000000200000000000000142040000000000014200000000000003c00000000000000000000000000000004000000000000000000000000000000]\n", + "├────611bc17f2c7a447491b3af59f6a34a09: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2014-0x2050), parent_offset=(0x2014-0x2050), data_hex=011b033b38000000060000000cf0ffff940000002cf0ffff540000005cf0ffff800000000ef1ffffbc0000002cf1ffffdc0000008cf1ffff24010000]\n", + "├────c8003065a6544171bd97a4e0cb71d7d6: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3d20-0x3d60), parent_offset=(0x3d20-0x3d60), data_hex=b6000000010000000200000000000000502040000000000050200000000000000001000000000000000000000000000008000000000000000000000000000000]\n", + "├────18d1c01565d841ad972d446e7c0d163e: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2050-0x2150), parent_offset=(0x2050-0x2150), data_hash=ef716b33]\n", + "├────0665de0e04eb40969acf879a07a6bf52: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3d60-0x3da0), parent_offset=(0x3d60-0x3da0), data_hex=c00000000e0000000300000000000000103e400000000000102e0000000000000800000000000000000000000000000008000000000000000800000000000000]\n", + "├───┬d3a7c73a1b6b439698e9b7cc467570c8: [caption=(ElfInitArraySection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e10-0x2e18), parent_offset=(0x2e10-0x2e18), data_hex=2011400000000000]\n", + "│ └────8b9b2ea115a146afa77a2351308179db: [caption=(ElfVirtualAddress), attributes=(Data), global_offset=(0x2e10-0x2e18), parent_offset=(0x0-0x8), data_hex=2011400000000000]\n", + "├────7e2fd8b69c2745498d836e55ccadd4e0: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3da0-0x3de0), parent_offset=(0x3da0-0x3de0), data_hex=cc0000000f0000000300000000000000183e400000000000182e0000000000000800000000000000000000000000000008000000000000000800000000000000]\n", + "├───┬c48bb9f04e7249d9a362080fd72c1224: [caption=(ElfFiniArraySection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2e18-0x2e20), parent_offset=(0x2e18-0x2e20), data_hex=f010400000000000]\n", + "│ └────2ece07e43def49f4b62b18ec5ee7b7bc: [caption=(ElfVirtualAddress), attributes=(Data), global_offset=(0x2e18-0x2e20), parent_offset=(0x0-0x8), data_hex=f010400000000000]\n", + "├────7ae0b307624c4edd8bf286abf4d1550e: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3de0-0x3e20), parent_offset=(0x3de0-0x3e20), data_hex=d8000000060000000300000000000000203e400000000000202e000000000000d001000000000000060000000000000008000000000000001000000000000000]\n", + "├───┬2b29e162fef842729b355bbae7bc415c: [caption=(ElfDynamicSection: .dynamic), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[NamedProgramSection], AttributesType[MemoryRegion], AttributesType[Addressable]), global_offset=(0x2e20-0x2ff0), parent_offset=(0x2e20-0x2ff0), data_hash=4438de54]\n", + "│ ├────574baf70c8964009b1b58e5b57e4a359: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e20-0x2e30), parent_offset=(0x0-0x10), data_hex=01000000000000001800000000000000]\n", + "│ ├────794cf28dd37a47118376e66bf52ca722: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e30-0x2e40), parent_offset=(0x10-0x20), data_hex=0c000000000000000010400000000000]\n", + "│ ├────0525f346344343d98672691c9f1b0f59: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e40-0x2e50), parent_offset=(0x20-0x30), data_hex=0d00000000000000a411400000000000]\n", + "│ ├────182cf0879be84505a97f5182c970a3a1: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e50-0x2e60), parent_offset=(0x30-0x40), data_hex=1900000000000000103e400000000000]\n", + "│ ├────d79e4cf997dc48c881fb7a507b0c5e01: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e60-0x2e70), parent_offset=(0x40-0x50), data_hex=1b000000000000000800000000000000]\n", + "│ ├────ed19b31ae7a3476cb2e471904a63c858: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e70-0x2e80), parent_offset=(0x50-0x60), data_hex=1a00000000000000183e400000000000]\n", + "│ ├────c40defd90fb341cea4a012e35068c99d: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e80-0x2e90), parent_offset=(0x60-0x70), data_hex=1c000000000000000800000000000000]\n", + "│ ├────93048e8bd4d34996a9ae66adeea9872d: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2e90-0x2ea0), parent_offset=(0x70-0x80), data_hex=f5feff6f000000000803400000000000]\n", + "│ ├────8fc797372074448e86e0d8cde00a6804: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ea0-0x2eb0), parent_offset=(0x80-0x90), data_hex=05000000000000008803400000000000]\n", + "│ ├────70023116976444d9abfd26e7f83a8822: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2eb0-0x2ec0), parent_offset=(0x90-0xa0), data_hex=06000000000000002803400000000000]\n", + "│ ├────18bded30c0754176a15d61d0ed98c15c: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ec0-0x2ed0), parent_offset=(0xa0-0xb0), data_hex=0a000000000000003d00000000000000]\n", + "│ ├────9f2972e46cd348a9b21cf9ff66c62d84: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ed0-0x2ee0), parent_offset=(0xb0-0xc0), data_hex=0b000000000000001800000000000000]\n", + "│ ├────bf4a503e5c6246e3a4e911f8298e7b52: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ee0-0x2ef0), parent_offset=(0xc0-0xd0), data_hex=15000000000000000000000000000000]\n", + "│ ├────62c370d791014e5abdba9a522df19a0c: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2ef0-0x2f00), parent_offset=(0xd0-0xe0), data_hex=03000000000000000040400000000000]\n", + "│ ├────2c9c3e1048564edba89a9b1d4f26e9c0: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f00-0x2f10), parent_offset=(0xe0-0xf0), data_hex=02000000000000001800000000000000]\n", + "│ ├────b3b1a4a71c6a41f2a5ecc4950203c389: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f10-0x2f20), parent_offset=(0xf0-0x100), data_hex=14000000000000000700000000000000]\n", + "│ ├────cda0b21c814346a28045f80fd2da68cb: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f20-0x2f30), parent_offset=(0x100-0x110), data_hex=17000000000000002004400000000000]\n", + "│ ├────3a7f65c7aecc40f9bc242a2cbd8a6a21: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f30-0x2f40), parent_offset=(0x110-0x120), data_hex=0700000000000000f003400000000000]\n", + "│ ├────32fd22b8054c4e4193c410c3b030d7fd: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f40-0x2f50), parent_offset=(0x120-0x130), data_hex=08000000000000003000000000000000]\n", + "│ ├────f8c5954b6e5c4682beb2dbfcc7f5123e: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f50-0x2f60), parent_offset=(0x130-0x140), data_hex=09000000000000001800000000000000]\n", + "│ ├────c534273516544158ae6ee1f0f762ff00: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f60-0x2f70), parent_offset=(0x140-0x150), data_hex=feffff6f00000000d003400000000000]\n", + "│ ├────be270d96bf2040179d96d86392b3d756: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f70-0x2f80), parent_offset=(0x150-0x160), data_hex=ffffff6f000000000100000000000000]\n", + "│ ├────445e9e2477cd4e908ac05486212a4afb: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f80-0x2f90), parent_offset=(0x160-0x170), data_hex=f0ffff6f00000000c603400000000000]\n", + "│ ├────cd9cbec512ad42168c7a002332b3ab6e: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2f90-0x2fa0), parent_offset=(0x170-0x180), data_hex=00000000000000000000000000000000]\n", + "│ ├────91c8e9212e2a44d38d18ab19720c0518: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fa0-0x2fb0), parent_offset=(0x180-0x190), data_hex=00000000000000000000000000000000]\n", + "│ ├────c85a08bf5f264ff1a125966666238b7f: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fb0-0x2fc0), parent_offset=(0x190-0x1a0), data_hex=00000000000000000000000000000000]\n", + "│ ├────2acc5cc2727041078c73b446d6bb41e5: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fc0-0x2fd0), parent_offset=(0x1a0-0x1b0), data_hex=00000000000000000000000000000000]\n", + "│ ├────2f6bdd1527a94066b2f7acc6850e3939: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fd0-0x2fe0), parent_offset=(0x1b0-0x1c0), data_hex=00000000000000000000000000000000]\n", + "│ └────05d03390d2864d01ace74d257f59684e: [caption=(ElfDynamicEntry), attributes=(Data), global_offset=(0x2fe0-0x2ff0), parent_offset=(0x1c0-0x1d0), data_hex=00000000000000000000000000000000]\n", + "├────cf7e0b0bd3fe4c06aaa91bb14b438310: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3e20-0x3e60), parent_offset=(0x3e20-0x3e60), data_hex=e1000000010000000300000000000000f03f400000000000f02f0000000000001000000000000000000000000000000008000000000000000800000000000000]\n", + "├────8bd20e3a826a478482be09aca2d9b0af: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x2ff0-0x3000), parent_offset=(0x2ff0-0x3000), data_hex=00000000000000000000000000000000]\n", + "├────8d4b6045b8b24f7f85d286722eba05e2: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3e60-0x3ea0), parent_offset=(0x3e60-0x3ea0), data_hex=e6000000010000000300000000000000004040000000000000300000000000002000000000000000000000000000000008000000000000000800000000000000]\n", + "├────ac8b422f828448928fed357424d9f776: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3000-0x3020), parent_offset=(0x3000-0x3020), data_hex=203e400000000000000000000000000000000000000000003610400000000000]\n", + "├────16e661e0cf054d54acd6d4c691f62c46: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ea0-0x3ee0), parent_offset=(0x3ea0-0x3ee0), data_hex=ef000000010000000300000000000000204040000000000020300000000000001000000000000000000000000000000008000000000000000000000000000000]\n", + "├────55955c5034a94af880451e0df3f0add0: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3020-0x3030), parent_offset=(0x3020-0x3030), data_hex=00000000000000000000000000000000]\n", + "├────2ed9be0bd7c54b429dd07c4dae6cb273: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3ee0-0x3f20), parent_offset=(0x3ee0-0x3f20), data_hex=f5000000080000000300000000000000304040000000000030300000000000000800000000000000000000000000000001000000000000000000000000000000]\n", + "├────2b4ebdca55224ee28801ae3870da814a: [caption=(ElfSection), attributes=(AttributesType[ElfSectionStructure])]\n", + "├────7f631aeb90214f4ba31523b5ad48cc51: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3f20-0x3f60), parent_offset=(0x3f20-0x3f60), data_hex=fa000000010000003000000000000000000000000000000030300000000000002700000000000000000000000000000001000000000000000100000000000000]\n", + "├────e9982a0dcd0b4c8385edcdf56bee047b: [caption=(ElfSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3030-0x3057), parent_offset=(0x3030-0x3057), data_hex=4743433a202844656269616e2031302e322e312d36292031302e322e3120323032313031313000]\n", + "├────cfb0970d896c4d728aaf32258fcfb111: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3f60-0x3fa0), parent_offset=(0x3f60-0x3fa0), data_hex=0100000002000000000000000000000000000000000000005830000000000000b8050000000000001b0000002b00000008000000000000001800000000000000]\n", + "├───┬f91387d67ebd4c9cb4c115a94b35bd67: [caption=(ElfSymbolSection: .symtab), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[NamedProgramSection], AttributesType[MemoryRegion], AttributesType[Addressable]), global_offset=(0x3058-0x3610), parent_offset=(0x3058-0x3610), data_hash=f6bc0737]\n", + "│ ├────bea52408e038445bbf3d1262d7b1dd97: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3058-0x3070), parent_offset=(0x0-0x18), data_hex=000000000000000000000000000000000000000000000000]\n", + "│ ├────3c0df42eb1f34137badcfe83a854f223: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3070-0x3088), parent_offset=(0x18-0x30), data_hex=0000000003000100a8024000000000000000000000000000]\n", + "│ ├────029d9a08b74d4bb6abcecef81d128980: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3088-0x30a0), parent_offset=(0x30-0x48), data_hex=0000000003000200c4024000000000000000000000000000]\n", + "│ ├────ae4ee7882edb4334bac9ebed718eb3f7: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30a0-0x30b8), parent_offset=(0x48-0x60), data_hex=0000000003000300e8024000000000000000000000000000]\n", + "│ ├────d1aa0a91f0fa439fb2696d29cef76301: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30b8-0x30d0), parent_offset=(0x60-0x78), data_hex=000000000300040008034000000000000000000000000000]\n", + "│ ├────946af56d304b482ba52a2de9f449a91c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30d0-0x30e8), parent_offset=(0x78-0x90), data_hex=000000000300050028034000000000000000000000000000]\n", + "│ ├────7d1798e9fda645dd8658de35cccbbb28: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x30e8-0x3100), parent_offset=(0x90-0xa8), data_hex=000000000300060088034000000000000000000000000000]\n", + "│ ├────1b8dffc15be04c7daa8ace944288a7f4: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3100-0x3118), parent_offset=(0xa8-0xc0), data_hex=0000000003000700c6034000000000000000000000000000]\n", + "│ ├────0896f3a0c9bd4fed94a40a98dbb9a11d: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3118-0x3130), parent_offset=(0xc0-0xd8), data_hex=0000000003000800d0034000000000000000000000000000]\n", + "│ ├────c72e8e9201c1476db39e4e27cc7a0dbb: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3130-0x3148), parent_offset=(0xd8-0xf0), data_hex=0000000003000900f0034000000000000000000000000000]\n", + "│ ├────840baa2351e04babbc850c723db52414: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3148-0x3160), parent_offset=(0xf0-0x108), data_hex=0000000003000a0020044000000000000000000000000000]\n", + "│ ├────651fbab285f1429d9d57a86a7ff45c76: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3160-0x3178), parent_offset=(0x108-0x120), data_hex=0000000003000b0000104000000000000000000000000000]\n", + "│ ├────08d9ed15624248fcb79104882d79c0a0: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3178-0x3190), parent_offset=(0x120-0x138), data_hex=0000000003000c0020104000000000000000000000000000]\n", + "│ ├────bdfce445497042f6870590b13d91a871: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3190-0x31a8), parent_offset=(0x138-0x150), data_hex=0000000003000d0040104000000000000000000000000000]\n", + "│ ├────94c448a33a6541029e6dd943a7348d65: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31a8-0x31c0), parent_offset=(0x150-0x168), data_hex=0000000003000e00a4114000000000000000000000000000]\n", + "│ ├────2af8af8f55ab4d56bdb2997865eefd65: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31c0-0x31d8), parent_offset=(0x168-0x180), data_hex=0000000003000f0000204000000000000000000000000000]\n", + "│ ├────34fc1aa1c2b645b78c5a9b8fd897391c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31d8-0x31f0), parent_offset=(0x180-0x198), data_hex=000000000300100014204000000000000000000000000000]\n", + "│ ├────a941d25e9bc548fca6bbd3866c40bf32: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x31f0-0x3208), parent_offset=(0x198-0x1b0), data_hex=000000000300110050204000000000000000000000000000]\n", + "│ ├────64ea572aa1f746ddbe862ee8d371d9b1: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3208-0x3220), parent_offset=(0x1b0-0x1c8), data_hex=0000000003001200103e4000000000000000000000000000]\n", + "│ ├────807046db8b6d4f29901c1f05994f893c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3220-0x3238), parent_offset=(0x1c8-0x1e0), data_hex=0000000003001300183e4000000000000000000000000000]\n", + "│ ├────04b5ffcd668e494fab9afacdd929eb5f: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3238-0x3250), parent_offset=(0x1e0-0x1f8), data_hex=0000000003001400203e4000000000000000000000000000]\n", + "│ ├────91831028b78d4b4fa463df8912561626: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3250-0x3268), parent_offset=(0x1f8-0x210), data_hex=0000000003001500f03f4000000000000000000000000000]\n", + "│ ├────7543ccb848ae440d87838f3bc961d01a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3268-0x3280), parent_offset=(0x210-0x228), data_hex=000000000300160000404000000000000000000000000000]\n", + "│ ├────bcc5eed8fb984b72828154971c7ea243: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3280-0x3298), parent_offset=(0x228-0x240), data_hex=000000000300170020404000000000000000000000000000]\n", + "│ ├────a2b0593a5fd441e9860a16e23b5835bd: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3298-0x32b0), parent_offset=(0x240-0x258), data_hex=000000000300180030404000000000000000000000000000]\n", + "│ ├────98d49146d0304e99b8ef3046d94d35c8: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32b0-0x32c8), parent_offset=(0x258-0x270), data_hex=000000000300190000000000000000000000000000000000]\n", + "│ ├────1d67c5e3eaf845349d8e5866d6b8ffa1: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32c8-0x32e0), parent_offset=(0x270-0x288), data_hex=010000000400f1ff00000000000000000000000000000000]\n", + "│ ├────c294b11b8b2849d997e98fc63aa372d8: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32e0-0x32f8), parent_offset=(0x288-0x2a0), data_hex=0c00000002000d0080104000000000000000000000000000]\n", + "│ ├────c5cd68a7d6cd4bc78af67f9842d31ec6: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x32f8-0x3310), parent_offset=(0x2a0-0x2b8), data_hex=0e00000002000d00b0104000000000000000000000000000]\n", + "│ ├────abe4a9891bd548b0a103041c94aa89f9: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3310-0x3328), parent_offset=(0x2b8-0x2d0), data_hex=2100000002000d00f0104000000000000000000000000000]\n", + "│ ├────95f85e7c94654232b5f940d9d1d04d18: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3328-0x3340), parent_offset=(0x2d0-0x2e8), data_hex=370000000100180030404000000000000100000000000000]\n", + "│ ├────aa28727d65dc49be969479967203caba: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3340-0x3358), parent_offset=(0x2e8-0x300), data_hex=4300000001001300183e4000000000000000000000000000]\n", + "│ ├────21b6eeae52ff4b6aa4f2c4383d53c77a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3358-0x3370), parent_offset=(0x300-0x318), data_hex=6a00000002000d0020114000000000000000000000000000]\n", + "│ ├────926011c8d73847579365448aac9cf68b: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3370-0x3388), parent_offset=(0x318-0x330), data_hex=7600000001001200103e4000000000000000000000000000]\n", + "│ ├────cb62379a2779439d9761ae642d465bc9: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3388-0x33a0), parent_offset=(0x330-0x348), data_hex=950000000400f1ff00000000000000000000000000000000]\n", + "│ ├────3fdf500c6bbf48a79a336432d2ed86cc: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33a0-0x33b8), parent_offset=(0x348-0x360), data_hex=010000000400f1ff00000000000000000000000000000000]\n", + "│ ├────c9adeae59b5c45d4a0ccc2c31b920a05: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33b8-0x33d0), parent_offset=(0x360-0x378), data_hex=a3000000010011004c214000000000000000000000000000]\n", + "│ ├────7e3e6e00a1aa40609c6627686fd8ffc5: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33d0-0x33e8), parent_offset=(0x378-0x390), data_hex=000000000400f1ff00000000000000000000000000000000]\n", + "│ ├────2853ff4fa52645c5aebbcd89619eb903: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x33e8-0x3400), parent_offset=(0x390-0x3a8), data_hex=b100000000001200183e4000000000000000000000000000]\n", + "│ ├────572ea487ef8548709244f682d1932c47: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3400-0x3418), parent_offset=(0x3a8-0x3c0), data_hex=c200000001001400203e4000000000000000000000000000]\n", + "│ ├────ab6bc3a6b1f04d30bd70cbcddd0b0bf0: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3418-0x3430), parent_offset=(0x3c0-0x3d8), data_hex=cb00000000001200103e4000000000000000000000000000]\n", + "│ ├────c81901f0af7a49e1a7859a0e041b3c76: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3430-0x3448), parent_offset=(0x3d8-0x3f0), data_hex=de0000000000100014204000000000000000000000000000]\n", + "│ ├────68bc4e34defa4944aa3789d5846adfba: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3448-0x3460), parent_offset=(0x3f0-0x408), data_hex=f10000000100160000404000000000000000000000000000]\n", + "│ ├────8fbc1be743a540d989cafad56f9f635e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3460-0x3478), parent_offset=(0x408-0x420), data_hex=0701000012000d00a0114000000000000100000000000000]\n", + "│ ├────2aa7d42527874b2a8b163f3436ed7315: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3478-0x3490), parent_offset=(0x420-0x438), data_hex=4f0100002000170020404000000000000000000000000000]\n", + "│ ├────24b9504458f1464bab539f3a86b4be05: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3490-0x34a8), parent_offset=(0x438-0x450), data_hex=170100001200000000000000000000000000000000000000]\n", + "│ ├────f2d144fb82e645f9a7a5dc04b7649de6: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34a8-0x34c0), parent_offset=(0x450-0x468), data_hex=280100001000170030404000000000000000000000000000]\n", + "│ ├────c90080d1376448c49d92d0f079f68863: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34c0-0x34d8), parent_offset=(0x468-0x480), data_hex=1101000012020e00a4114000000000000000000000000000]\n", + "│ ├────e9ab222ca4be48bda7ecda36e6e0d18e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34d8-0x34f0), parent_offset=(0x480-0x498), data_hex=2f0100001200000000000000000000000000000000000000]\n", + "│ ├────50c77ceda355423698e829f406b49e60: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x34f0-0x3508), parent_offset=(0x498-0x4b0), data_hex=4d0100001000170020404000000000000000000000000000]\n", + "│ ├────f3a8996f30db4ce58817d674b14e5ffe: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3508-0x3520), parent_offset=(0x4b0-0x4c8), data_hex=5a0100002000000000000000000000000000000000000000]\n", + "│ ├────eacd79b6ff40496ea5b2f1526bcffd23: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3520-0x3538), parent_offset=(0x4c8-0x4e0), data_hex=690100001102170028404000000000000000000000000000]\n", + "│ ├────bfd317bc91d443e78d66d829bc645f2c: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3538-0x3550), parent_offset=(0x4e0-0x4f8), data_hex=7601000011000f0000204000000000000400000000000000]\n", + "│ ├────da006edbe2b0428fae3631fb89e8b585: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3550-0x3568), parent_offset=(0x4f8-0x510), data_hex=8501000012000d0040114000000000005d00000000000000]\n", + "│ ├────daffdd5002c749f89bbd8154da4aa549: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3568-0x3580), parent_offset=(0x510-0x528), data_hex=bd0000001000180038404000000000000000000000000000]\n", + "│ ├────9b5f6d46336c4df8a8cc7c83936637d1: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3580-0x3598), parent_offset=(0x528-0x540), data_hex=9501000012020d0070104000000000000100000000000000]\n", + "│ ├────47857a9d9bdc4ca593d04bd6e70fca3a: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x3598-0x35b0), parent_offset=(0x540-0x558), data_hex=5301000012000d0040104000000000002b00000000000000]\n", + "│ ├────84b1c16bb64444b6afbd06d318ad0668: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35b0-0x35c8), parent_offset=(0x558-0x570), data_hex=ad0100001000180030404000000000000000000000000000]\n", + "│ ├────4821acf5f6bc4ce08925b965f82be4ff: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35c8-0x35e0), parent_offset=(0x570-0x588), data_hex=b901000012000d0022114000000000001700000000000000]\n", + "│ ├────1e6bc715d8bb4303828f8e9d52d7097e: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35e0-0x35f8), parent_offset=(0x588-0x5a0), data_hex=be0100001102170030404000000000000000000000000000]\n", + "│ └────a00710a95c854e329365b6e1b71f95bc: [caption=(ElfSymbol), attributes=(Data, AttributesType[ElfSymbolStructure]), global_offset=(0x35f8-0x3610), parent_offset=(0x5a0-0x5b8), data_hex=8f01000012020b0000104000000000000000000000000000]\n", + "├────3a9c1a3b56fe4fa8a9e0278830fad5cf: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3fa0-0x3fe0), parent_offset=(0x3fa0-0x3fe0), data_hex=0900000003000000000000000000000000000000000000001036000000000000ca01000000000000000000000000000001000000000000000000000000000000]\n", + "├────d3592293824a4143b9b8ccb7c6e11075: [caption=(ElfSection, ElfStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x3610-0x37da), parent_offset=(0x3610-0x37da), data_hash=800e56e9]\n", + "├────86b54781e13847f6a92ccee8265f892a: [caption=(ElfSectionHeader), attributes=(Data, AttributesType[ElfSectionStructure], AttributesType[ElfSectionHeader]), global_offset=(0x3fe0-0x4020), parent_offset=(0x3fe0-0x4020), data_hex=110000000300000000000000000000000000000000000000da370000000000000301000000000000000000000000000001000000000000000000000000000000]\n", + "├────1eed3692afa5448490d7483b51747523: [caption=(ElfSection, ElfSectionNameStringSection), attributes=(Data, AttributesType[ElfSectionStructure]), global_offset=(0x37da-0x38dd), parent_offset=(0x37da-0x38dd), data_hash=6db41dea]\n", + "├────c6b768505aa143bbb3c9bd1ddb327d7c: [caption=(ElfProgramHeader: PHDR, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x40-0x78), parent_offset=(0x40-0x78), data_hex=0600000004000000400000000000000040004000000000004000400000000000680200000000000068020000000000000800000000000000]\n", + "├────35ecd448afa8412dae0da90acd2cc544: [caption=(ElfProgramHeader: INTERP, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x78-0xb0), parent_offset=(0x78-0xb0), data_hex=0300000004000000a802000000000000a802400000000000a8024000000000001c000000000000001c000000000000000100000000000000]\n", + "├────edb40ae550874aa4aabca7ad084b4482: [caption=(ElfProgramHeader: LOAD, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0xb0-0xe8), parent_offset=(0xb0-0xe8), data_hex=0100000004000000000000000000000000004000000000000000400000000000380400000000000038040000000000000010000000000000]\n", + "├────2fc5220cf4c84caf80bf8d0b3c9aa955: [caption=(ElfProgramHeader: LOAD, RX), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0xe8-0x120), parent_offset=(0xe8-0x120), data_hex=0100000005000000001000000000000000104000000000000010400000000000ad01000000000000ad010000000000000010000000000000]\n", + "├────c5f79f29f586479d8b576459f3cd500b: [caption=(ElfProgramHeader: LOAD, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x120-0x158), parent_offset=(0x120-0x158), data_hex=0100000004000000002000000000000000204000000000000020400000000000500100000000000050010000000000000010000000000000]\n", + "├────2f309fda2f97478f950dd1087eb48966: [caption=(ElfProgramHeader: LOAD, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x158-0x190), parent_offset=(0x158-0x190), data_hex=0100000006000000102e000000000000103e400000000000103e400000000000200200000000000028020000000000000010000000000000]\n", + "├────9b405e6cfaba45ba9064f6501c9982e6: [caption=(ElfProgramHeader: DYNAMIC, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x190-0x1c8), parent_offset=(0x190-0x1c8), data_hex=0200000006000000202e000000000000203e400000000000203e400000000000d001000000000000d0010000000000000800000000000000]\n", + "├────91212a31a4bf443c9553276c9cdcde8f: [caption=(ElfProgramHeader: NOTE, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x1c8-0x200), parent_offset=(0x1c8-0x200), data_hex=0400000004000000c402000000000000c402400000000000c402400000000000440000000000000044000000000000000400000000000000]\n", + "├────30fae78983f54872a2e4545443fecbb4: [caption=(ElfProgramHeader: GNU_EH_FRAME, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x200-0x238), parent_offset=(0x200-0x238), data_hex=50e57464040000001420000000000000142040000000000014204000000000003c000000000000003c000000000000000400000000000000]\n", + "├────f24f7d2b7d3742808c2aed5c3c406bc1: [caption=(ElfProgramHeader: GNU_STACK, RW), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x238-0x270), parent_offset=(0x238-0x270), data_hex=51e5746406000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000]\n", + "└────79f29143b71d496a94689bd641d9023e: [caption=(ElfProgramHeader: GNU_RELRO, R), attributes=(Data, AttributesType[ElfSegmentStructure], AttributesType[ElfProgramHeader]), global_offset=(0x270-0x2a8), parent_offset=(0x270-0x2a8), data_hex=52e5746404000000102e000000000000103e400000000000103e400000000000f001000000000000f0010000000000000100000000000000]\n", "\n" ] } @@ -428,10 +436,10 @@ { "data": { "text/plain": [ - "[Resource(resource_id=59f70c17c0a742ec90206013dea49773, tag=[ElfSection,NamedProgramSection,CodeRegion,ElfSectionStructure,ProgramSection,Addressable,MemoryRegion], data=59f70c17c0a742ec90206013dea49773),\n", - " Resource(resource_id=72ed80a0f46c4b5ab2cddb3c5eea86b0, tag=[ElfSection,NamedProgramSection,CodeRegion,ElfSectionStructure,ProgramSection,Addressable,MemoryRegion], data=72ed80a0f46c4b5ab2cddb3c5eea86b0),\n", - " Resource(resource_id=64983f9ba7204ed494b99944ab3d0ff3, tag=[ElfSection,NamedProgramSection,CodeRegion,ElfSectionStructure,ProgramSection,Addressable,MemoryRegion], data=64983f9ba7204ed494b99944ab3d0ff3),\n", - " Resource(resource_id=c0753d43a8e84b8d85dc13fd217f7a88, tag=[ElfSection,NamedProgramSection,CodeRegion,ElfSectionStructure,ProgramSection,Addressable,MemoryRegion], data=c0753d43a8e84b8d85dc13fd217f7a88)]" + "[Resource(resource_id=06806edc25954d3fa764e019556cd2de, tag=[CodeRegion,NamedProgramSection,ProgramSection,ElfSection,MemoryRegion,Addressable,ElfSectionStructure], data=06806edc25954d3fa764e019556cd2de),\n", + " Resource(resource_id=b18cd7cd86c14b2286bc6c2dde7cefd6, tag=[CodeRegion,NamedProgramSection,ProgramSection,ElfSection,MemoryRegion,Addressable,ElfSectionStructure], data=b18cd7cd86c14b2286bc6c2dde7cefd6),\n", + " Resource(resource_id=864b2bbf22524fe7b686ae41e234518d, tag=[CodeRegion,NamedProgramSection,ProgramSection,ElfSection,MemoryRegion,Addressable,ElfSectionStructure], data=864b2bbf22524fe7b686ae41e234518d),\n", + " Resource(resource_id=30bb22f4cc284590a2ff5f47ff31a5ba, tag=[CodeRegion,NamedProgramSection,ProgramSection,ElfSection,MemoryRegion,Addressable,ElfSectionStructure], data=30bb22f4cc284590a2ff5f47ff31a5ba)]" ] }, "execution_count": 7, @@ -471,7 +479,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { diff --git a/ofrak_tutorial/notebooks_with_outputs/3_binary_format_modification.ipynb b/ofrak_tutorial/notebooks_with_outputs/3_binary_format_modification.ipynb index 25b44fcae..52f5122c5 100644 --- a/ofrak_tutorial/notebooks_with_outputs/3_binary_format_modification.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/3_binary_format_modification.ipynb @@ -29,7 +29,15 @@ "execution_count": 1, "id": "970c50b3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "from ofrak import OFRAK\n", "from ofrak_tutorial.helper_functions import create_hello_world_binary\n", @@ -107,7 +115,7 @@ "traceback": [ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[0;31mAttributeError\u001B[0m Traceback (most recent call last)", - "\u001B[0;32m/tmp/ipykernel_1160/3252441843.py\u001B[0m in \u001B[0;36m\u001B[0;34m\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[0;31m# Will fail with an AttributeError!\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m----> 2\u001B[0;31m \u001B[0mroot_resource\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mget_header\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m", + "Cell \u001B[0;32mIn[3], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;66;03m# Will fail with an AttributeError!\u001B[39;00m\n\u001B[0;32m----> 2\u001B[0m \u001B[43mroot_resource\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_header\u001B[49m()\n", "\u001B[0;31mAttributeError\u001B[0m: 'Resource' object has no attribute 'get_header'" ] } @@ -159,8 +167,8 @@ ] }, { - "id": "2ce80cdc", "cell_type": "markdown", + "id": "2ce80cdc", "metadata": {}, "source": [ "Trying to get the children of an ELF view will fail..." @@ -183,7 +191,7 @@ "traceback": [ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[0;31mAttributeError\u001B[0m Traceback (most recent call last)", - "\u001B[0;32m/tmp/ipykernel_1160/173858362.py\u001B[0m in \u001B[0;36masync-def-wrapper\u001B[0;34m()\u001B[0m\n", + "Cell \u001B[0;32mIn[5], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;66;03m# Will fail with an AttributeError!\u001B[39;00m\n\u001B[0;32m----> 2\u001B[0m \u001B[38;5;28;01mawait\u001B[39;00m elf_view\u001B[38;5;241m.\u001B[39mget_children()\n", "\u001B[0;31mAttributeError\u001B[0m: 'Elf' object has no attribute 'get_children'" ] } @@ -210,7 +218,7 @@ { "data": { "text/plain": [ - "Resource(resource_id=2d8623cdd6dc49e789ccbc42e6603467, tag=[ElfBasicHeader], data=8e0ff640ded64983a8e9a53092ae82b4)" + "Resource(resource_id=bd10b0f7bae3435faa84b0034ccda0e0, tag=[ElfBasicHeader], data=bd10b0f7bae3435faa84b0034ccda0e0)" ] }, "execution_count": 6, @@ -387,15 +395,15 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { "cell_type": "raw", - "source": [], "metadata": { "collapsed": false - } + }, + "source": [] } } }, diff --git a/ofrak_tutorial/notebooks_with_outputs/4_simple_code_modification.ipynb b/ofrak_tutorial/notebooks_with_outputs/4_simple_code_modification.ipynb index 74bc61646..7143cb370 100644 --- a/ofrak_tutorial/notebooks_with_outputs/4_simple_code_modification.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/4_simple_code_modification.ipynb @@ -29,7 +29,15 @@ "execution_count": 1, "id": "6bf1aa8b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "from ofrak import OFRAK\n", "from ofrak_tutorial.helper_functions import create_hello_world_binary\n", @@ -79,43 +87,23 @@ ] }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/opt/rbs/ghidra_10.1.2_PUBLIC/support/analyzeHeadless ghidra://localhost:13100/ofrak -connect root -p -import /tmp/tmpivngis_h/f5cd089390a2de4123fb3b36d1d0e4c88f9c45625cd77b58a969bb932ea51bc5 -overwrite\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "openjdk version \"11.0.14\" 2022-01-18\n", - "OpenJDK Runtime Environment (build 11.0.14+9-post-Debian-1deb11u1)\n", - "OpenJDK 64-Bit Server VM (build 11.0.14+9-post-Debian-1deb11u1, mixed mode)\n" + "openjdk version \"11.0.23\" 2024-04-16\n", + "OpenJDK Runtime Environment (build 11.0.23+9-post-Debian-1deb11u1)\n", + "OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Debian-1deb11u1, mixed mode)\n", + "openjdk version \"11.0.23\" 2024-04-16\n", + "OpenJDK Runtime Environment (build 11.0.23+9-post-Debian-1deb11u1)\n", + "OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Debian-1deb11u1, mixed mode)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "/opt/rbs/ghidra_10.1.2_PUBLIC/support/analyzeHeadless ghidra://localhost:13100/ofrak -connect root -p -process f5cd089390a2de4123fb3b36d1d0e4c88f9c45625cd77b58a969bb932ea51bc5 -readOnly -scriptPath /ofrak_ghidra/ofrak_ghidra/ghidra_scripts/ -postScript AnalysisServer.java\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "openjdk version \"11.0.14\" 2022-01-18\n", - "OpenJDK Runtime Environment (build 11.0.14+9-post-Debian-1deb11u1)\n", - "OpenJDK 64-Bit Server VM (build 11.0.14+9-post-Debian-1deb11u1, mixed mode)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "components run: [b'ApkIdentifier', b'CodeRegionUnpacker', b'ComplexBlockUnpacker', b'DeviceTreeBlobIdentifier', b'ElfDynamicSectionUnpacker', b'ElfPointerArraySectionUnpacker', b'ElfRelaUnpacker', b'ElfSymbolUnpacker', b'ElfUnpacker', b'GhidraAnalysisIdentifier', b'GhidraBasicBlockUnpacker', b'MagicDescriptionIdentifier', b'MagicMimeIdentifier']\n", + "components run: [b'ApkIdentifier', b'CodeRegionUnpacker', b'ComplexBlockUnpacker', b'DecompilationAnalysisIdentifier', b'DeviceTreeBlobIdentifier', b'ElfDynamicSectionUnpacker', b'ElfPointerArraySectionUnpacker', b'ElfRelaUnpacker', b'ElfSymbolUnpacker', b'ElfUnpacker', b'GhidraAnalysisIdentifier', b'GhidraBasicBlockUnpacker', b'LinkableSymbolIdentifier', b'MagicDescriptionIdentifier', b'MagicMimeIdentifier', b'OpenWrtIdentifier', b'UbiIdentifier', b'UbifsIdentifier', b'Uf2FileIdentifier']\n", "309 resources created\n", "310 resources modified\n" ] @@ -384,15 +372,15 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { "cell_type": "raw", - "source": [], "metadata": { "collapsed": false - } + }, + "source": [] } } }, diff --git a/ofrak_tutorial/notebooks_with_outputs/5_filesystem_modification.ipynb b/ofrak_tutorial/notebooks_with_outputs/5_filesystem_modification.ipynb index 9ad5dcf60..0f14badb0 100644 --- a/ofrak_tutorial/notebooks_with_outputs/5_filesystem_modification.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/5_filesystem_modification.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "id": "b6915452", "metadata": {}, "outputs": [], @@ -68,10 +68,18 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, "id": "f7fe4aa6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "from ofrak import OFRAK\n", "\n", @@ -91,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "id": "570aa12a", "metadata": {}, "outputs": [ @@ -122,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 4, "id": "f38d3d94", "metadata": {}, "outputs": [], @@ -142,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "id": "2c8cda3f", "metadata": {}, "outputs": [], @@ -160,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "b3fe7cc1", "metadata": {}, "outputs": [ @@ -188,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, "id": "4443b240", "metadata": {}, "outputs": [], @@ -233,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "id": "af05cf0d", "metadata": {}, "outputs": [ @@ -241,7 +249,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "[ packer.py: 71] The SquashfsPacker packer has already been run on resource 8269ef5a26634f949406de22b9989340\n" + "[ packer.py: 70] The SquashfsPacker packer has already been run on resource 4530acb5d25d4f979fe5a40dc1a541c0\n" ] } ], @@ -251,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 9, "id": "955ef900", "metadata": {}, "outputs": [ @@ -272,7 +280,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, "id": "de1d2cfe", "metadata": {}, "outputs": [ @@ -292,7 +300,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, "id": "4f4e45d3", "metadata": {}, "outputs": [ @@ -336,7 +344,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { diff --git a/ofrak_tutorial/notebooks_with_outputs/6_code_insertion_with_extension.ipynb b/ofrak_tutorial/notebooks_with_outputs/6_code_insertion_with_extension.ipynb index 0957ff32b..051d4202b 100644 --- a/ofrak_tutorial/notebooks_with_outputs/6_code_insertion_with_extension.ipynb +++ b/ofrak_tutorial/notebooks_with_outputs/6_code_insertion_with_extension.ipynb @@ -343,7 +343,15 @@ "name": "#%%\n" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using OFRAK Community License.\n" + ] + } + ], "source": [ "import ofrak_ghidra\n", "from ofrak import OFRAK\n", @@ -386,12 +394,12 @@ "name": "stderr", "output_type": "stream", "text": [ - "openjdk version \"11.0.16\" 2022-07-19\n", - "OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1)\n", - "OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode)\n", - "openjdk version \"11.0.16\" 2022-07-19\n", - "OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1)\n", - "OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode)\n" + "openjdk version \"11.0.23\" 2024-04-16\n", + "OpenJDK Runtime Environment (build 11.0.23+9-post-Debian-1deb11u1)\n", + "OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Debian-1deb11u1, mixed mode)\n", + "openjdk version \"11.0.23\" 2024-04-16\n", + "OpenJDK Runtime Environment (build 11.0.23+9-post-Debian-1deb11u1)\n", + "OpenJDK 64-Bit Server VM (build 11.0.23+9-post-Debian-1deb11u1, mixed mode)\n" ] }, { @@ -699,7 +707,7 @@ "bss_size_required: 0\n", "entry_point_symbol (optional): None\n", "\n", - "object map[c_patch]: AssembledObject(path='/tmp/tmpeegkkyst/hello_world_patch_bom_files/c_patch.c.o', file_format=, segment_map=immutabledict({'.text': Segment(segment_name='.text', vm_address=0, offset=64, is_entry=False, length=70, access_perms=)}), strong_symbols=immutabledict({'c_patch.c': (0, ), 'uppercase_and_print': (0, )}), unresolved_symbols=immutabledict({'puts': (0, )}), bss_size_required=0)\n", + "object map[c_patch]: AssembledObject(path='/tmp/tmp10mi8gpg/hello_world_patch_bom_files/c_patch.c.o', file_format=, segment_map=immutabledict({'.text': Segment(segment_name='.text', vm_address=0, offset=64, is_entry=False, length=70, access_perms=)}), strong_symbols=immutabledict({'c_patch.c': (0, ), 'uppercase_and_print': (0, )}), unresolved_symbols=immutabledict({'puts': (0, )}), bss_size_required=0)\n", "\n" ] } @@ -975,7 +983,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.13" + "version": "3.8.18" }, "pycharm": { "stem_cell": { diff --git a/ofrak_type/CHANGELOG.md b/ofrak_type/CHANGELOG.md index 5775b0398..64fba584a 100644 --- a/ofrak_type/CHANGELOG.md +++ b/ofrak_type/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master) +### Changed +- Minor update to OFRAK Community License, add OFRAK Pro License ([#478](https://github.com/redballoonsecurity/ofrak/pull/478)) + ## [2.2.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-type-v2.1.0...ofrak-type-v2.2.0) ### Added diff --git a/ofrak_type/LICENSE b/ofrak_type/LICENSE index 155304e57..3819119a6 100644 --- a/ofrak_type/LICENSE +++ b/ofrak_type/LICENSE @@ -1,41 +1,42 @@ -OFRAK COMMUNITY LICENSE AGREEMENT -Version 1.0 -Effective: August 8, 2022 - Thank you for your interest in OFRAK (Open Firmware Reverse Analysis Konsole). -This OFRAK Community License Agreement (“Agreement”) provides users the right -to use OFRAK and its components for personal or academic, non-commercial use, -as detailed below. This includes educational purposes and non-funded academic -research. This Agreement does not permit use for any other purposes, including -commercial purposes. For any such use, you will need to reach out to Red -Balloon Security, Inc. at https://ofrak.com/license and request an OFRAK Pro -License, OFRAK Enterprise License or a custom agreement. Below are the details -regarding use of OFRAK. Note: As of August 2022, and for a limited period, -OFRAK Pro Licenses are available at no cost. RED BALLOON SECURITY, INC. (“RED -BALLOON”) IS ONLY WILLING TO LICENSE OFRAK AND RELATED DOCUMENTATION PURSUANT -TO THIS AGREEMENT. READ THIS AGREEMENT CAREFULLY BEFORE DOWNLOADING AND -INSTALLING AND USING OFRAK. BY ACCESSING, INSTALLING, COPYING OR OTHERWISE -USING OFRAK, YOU ACKNOWLEDGE AND AGREE ON BEHALF OF YOURSELF AND YOUR -EMPLOYER/INSTITUTION (“YOU”) TO BE BOUND TO THIS AGREEMENT AND THAT YOU -ACKNOWLEDGE THAT THIS AGREEMENT CREATES A LEGALLY ENFORCEABLE CONTRACT AND -CONSTITUTES ACCEPTANCE OF ALL TERMS AND CONDITIONS OF THIS AGREEMENT WITHOUT -MODIFICATION. YOU REPRESENT THAT YOU ARE AUTHORIZED TO ACCEPT THIS AGREEMENT -ON YOUR EMPLOYER’S BEHALF. IF YOU DO NOT AGREE TO THE FOREGOING TERMS AND -CONDITIONS, DO NOT INSTALL, COPY OR USE OFRAK. - -1. Definitions. 1.1 “OFRAK” consists of (a) the source code -repository for OFRAK, which can be found at -https://github.com/redballoonsecurity/ofrak; (b) the following Python -packages, which are also available via PyPI, the Python Package Index: ofrak, -ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +The OFRAK Community License is intended for educational use, personal +development, or just having fun. +The OFRAK Pro License is intended for individual use of OFRAK at work. For more +information, see https://ofrak.com/license. + +OFRAK COMMUNITY LICENSE AGREEMENT +Version 1.1 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK COMMUNITY LICENSE AGREEMENT +(COLLECTIVELY WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS +AGREEMENT CAREFULLY BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER +THE OFRAK COMMUNITY AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR +OTHERWISE ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU +("LICENSEE") AGREE THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY +EXECUTED AND THE REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A +MATERIAL PART OF THE OFRAK COMMUNITY LICENSE AGREEMENT BETWEEN LICENSEE AND RED +BALLOON LOCATED AT https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU +ARE AUTHORIZED TO ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES +NOT AGREE TO THE FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR +OTHERWISE ACCESS, INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); -(d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and -add-ons provided by Red Balloon with respect thereto, which Red Balloon -specifies is licensed under this Community License Agreement. OFRAK is -presently made available in three formats: (i) source code repository, (ii) -PyPI Packages and (iii) Docker images with dependencies preinstalled. +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. -1.2 “Academic Purposes” means use within a non-profit academic institution +1.2 "Academic Purposes" means use within a non-profit academic institution by its then-current faculty and students for the purposes of non-profit scholarly research, classroom and education, and not any other use (including without limitation, directly or indirectly in connection with any commercial @@ -46,26 +47,26 @@ public, (c) access is limited to employees and/or students of the same institution involved in a specific educational activity, and (d) all users accept and are subject to this Agreement. -1.3 “Non-Commercial Use” means personal research, evaluation, or +1.3 "Non-Commercial Use" means personal research, evaluation, or development use by an individual, and not use by or on behalf of any commercial entity or organization or directly or indirectly in connection with any commercial activity. For clarity, you cannot make money off of redistributing OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs. Non-Commercial Use also excludes any Shared Use. - -1.4 “Commercial Use” means any use other than Academic Purposes or + +1.4 "Commercial Use" means any use other than Academic Purposes or Non-Commercial Use, including, without limitation, use for any commercial purpose or by any commercial entity, including without limitation redistributing the OFRAK code (including Derivatives), OFRAK analysis, OFRAK-modified binaries, or other OFRAK outputs for any monetary or other commercial consideration. -1.5 “Derivatives” means any modifications, additions, enhancements, or +1.5 "Derivatives" means any modifications, additions, enhancements, or derivative works of OFRAK or any component thereof. For purposes of this Agreement, Derivatives shall not include works that remain separable from, or merely link to, the interfaces of OFRAK or any Derivatives. -1.6 “Shared Use” means any use of OFRAK where the person who set up a +1.6 "Shared Use" means any use of OFRAK where the person who set up a particular instance of OFRAK is not the same person interacting with that instance of OFRAK, or where a single instance of OFRAK is used by more than one person (whether on the same or different occasions). This includes, but is not @@ -114,31 +115,33 @@ to make and contribute Derivatives on behalf of that employer/institution. 4. Ownership; Restrictions. Except as expressly and unambiguously set forth herein, Red Balloon and its licensors and contributors retain all right, -title and interest in and to OFRAK, Derivatives, all copies, modifications and -derivative works thereof, including without limitation, all rights to patent, -copyright, trade secret and other proprietary or intellectual property rights -related to any of the foregoing. To the extent that you create any -Derivatives, subject to the rights and licenses granted herein, you retain -ownership of all right, title and interest in and to such Derivatives, -including without limitation, all intellectual property rights related to any -of the foregoing. You will maintain the copyright notice and any other notices +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices or identifications that appear on or in OFRAK and any Derivatives or any other -media or documentation that is subject to this Agreement. You will not (and -will not allow any third party to): (a) use OFRAK or any Derivatives, except -as expressly permitted in this Agreement, (b) provide, lease, lend, disclose, -use for timesharing or service bureau purposes, or otherwise use or allow -others to use for the benefit of any third party, OFRAK, (c) possess or use -OFRAK, or allow the transfer, transmission, export, or re-export of OFRAK or -portion thereof in violation of any export control laws or regulations -administered by the U.S. Commerce Department, U.S. Treasury Department’s Office -of Foreign Assets Control, or any other government agency, (d) use OFRAK in any -way that violates any applicable law, rule or regulation or for any illegal use -or activity; or (e) seek any patent or other intellectual property rights or -protections over or in connection with OFRAK or any Derivatives you create. +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. 5. Feedback. In addition to Derivatives, you may, from time to time and in your sole discretion, make suggestions for changes, modifications or -improvements to OFRAK (“Feedback”). Red Balloon shall have an irrevocable, +improvements to OFRAK ("Feedback"). Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, transferable, full paid-up, royalty free right and license to use, distribute and otherwise exploit all Feedback for any purpose. @@ -151,7 +154,7 @@ Balloon’s support channels, such as Slack. 8. Term and Termination. This Agreement shall commence upon the initial download of OFRAK and shall continue until and unless terminated as set forth -herein (the “Term”). This Agreement may be terminated by Red Balloon +herein (the "Term"). This Agreement may be terminated by Red Balloon immediately upon notice to you in the event that you breach any term or condition of this Agreement. Upon any termination, you shall immediately cease all use of OFRAK. This sentence and the following provisions will survive @@ -159,7 +162,7 @@ termination: 1, 3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies will remain available. 9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided -“AS IS” and may not be functional on any machine or in any environment. +"AS IS" and may not be functional on any machine or in any environment. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY @@ -170,7 +173,7 @@ WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF TRADE. THIS AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR -ENVIRONMENTAL DAMAGE (“HIGH RISK ACTIVITIES”). USE OF OFRAK IN HIGH RISK +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS AGREEMENT. THE PARTIES AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. @@ -212,3 +215,212 @@ if made in writing. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. + + +OFRAK PRO LICENSE AGREEMENT +Version 1.0 +Effective: July 22, 2024 + +RED BALLOON SECURITY, INC., A DELAWARE CORPORATION, WITH AN ADDRESS AT 639 11TH +AVENUE, 4TH FLOOR, NEW YORK, NY 10036, USA ("RED BALLOON") LICENSES OFRAK AND +RELATED DOCUMENTATION PURSUANT TO THE OFRAK PRO LICENSE AGREEMENT (COLLECTIVELY +WITH THE REGISTRATION FORM, THIS "AGREEMENT"). READ THIS AGREEMENT CAREFULLY +BEFORE ACCESSING, INSTALLING, COPYING AND USING OFRAK UNDER THE OFRAK PRO +AGREEMENT. BY TYPING "I AGREE" ON THE REGISTRATION FORM, OR OTHERWISE +ACCESSING, INSTALLING, COPYING OR OTHERWISE USING OFRAK, YOU ("LICENSEE") AGREE +THAT THE REGISTRATION FORM SHALL BE DEEMED TO BE MUTUALLY EXECUTED AND THE +REGISTRATION FORM SHALL BE INCORPORATED INTO AND BECOME A MATERIAL PART OF THE +OFRAK PRO LICENSE AGREEMENT BETWEEN LICENSEE AND RED BALLOON LOCATED AT +https://ofrak.com/docs/license.html. YOU REPRESENT THAT YOU ARE AUTHORIZED TO +ACCEPT THIS AGREEMENT ON BEHALF OF LICENSEE. IF LICENSEE DOES NOT AGREE TO THE +FOREGOING TERMS AND CONDITIONS, DO NOT TYPE "I AGREE", OR OTHERWISE ACCESS, +INSTALL, COPY OR USE OFRAK. + +1. Definitions. + +1.1 "OFRAK" consists of (a) the source code repository for OFRAK, which can +be found at https://github.com/red-balloon-security/ofrak; (b) the following +Python packages, which are also available via PyPI, the Python Package Index: +ofrak, ofrak_components, ofrak_io, ofrak_type, ofrak_patch_maker, ofrak_angr, +ofrak_binary_ninja, ofrak_ghidra; (c) the OFRAK graphical user interface (GUI); +and (d) OFRAK documentation. OFRAK includes all updates, improvements, APIs and +add-ons provided by Red Balloon with respect thereto that Red Balloon makes +available to Licensee under this OFRAK Pro Agreement. OFRAK is presently made +available in three formats: (i) source code repository, (ii) PyPI Packages and +(iii) Docker images with dependencies preinstalled. + +1.2 "Academic Purposes" means use within a non-profit academic institution +by its then-current faculty and students for the purposes of non-profit +scholarly research, classroom and education, and not any other use (including +without limitation, directly or indirectly in connection with any commercial +activity such as, for example, sponsored research or consulting services). + +1.3 "Authorized User(s)" means any user(s) named in the license file. + +1.4 "Commercial Use" means any use other than Academic Purposes or Limited +Commercial Use, and any use other than by an Authorized User, including without +limitation redistributing the OFRAK code (including Derivatives), OFRAK +analysis, OFRAK-modified binaries, or other OFRAK outputs for use outside of a +consulting engagement of Licensee or volume redistribution of any +OFRAK-modified binaries. + +1.5 "Derivatives" means any modifications, additions, enhancements, or +derivative works of OFRAK or any component thereof. For purposes of this OFRAK +Pro Agreement, Derivatives shall not include works that remain separable from, +or merely link to, the interfaces of OFRAK or any Derivatives. + +1.6 "Limited Commercial Use" means internal business use by any Authorized +User of OFRAK during the term specified in the license file (the "Term"), which +includes use of OFRAK in exchange for monetary and other consideration (such as +security research purposes) and redistribution of (i) OFRAK analysis, (ii) +other OFRAK outputs, and (iii) OFRAK-modified binaries to an end-user for such +end user’s internal use, in each case in connection with consulting engagements +entered into between Licensee and such end user. For clarity, neither Licensee +nor the end user shall have the right to further redistribute OFRAK-modified +binaries outside of such end-user. + +2. License. Subject to the terms and conditions of this OFRAK Pro +Agreement, Red Balloon grants to Licensee a nonexclusive, nonsublicensable, +nontransferable, royalty-free, limited license during the term specified in the +license file ("Term") to install, use, copy, modify and create Derivatives of +OFRAK only by Authorized Users (a) for Academic Purposes, (b) for Limited +Commercial Use and (c) to share Derivatives (i) publicly within the community +(via publicly available forks on GitHub.com), (ii) for an Academic Purpose, and +(iii) with Red Balloon, for the purposes stated in this OFRAK Pro Agreement. +For clarity, the foregoing license does not grant to Licensee any other right +or license to commercialize, distribute or use OFRAK for any other purpose +whatsoever, including Commercial Use. In the event that Licensee wishes to use +OFRAK for any other purpose, including Commercial Use, Licensee needs to +contact Red Balloon and enter into a separate OFRAK Enterprise License or other +custom agreement. Except for the limited rights and licenses expressly granted +hereunder, no other license is granted, no other use is permitted. + +3. Derivatives. To the extent that Licensee prepares or creates any +Derivatives, Licensee shall and hereby grant to (a) all users of OFRAK a right +and license to such Derivatives upon the terms and conditions set forth in the +OFRAK Community License, located at https://ofrak.com/docs/license.html and (b) +Red Balloon a perpetual, fully paid-up, royalty-free, worldwide and +irrevocable, right and license to use, copy, modify, enhance, prepare +derivative works of, distribute, with unlimited right to sublicense, make, have +made, sell, have sold, import, export and otherwise commercialize such +Derivatives. Licensee acknowledges that Red Balloon may, but is not obligated +to, include Licensee’s Derivatives in, and otherwise incorporate Licensee’s +Derivatives into, the core OFRAK codebase. In the event that Licensee creates +Derivatives, Licensee must (i) retain all copyright and other proprietary +rights licenses included in the original OFRAK code, and any other Derivatives, +and (ii) make it clear that Licensee modified the original version of OFRAK. +Red Balloon encourages Licensee to make Licensee’s Derivatives available to the +community by forking the OFRAK source code repository on GitHub and publishing +Licensee’s Derivatives on Licensee’s forked repository, but Licensee is not +required to do so. Licensee represents and warrants that Licensee has +sufficient rights to any Derivatives and is legally entitled to grant the above +rights and licenses. + +4. Ownership; Restrictions. Except as expressly and unambiguously set +forth herein, Red Balloon and its licensors and contributors retain all right, +title and interest in and to OFRAK, Derivatives prepared or created by Red +Balloon, all copies, modifications and derivative works thereof, including +without limitation, all rights to patent, copyright, trade secret and other +proprietary or intellectual property rights related to any of the foregoing. +To the extent that Licensee creates any Derivatives, subject to the rights and +licenses granted herein, Licensee retains ownership of all right, title and +interest in and to such Derivatives prepared or created by Licensee, including +without limitation, all intellectual property rights related to any of the +foregoing. Licensee will maintain the copyright notice and any other notices +or identifications that appear on or in OFRAK and any Derivatives or any other +media or documentation that is subject to this OFRAK Pro Agreement. Licensee +will not (and will not allow any third party to): (a) use OFRAK or any +Derivatives, except as expressly permitted in this OFRAK Pro Agreement, (b) +provide, lease, lend, disclose, use for timesharing or service bureau purposes, +or otherwise use or allow others to use for the benefit of any third party, +OFRAK, (c) possess or use OFRAK, or allow the transfer, transmission, export, +or re-export of OFRAK or portion thereof in violation of any export control +laws or regulations administered by the U.S. Commerce Department, U.S. Treasury +Department’s Office of Foreign Assets Control, or any other government agency, +(d) use OFRAK in any way that violates any applicable law, rule or regulation +or for any illegal use or activity, or (e) seek any patent or other +intellectual property rights or protections over or in connection with OFRAK or +any Derivatives that Licensee prepares or creates. + +5. Feedback. In addition to Derivatives prepared or created by Licensee, +Licensee may, from time to time and in Licensee’s sole discretion, make +suggestions for changes, modifications or improvements to OFRAK ("Feedback"). +Red Balloon shall have an irrevocable, perpetual, worldwide, sublicenseable, +transferable, full paid-up, royalty free right and license to use, distribute +and otherwise exploit all Feedback for any purpose. + +6. Fees. Licensee agrees to pay Red Balloon all fees and other charges in +the amounts and at the times specified by Red Balloon in writing (without +deduction, set-off, or counterclaim). + +7. Services. No training or support services are provided under this +OFRAK Pro Agreement. Red Balloon may in its discretion respond to support +inquiries through Red Balloon’s support channels, such as Slack. + +8. Term and Termination. This OFRAK Pro Agreement shall commence upon the +date of license issue set forth in the license file and shall continue for the +Term unless terminated as set forth herein. This OFRAK Pro Agreement may be +terminated by Red Balloon immediately upon notice to Licensee in the event that +Licensee breaches any term or condition of this OFRAK Pro Agreement. Upon +expiration or any termination, Licensee shall immediately cease all use of +OFRAK. This sentence and the following provisions will survive termination: 1, +3 - 5 and 9 - 12. Termination is not an exclusive remedy and all other remedies +will remain available. + +9. Warranty Disclaimer. The parties acknowledge that OFRAK is provided +"AS IS" and may not be functional on any machine or in any environment. +NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF ANY DERIVATIVES MAKE ANY WARRANTIES, +EXPRESS OR IMPLIED, EITHER IN FACT OR BY OPERATION OF LAW, STATUTORY OR +OTHERWISE, AND RED BALLOON AND ANY CONTRIBUTOR OF ANY DERIVATIVES EXPRESSLY +EXCLUDES AND DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, TITLE, ACCURACY, FREEDOM FROM ERRORS, FREEDOM FROM +PROGRAMMING DEFECTS, NONINTERFERENCE AND NONINFRINGEMENT, AND ALL IMPLIED +WARRANTIES ARISING OUT OF COURSE OF DEALING, COURSE OF PERFORMANCE AND USAGE OF +TRADE. THIS OFRAK PRO AGREEMENT IS NOT INTENDED FOR USE OF OFRAK IN HAZARDOUS +ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE WHERE THE FAILURE OF OFRAK COULD +LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SIGNIFICANT PHYSICAL OR +ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). USE OF OFRAK IN HIGH RISK +ACTIVITIES IS NOT AUTHORIZED PURSUANT TO THIS OFRAK PRO AGREEMENT. THE PARTIES +AGREE THAT THIS SECTION 9 REPRESENTS A REASONABLE ALLOCATION OF RISK AND THAT +RED BALLOON WOULD NOT PROCEED IN THE ABSENCE OF SUCH ALLOCATION. +10. Limitations. NEITHER RED BALLOON NOR ANY CONTRIBUTOR OF DERIVATIVES +SHALL BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS OFRAK +PRO AGREEMENT OR TERMS AND CONDITIONS RELATED THERETO UNDER ANY CONTRACT, +NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY (A) FOR LOSS OR INACCURACY OF +DATA, OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY; (B) +FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, RELIANCE, SPECIAL, EXEMPLARY OR +CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUES AND LOSS +OF PROFITS TO LICENSEE OR ANY THIRD PARTIES; (C) FOR ANY MATTER BEYOND ITS +REASONABLE CONTROL OR (D) FOR USE THAT LICENSEE OR OTHERS MAY MAKE OF OFRAK, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +11. Indemnification. Licensee agrees that (a) Red Balloon and any +contributors shall have no liability whatsoever for Licensee’s use of OFRAK or +any Derivatives and (b) Licensee shall indemnify, and hold harmless, and (upon +request) defend Red Balloon and any other user or contributor from and against +any and all claims, damages, liabilities, losses, and costs (including +reasonable attorneys’ fees) suffered or incurred by such party which arise from +or relate to Licensee’s (i) use of OFRAK or Derivatives, or (ii) breach of this +OFRAK Pro Agreement. + +12. Miscellaneous. Neither this OFRAK Pro Agreement nor the licenses +granted hereunder are assignable or transferable by Licensee; any attempt to do +so shall be void. Red Balloon may assign this OFRAK Pro Agreement in whole or +in part. Any notice, report, approval or consent required or permitted +hereunder shall be in writing. The provisions hereof are for the benefit of +the parties only and not for any other person or entity. If any provision of +this OFRAK Pro Agreement shall be adjudged by any court of competent +jurisdiction to be unenforceable or invalid, that provision shall be limited or +eliminated to the minimum extent necessary so that this OFRAK Pro Agreement +shall otherwise remain in full force and effect and enforceable. This OFRAK +Pro Agreement shall be deemed to have been made in, and shall be construed +pursuant to the laws of the State of New York, without regard to conflicts of +laws provisions thereof, and without regard to the United Nations Convention on +the International Sale of Goods or the Uniform Computer Information +Transactions Act. Any waivers or amendments shall be effective only if made in +writing. This OFRAK Pro Agreement is the complete and exclusive statement of +the mutual understanding of the parties and supersedes and cancels all previous +written and oral agreements and communications relating to the subject matter +of this OFRAK Pro Agreement. In the event of any conflict between this OFRAK +Pro License Agreement and the OFRAK Community License Agreement, located at +https://ofrak.com/docs/license.html, this OFRAK Pro Agreement shall control.