Projects STRLCPY sub3suite Commits 90e97796
🤬
  • ■ ■ ■ ■ ■ ■
    COMPILING.md
    1 1  # Compiling The Project
    2 2   
    3 3  This is just a simple instruction on compiling the project. More details will be added later.
    4  -The Steps are easy since the project doesn't have many dependancies for now & only uses Qt-Creator/qmake for the whole build process.
     4 +The Steps are easy since the project doesn't have many dependancies for now & only uses QtCreator/qmake for the whole build process.
    5 5   
    6 6  ## Prerequisites
    7 7   
    8  -1. Download [Qt5.13.0](https://download.qt.io/archive/qt/5.13/5.13.0) & install. (other versions can be used but you have make minor adjustments here & there).
     8 +1. Download [Qt5.13.0](https://download.qt.io/archive/qt/5.13/5.13.0) & install. (other versions can be used, i've only tested in Qt5.13 & Qt5.12).
    9 9  2. Download [Qt Creator 4.9.1](https://www.qt.io/offline-installers) & install. (not a must to use version 4.9.1).
    10 10  3. Clone the repository (`main or dev branch`) to your local drive. Make sure to include the submodules in your clone command!
    11 11   
    skipped 13 lines
    25 25   
    26 26  ## Minor adjustment
    27 27   
    28  -Minor adjustment to the GumboParser submodule.
     28 +Minor adjustment to the gumbo-parser submodule.
    29 29  1. Copy the `strings.h` file from `sub3suite/include/`
    30 30  2. Paste it to `sub3suite/include/gumbo-parser/src/`
    31 31  3. Change the Include header file `#include <strings.h>` to `#include "strings.h"` for the following files;
    skipped 39 lines
    71 71  ```
    72 72   
    73 73  ## Run
    74  -The required dynamic/shared libraries for this project are `Qt5Core`, `Qt5Gui`, `Qt5Network` & `Qt5Widgets`. You can obtain them
    75  -from the Qt installation folder (Make sure you get the appropriate versions).
    76 74   
    77  -The folder `sub3suite/bin` contains all the necessary files required by the sub3suite program. Copy the Qt libraries and the built sub3suite
    78  -application into this folder and run!.
     75 +The folder `sub3suite/bin` contains all the necessary files required by the sub3suite program. Copy the relevant Qt libraries to appropriate locations and the built sub3suite
     76 +application into this folder and run.
  • ■ ■ ■ ■ ■
    CONTRIBUTING.md
    skipped 6 lines
    7 7  This is a list of things you can do to help us out (in no particular order). Each item will be expanded upon later in the document.
    8 8   
    9 9  - [Compile sub3suite](COMPILING.md) and add new features and/or solving current [issues](https://github.com/3nock/sub3suite).
     10 +- Design an even more intuitive UI, Logos and Icons.
    10 11  - Report [bugs](https://github.com/3nock/sub3suite) at the issue tracker.
    11 12  - Add feature requests to the [issue tracker](https://github.com/3nock/sub3suite).
    12 13  - [Write a blogpost](https://3nock.github.io/Looking-for-writers.html) about sub3suite in any blog.
    skipped 66 lines
  • ■ ■ ■ ■ ■
    README.md
    skipped 4 lines
    5 5  [![Twitter](https://img.shields.io/twitter/follow/sub3suite?label=twitter&style=social)](https://twitter.com/sub3suite)
    6 6   
    7 7  # Subdomain Enumeration Suite
    8  -sub3 suite is a research-grade suite of tools for subdomain enumeration and general osint information gathering. Supports both
    9  -manual and automated analysis on targets with many available feautues. You can find more information on the [blog](https://3nock.github.io/sub3suite)!
     8 +sub3suite is a research-grade suite of tools for subdomain enumeration, OSINT information gathering & attack surface mapping. Supports both
     9 +manual and automated analysis on targets with many available feautues & tools.
    10 10   
    11 11  ## ScreenShots
    12 12  <img src="docs/images/screenshot_osint.png"/>
    skipped 7 lines
    20 20  **Are you a developer?**
    21 21   
    22 22  Check out the [open issues](https://github.com/3nock/sub3suite/issues) and many scattered `TODO` messages throughout the source code.
     23 + 
     24 +**Are you a designer?**
     25 + 
     26 +You can help design an even more intuitive UI, Logos & Icons.
    23 27   
    24 28  **Not a developer?**
    25 29   
    26  -You can help by reporting [bugs](https://github.com/3nock/sub3suite), requesting [features](https://github.com/3nock/sub3suite), providing [translations](https://github.com/3nock/sub3suite) and sharing this project.
     30 +You can help by reporting [bugs](https://github.com/3nock/sub3suite), requesting [features](https://github.com/3nock/sub3suite), [sponsoring](SPONSOR.md) the project, writing blog posts & sharing this project to peers.
    27 31   
    28 32  For More information see [contribution guide](CONTRIBUTING.md).
    29 33   
    skipped 3 lines
    33 37  2. Unzip.
    34 38  3. Run.
    35 39   
     40 +**NOTE**
     41 +On windows install the msvc-redistributable package `sub3suite/vcredist_x64.exe` or `sub3suite/vcredist_x86.exe` if the program fails to run.
     42 + 
     43 + 
    36 44  You can also [compile](COMPILING.md) sub3suite yourself with a few easy steps!
    37 45   
    38 46  ## Credits
    39 47   
    40  -- HTML parser by Google's [GumboParser](https://github.com/google/gumbo-parser)
     48 +- HTML parser by Google's [gumbo-parser](https://github.com/google/gumbo-parser)
    41 49  - Crash-Handler by Google's [breakpad](https://github.com/google/breakpad)
    42 50   
    43 51  ## Developers
    skipped 2 lines
  • ■ ■ ■ ■ ■
    SPONSOR.md
     1 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/active.html
    1 1  <h1> ACTIVE ENGINE </h1>
    2 2   
     3 +<h2> What is? </h2>
    3 4  The Active Engine performs enumeration on target hostnames to determine active ones.<br><br>
    4 5   
    5 6  The Tool performs this enumeration using multiple techniques;<br>
    skipped 19 lines
    25 26   
    26 27  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    27 28   
    28  -<h2> Blog Posts </h2>
    29  - 
    30 29  <h2> References </h2>
    31 30   
     31 +<h2> NOTE: </h2><br>
     32 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     33 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/brute.html
    1 1  <h1> BRUTE ENGINE </h1>
    2 2   
     3 +<h2> What is? </h2>
    3 4  The BRUTE Engine performs subdomain & TLD enumeration by bruteforce.<br>
    4 5  Performs DNS lookup on subdomain & TLD created by appending the words from wordlist to the
    5 6  target.<br>
    skipped 22 lines
    28 29   
    29 30  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    30 31   
    31  -<h2> Blog Posts </h2>
    32  - 
    33 32  <h2> References </h2>
    34 33   
     34 +<h2> NOTE: </h2><br>
     35 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     36 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/dns.html
    1 1  <h1> DNS ENGINE </h1>
    2 2   
     3 +<h2> What is? </h2>
    3 4  The DNS Engine resolves targets into specified DNS Records.<br>
    4 5  This Tool uses multiple threads as alocated by the user to perform enumeration on targets
    5 6  also support use of multiple nameservers as provided by the user or default list by s3s.<br><br>
    skipped 23 lines
    29 30   
    30 31  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    31 32   
    32  -<h2> Blog Posts </h2>
    33  - 
    34 33  <h2> References </h2>
    35 34   
     35 +<h2> NOTE: </h2><br>
     36 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     37 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/osint.html
    1  -<h1> <b> OSINT ENGINE </b> </h1>
     1 +<h1> OSINT ENGINE </h1>
    2 2   
     3 +<h2> What is? </h2>
    3 4  The Osint engine is used for obtaining different types of osint data from different input types.<br>
    4 5  The tool uses different osint modules to obtain the desired data.<br>
    5 6   
    skipped 45 lines
    51 52   
    52 53  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    53 54   
    54  -<h2> Blog Posts </h2>
    55  - 
    56 55  <h2> References </h2>
    57 56  1. <a href=https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6>https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6</a>
    58 57   
    59  - 
    60  - 
    61  - 
     58 +<h2> NOTE: </h2><br>
     59 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     60 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/raw.html
    1 1  <h1> RAW ENGINE </h1>
    2 2   
     3 +<h2> What is? </h2>
    3 4  The Raw Engine queries API endpoints of different osint modules to return raw json results.<br>
    4 5  The tool uses different osint modules and their different endpoints to obtain the desired output.<br><br>
    5 6   
    skipped 26 lines
    32 33   
    33 34  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    34 35   
    35  -<h2> Blog Posts </h2>
    36  - 
    37 36  <h2> References </h2>
    38 37  1. <a href=https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6>https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6</a>
    39 38   
    40  - 
    41  - 
    42  - 
     39 +<h2> NOTE: </h2><br>
     40 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     41 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/ssl.html
    1 1  <h1> SSL ENGINE </h1>
    2 2   
    3  -The SSL Engine performs an encrypted connection to target and pulls the target's SSL Certificate to
    4  -obtain valuable information from the certificates.<br><br>
     3 +<h2> What is? </h2>
     4 +<p style="color:white">
     5 + <b> SSL/TLS - </b> SSL (Secure Sockets Layer) and its successor, TLS (Transport Layer Security), are protocols for establishing authenticated and encrypted links between networked computers.
     6 + Although the SSL protocol was deprecated with the release of TLS 1.0 in 1999, it is still common to refer to these related technologies as "SSL" or "SSL/TLS".
     7 + <a href=https://www.ssl.com/faqs/faq-what-is-ssl> reference </a>.<br><br>
    5 8   
    6  -The Tool returns results as SSL Certificates full info, SSL Cert Hash(sha1 && sha256) & SSL alternative names.<br><br>
     9 + <b> SSL Certificates - </b> SSL certificates make SSL/TLS encryption possible, and they contain the website's public key and the website's identity, along with related information.
     10 + Devices attempting to communicate with the origin server will reference this file to obtain the public key and verify the server's identity. The private key is kept secret and secure.
     11 + <a href=https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate> reference </a>.<br><br>
    7 12   
    8  -This Tool uses multiple threads as alocated by the user to perform enumeration.
     13 + <b> SSL Engine - </b> Is used to enumerate SSL Certificates from targets by actively establishing encrypted connection to the target and pulling the obtained SSL Certificate to
     14 + obtain all relevant information stored in the certificate that can be useful to map the target.<br>
     15 + SSL Certificates store important information such as:<br>
     16 + 1. Associated domains.<br>
     17 + 2. Organization name & contacts.<br>
     18 + 3. Issued & Expirely date of the certificate. etc<br><br>
    9 19   
     20 + sub3suite's SSL Engine pulls all the data from the SSL Certificate and present it in a very intuitive manner.
     21 + The Tool returns results as SSL Certificates full info, SSL Cert Hash(sha1 && sha256) & SSL alternative names.<br><br>
    10 22   
     23 + This Tool uses multiple threads as alocated by the user to perform enumeration.
     24 +</p>
    11 25  <h2> Features </h2>
    12 26  1. Supports multiple Targets connections in one scan using multiple threads.<br>
    13 27  2. Supports enumeration by connecting to host on specified ports eg (HTTP, HTTPS, FTP etc.).<br>
    skipped 5 lines
    19 33   
    20 34  <br> <a href=https://github.com/3nock/sub3suite>Help improve the documentation...</a><br>
    21 35   
    22  -<h2> Blog Posts </h2>
    23  - 
    24 36  <h2> References </h2>
    25 37   
     38 +<h2> NOTE: </h2><br>
     39 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     40 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/engines/url.html
     1 +<h1> URL Engine </h1>
     2 + 
     3 +<h2> What is? </h2><br>
     4 + 
     5 +<p style="color:white">
     6 +<b> URL - </b> Uniform Resource Locator, colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it.
     7 + A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.
     8 + URLs occur most commonly to reference web pages (http/https) but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications.
     9 + <a href=https://en.wikipedia.org/wiki/URL> reference </a>.<br><br>
     10 + 
     11 + <b> URL Engine - </b> Is used to enumerate most relevant information about a given URL by querying it and obtainig results from the reponse.
     12 +</p>
     13 + 
     14 +<h2> Features </h2>
     15 + 
     16 +<h2> Usage & Examples </h2>
     17 + 
     18 +<h2> References </h2>
     19 + 
     20 +<h2> NOTE: </h2><br>
     21 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     22 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/asn.html
    1  -<h1> ABOUT ASN Enumerator </h1>
     1 +<h1> ASN Enumerator </h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<h2> Features </h2>
     6 + 
     7 +<h2> Usage & Examples </h2>
     8 + 
     9 +<h2> References </h2>
     10 + 
     11 +<h2> NOTE: </h2><br>
     12 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     13 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/cidr.html
    1  -<h1> ABOUT CIDR Enumerator </h1>
     1 +<h1> CIDR Enumerator </h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<h2> Features </h2>
     6 + 
     7 +<h2> Usage & Examples </h2>
     8 + 
     9 +<h2> References </h2>
     10 + 
     11 +<h2> NOTE: </h2><br>
     12 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     13 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/email.html
    1  -<h1> ABOUT Email Enumerator</h1>
     1 +<h1> Email Enumerator</h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<h2> Features </h2>
     6 + 
     7 +<h2> Usage & Examples </h2>
     8 + 
     9 +<h2> References </h2>
     10 + 
     11 +<h2> NOTE: </h2><br>
     12 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     13 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/ip.html
    1  -<h1> ABOUT IP Enumerator </h1>
     1 +<h1> IP Enumerator </h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<h2> Features </h2>
     6 + 
     7 +<h2> Usage & Examples </h2>
     8 + 
     9 +<h2> References </h2>
     10 + 
     11 +<h2> NOTE: </h2><br>
     12 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     13 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/mx.html
    1  -<h1> ABOUT MX Enumerator </h1>
     1 +<h1> MX Enumerator </h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<h2> Features </h2>
     6 + 
     7 +<h2> Usage & Examples </h2>
     8 + 
     9 +<h2> References </h2>
     10 + 
     11 +<h2> NOTE: </h2><br>
     12 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     13 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/ns.html
    1  -<h1> ABOUT NS Enumerator</h1>
     1 +<h1> NS Enumerator</h1>
     2 + 
     3 +<h2> What is? </h2>
     4 + 
     5 +<p style="color:white">
     6 +<b> DNS NameServer - </b>
     7 +<p>
     8 + 
     9 +<h2> Features </h2>
     10 + 
     11 +<h2> Usage & Examples </h2>
     12 + 
     13 +<h2> References </h2>
     14 + 
     15 +<h2> NOTE: </h2><br>
     16 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     17 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
     18 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/ssl.html
    1  -<h1> ABOUT SSL Enumerator </h1>
     1 +<h1> SSL Enumerator </h1>
     2 + 
     3 +<h2> What is? </h2>
     4 +<p style="color:white">
     5 + <b> SSL/TLS - </b> SSL (Secure Sockets Layer) and its successor, TLS (Transport Layer Security), are protocols for establishing authenticated and encrypted links between networked computers.
     6 + Although the SSL protocol was deprecated with the release of TLS 1.0 in 1999, it is still common to refer to these related technologies as "SSL" or "SSL/TLS".
     7 + <a href=https://www.ssl.com/faqs/faq-what-is-ssl> reference </a>.<br><br>
     8 + 
     9 + <b> SSL Certificates - </b> SSL certificates make SSL/TLS encryption possible, and they contain the website's public key and the website's identity, along with related information.
     10 + Devices attempting to communicate with the origin server will reference this file to obtain the public key and verify the server's identity. The private key is kept secret and secure.
     11 + <a href=https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate> reference </a>.<br><br>
     12 + 
     13 + <b> SSL Enumerator - </b> Is used to enumerate SSL Certificates from targets by passively querying Certificate's hash (sha1 or sha256) to OSINT sources that has SSL Certificates resources such as <a href=https://crt.sh/> crt.sh </a> and pulling the obtained SSL Certificate to
     14 + obtain all relevant information stored in the certificate that can be useful to map the target.<br>
     15 + SSL Certificates store important information such as:<br>
     16 + 1. Associated domains.<br>
     17 + 2. Organization name & contacts.<br>
     18 + 3. Issued & Expirely date of the certificate. etc<br><br>
     19 + 
     20 + sub3suite's SSL Enumerator pulls all the data from the SSL Certificate and present it in a very intuitive manner.
     21 +</p>
     22 + 
     23 +<h2> Features </h2>
     24 + 
     25 +<h2> Usage & Examples </h2>
     26 + 
     27 +<h2> References </h2>
     28 + 
     29 +<h2> NOTE: </h2><br>
     30 +<i> This is a very simple documentation on the Tool. It still doesn't contain many information on the many features of the tool & on how to effectively use the tool.<br>
     31 +Help improve the <a href=https://github.com/3nock/sub3suite_doc> documentation </a>.</i>
  • ■ ■ ■ ■ ■
    sub3suite/res/documentation/enums/url.html
    1  -<h1> ABOUT URL Enumerator </h1>
  • ■ ■ ■ ■ ■ ■
    sub3suite/res/themes/default.css
    skipped 76 lines
    77 77   border-style: solid;
    78 78   border-width:1px;
    79 79   border-color: rgb(30,30,30);
    80  - padding-top: 5px;
     80 + padding-top: 7px;
    81 81  }
    82 82   
    83 83  QGroupBox:title {
    skipped 1 lines
    85 85   left: 10px;
    86 86   margin-left: 3px;
    87 87   margin-right: 3px;
     88 + padding-bottom: 1px;
    88 89  }
    89 90   
    90 91  /****************************** CheckBox ******************************/
    skipped 64 lines
    155 156   
    156 157  /***************************** Headerview *****************************/
    157 158  QHeaderView::section {
    158  - height: 20px;
     159 + min-height: 20px;
    159 160   padding: 1px;
    160 161   background-color: rgb(40,40,40);
    161 162   border-style: solid;
    skipped 7 lines
    169 170  /****************************** ComboBox ******************************/
    170 171  QComboBox {
    171 172   min-height: 19px;
    172  - max-height: 19px;
     173 + min-width: 90px;
     174 + padding-left: 5px;
     175 + padding-right: 1px;
     176 + padding-top: 1px;
     177 + padding-bottom: 1px;
    173 178   border-style: outset;
    174 179   border-style: solid;
    175 180   border-color: rgb(25,25,25);
    176 181   border-width: 1px;
    177  - padding-left: 5px;
    178  - padding-bottom: 1px;
    179 182   color: rgb(255,255,255);
    180 183   background-color: transparent;
    181 184  }
    skipped 481 lines
  • ■ ■ ■ ■
    sub3suite/res.qrc
    skipped 95 lines
    96 96   <file>res/documentation/enums/ns.html</file>
    97 97   <file>res/documentation/enums/ssl.html</file>
    98 98   <file>res/documentation/enums/mx.html</file>
    99  - <file>res/documentation/enums/url.html</file>
    100 99   <file>res/documentation/enums/email.html</file>
    101 100   <file>res/documentation/index.html</file>
    102 101   <file>res/documentation/engines/osint.html</file>
    103 102   <file>res/documentation/engines/images/osint_1.png</file>
    104 103   <file>res/documentation/engines/images/osint_2.png</file>
     104 + <file>res/documentation/engines/url.html</file>
    105 105   </qresource>
    106 106  </RCC>
    107 107   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/AboutDialog.ui
    skipped 187 lines
    188 188   <widget class="QTableView" name="tableViewContributors">
    189 189   <property name="font">
    190 190   <font>
     191 + <family>MS Shell Dlg 2</family>
    191 192   <pointsize>8</pointsize>
    192 193   </font>
    193 194   </property>
    skipped 55 lines
    249 250   <widget class="QTableView" name="tableViewModules">
    250 251   <property name="font">
    251 252   <font>
     253 + <family>MS Shell Dlg 2</family>
    252 254   <pointsize>8</pointsize>
    253 255   </font>
    254 256   </property>
    skipped 55 lines
    310 312   <widget class="QTableView" name="tableViewDonations">
    311 313   <property name="font">
    312 314   <font>
     315 + <family>MS Shell Dlg 2</family>
    313 316   <pointsize>8</pointsize>
    314 317   </font>
    315 318   </property>
    skipped 52 lines
    368 371   <widget class="QPlainTextEdit" name="plainTextEditHistory">
    369 372   <property name="font">
    370 373   <font>
    371  - <pointsize>9</pointsize>
     374 + <pointsize>8</pointsize>
    372 375   </font>
    373 376   </property>
    374 377   </widget>
    skipped 9 lines
    384 387   <widget class="QPlainTextEdit" name="plainTextEditLicense">
    385 388   <property name="font">
    386 389   <font>
    387  - <pointsize>9</pointsize>
     390 + <pointsize>8</pointsize>
    388 391   </font>
    389 392   </property>
    390 393   <property name="textInteractionFlags">
    skipped 14 lines
  • ■ ■ ■ ■
    sub3suite/src/Dialogs/ApiKeysDialog.ui
    skipped 28 lines
    29 29   </size>
    30 30   </property>
    31 31   <property name="windowTitle">
    32  - <string>Api Keys</string>
     32 + <string>API Keys</string>
    33 33   </property>
    34 34   <property name="windowIcon">
    35 35   <iconset>
    skipped 3889 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/DocumentationDialog.cpp
    1 1  #include "DocumentationDialog.h"
    2 2  #include "ui_DocumentationDialog.h"
    3 3   
    4  -#include <QFile>
    5  - 
    6 4   
    7 5  DocumentationDialog::DocumentationDialog(QWidget *parent) :
    8 6   QDialog(parent),
    skipped 7 lines
    16 14   ui->textBrowser->setSearchPaths(QStringList() << ":/documentation/res/documentation/engines"
    17 15   << ":/documentation/res/documentation");
    18 16   
    19  - this->general_documentation();
     17 + this->setWindowTitle("Documentation");
     18 + ui->textBrowser->setSource(QUrl("index.html"));
    20 19  }
    21 20   
    22 21  DocumentationDialog::DocumentationDialog(ENGINE engine, QWidget *parent) :
    skipped 10 lines
    33 32   
    34 33   switch(engine){
    35 34   case ENGINE::OSINT:
    36  - this->about_osint();
     35 + this->setWindowTitle("About OSINT");
     36 + ui->textBrowser->setSource(QUrl("engines/osint.html"));
    37 37   break;
    38 38   case ENGINE::RAW:
    39  - this->about_raw();
     39 + this->setWindowTitle("About RAW");
     40 + ui->textBrowser->setSource(QUrl("engines/raw.html"));
    40 41   break;
    41 42   case ENGINE::BRUTE:
    42  - this->about_brute();
     43 + this->setWindowTitle("About BRUTE");
     44 + ui->textBrowser->setSource(QUrl("engines/brute.html"));
    43 45   break;
    44 46   case ENGINE::ACTIVE:
    45  - this->about_active();
     47 + this->setWindowTitle("About ACTIVE");
     48 + ui->textBrowser->setSource(QUrl("engines/active.html"));
    46 49   break;
    47 50   case ENGINE::DNS:
    48  - this->about_dns();
     51 + this->setWindowTitle("About DNS");
     52 + ui->textBrowser->setSource(QUrl("engines/dns.html"));
    49 53   break;
    50 54   case ENGINE::SSL:
    51  - this->about_ssl();
     55 + this->setWindowTitle("About SSL");
     56 + ui->textBrowser->setSource(QUrl("engines/ssl.html"));
     57 + break;
     58 + case ENGINE::URL:
     59 + this->setWindowTitle("About URL");
     60 + ui->textBrowser->setSource(QUrl("engines/url.html"));
    52 61   break;
    53 62   default:
    54 63   break;
    55 64   }
    56 65  }
    57 66   
    58  -DocumentationDialog::~DocumentationDialog(){
    59  - delete ui;
    60  -}
     67 +DocumentationDialog::DocumentationDialog(ENUMERATOR enumerator, QWidget *parent):
     68 + QDialog(parent),
     69 + ui(new Ui::DocumentationDialog)
     70 +{
     71 + ui->setupUi(this);
     72 + this->setWindowIcon(QIcon(":/img/res/icons/doc.png"));
    61 73   
    62  -void DocumentationDialog::general_documentation(){
    63  - this->setWindowTitle("Documentation");
     74 + /* text broswer */
     75 + ui->textBrowser->setOpenExternalLinks(true);
     76 + ui->textBrowser->setSearchPaths(QStringList() << ":/documentation/res/documentation/enums"
     77 + << ":/documentation/res/documentation");
    64 78   
    65  - ui->textBrowser->setSource(QUrl("index.html"));
    66  -}
    67  - 
    68  -void DocumentationDialog::about_osint(){
    69  - this->setWindowTitle("About OSINT");
    70  - 
    71  - ui->textBrowser->setSource(QUrl("engines/osint.html"));
    72  -}
    73  - 
    74  -void DocumentationDialog::about_raw(){
    75  - this->setWindowTitle("About RAW");
    76  - 
    77  - ui->textBrowser->setSource(QUrl("engines/raw.html"));
    78  -}
    79  - 
    80  -void DocumentationDialog::about_brute(){
    81  - this->setWindowTitle("About BRUTE");
    82  - 
    83  - ui->textBrowser->setSource(QUrl("engines/brute.html"));
    84  -}
    85  - 
    86  -void DocumentationDialog::about_active(){
    87  - this->setWindowTitle("About ACTIVE");
    88  - 
    89  - ui->textBrowser->setSource(QUrl("engines/active.html"));
    90  -}
    91  - 
    92  -void DocumentationDialog::about_dns(){
    93  - this->setWindowTitle("About DNS");
    94  - 
    95  - ui->textBrowser->setSource(QUrl("engines/dns.html"));
     79 + switch(enumerator){
     80 + case ENUMERATOR::IP:
     81 + this->setWindowTitle("About IP Enumerator");
     82 + ui->textBrowser->setSource(QUrl("enums/ip.html"));
     83 + break;
     84 + case ENUMERATOR::ASN:
     85 + this->setWindowTitle("About ASN Enumerator");
     86 + ui->textBrowser->setSource(QUrl("enums/asn.html"));
     87 + break;
     88 + case ENUMERATOR::CIDR:
     89 + this->setWindowTitle("About CIDR Enumerator");
     90 + ui->textBrowser->setSource(QUrl("enums/cidr.html"));
     91 + break;
     92 + case ENUMERATOR::NS:
     93 + this->setWindowTitle("About NS Enumerator");
     94 + ui->textBrowser->setSource(QUrl("enums/ns.html"));
     95 + break;
     96 + case ENUMERATOR::MX:
     97 + this->setWindowTitle("About MX Enumerator");
     98 + ui->textBrowser->setSource(QUrl("enums/mx.html"));
     99 + break;
     100 + case ENUMERATOR::SSL:
     101 + this->setWindowTitle("About SSL Enumerator");
     102 + ui->textBrowser->setSource(QUrl("enums/ssl.html"));
     103 + break;
     104 + case ENUMERATOR::EMAIL:
     105 + this->setWindowTitle("About Email Enumerator");
     106 + ui->textBrowser->setSource(QUrl("enums/email.html"));
     107 + break;
     108 + }
    96 109  }
    97 110   
    98  -void DocumentationDialog::about_ssl(){
    99  - this->setWindowTitle("About SSL");
    100  - 
    101  - ui->textBrowser->setSource(QUrl("engines/ssl.html"));
     111 +DocumentationDialog::~DocumentationDialog(){
     112 + delete ui;
    102 113  }
    103 114   
    104 115  void DocumentationDialog::on_buttonOk_clicked(){
    skipped 7 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/DocumentationDialog.h
    skipped 13 lines
    14 14   
    15 15   public:
    16 16   DocumentationDialog(QWidget *parent = nullptr); // for general documentation
    17  - DocumentationDialog(ENGINE engine, QWidget *parent = nullptr); // for specific documentation
     17 + DocumentationDialog(ENGINE engine, QWidget *parent = nullptr); // documentation for engines
     18 + DocumentationDialog(ENUMERATOR enumerator, QWidget *parent = nullptr); // documentation for enumerators
    18 19   ~DocumentationDialog();
    19 20   
    20 21   private slots:
    skipped 2 lines
    23 24   
    24 25   private:
    25 26   Ui::DocumentationDialog *ui;
    26  - void general_documentation();
    27  - void about_osint();
    28  - void about_raw();
    29  - void about_brute();
    30  - void about_active();
    31  - void about_dns();
    32  - void about_ssl();
    33 27  };
    34 28   
    35 29  #endif // DOCUMENTATIONDIALOG_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/FailedScansDialog.ui
    skipped 25 lines
    26 26   <layout class="QVBoxLayout" name="verticalLayout">
    27 27   <item>
    28 28   <widget class="QTableView" name="tableView">
     29 + <property name="font">
     30 + <font>
     31 + <family>MS Shell Dlg 2</family>
     32 + <pointsize>8</pointsize>
     33 + </font>
     34 + </property>
    29 35   <property name="focusPolicy">
    30 36   <enum>Qt::NoFocus</enum>
    31 37   </property>
    skipped 85 lines
  • ■ ■ ■ ■
    sub3suite/src/Dialogs/LogViewerDialog.ui
    skipped 36 lines
    37 37   <widget class="QComboBox" name="comboBoxLogFile">
    38 38   <property name="minimumSize">
    39 39   <size>
    40  - <width>100</width>
     40 + <width>0</width>
    41 41   <height>0</height>
    42 42   </size>
    43 43   </property>
    skipped 35 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/SaveProjectDialog.cpp
    skipped 50 lines
    51 51   m_projectModel->info.name = name;
    52 52   m_projectModel->info.path = path+"/"+name+".s3s";
    53 53   
    54  - qDebug() << "Saving a project copy: " << m_projectModel->info.path;
    55  - m_projectModel->saveProject();
    56  - qDebug() << "Saving project copy done!";
     54 + /* save the project copy */
     55 + m_projectModel->saveProjectCopy();
    57 56   
    58 57   /* restoring default details */
    59 58   m_projectModel->info.name = prev_name;
    skipped 17 lines
  • ■ ■ ■ ■
    sub3suite/src/Dialogs/StartupDialog.cpp
    skipped 20 lines
    21 21   this->initUI();
    22 22   
    23 23   /* model for existing projects */
    24  - model_existing->setHorizontalHeaderLabels({"Name", "File"});
     24 + model_existing->setHorizontalHeaderLabels({tr(" Name"), tr(" File")});
    25 25   ui->tableViewProjects->setModel(model_existing);
    26 26   
    27 27   /* projects path */
    skipped 196 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/StartupDialog.ui
    skipped 284 lines
    285 285   </property>
    286 286   <item>
    287 287   <widget class="QTableView" name="tableViewProjects">
     288 + <property name="font">
     289 + <font>
     290 + <family>MS Shell Dlg 2</family>
     291 + <pointsize>8</pointsize>
     292 + </font>
     293 + </property>
     294 + <property name="editTriggers">
     295 + <set>QAbstractItemView::NoEditTriggers</set>
     296 + </property>
    288 297   <property name="alternatingRowColors">
    289 298   <bool>true</bool>
    290 299   </property>
    skipped 119 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/Dialogs/WordlistDialog.cpp
    skipped 20 lines
    21 21   this->m_initGenerate();
    22 22   
    23 23   /* adjust the dialog size accordingly */
    24  - 
    25  - 
    26 24   ui->scrollAreaGenerate->hide();
    27 25   this->adjustSize();
    28 26  }
    skipped 26 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/MainWindow.cpp
    skipped 7 lines
    8 8  #include "MainWindow.h"
    9 9  #include "ui_MainWindow.h"
    10 10   
     11 +#include <QScreen>
    11 12  #include <QPushButton>
    12 13  #include <QDesktopServices>
    13 14   
    skipped 7 lines
    21 22   
    22 23  #include "src/utils/Config.h"
    23 24   
    24  -#include <QScreen>
    25 25   
    26  -int buggyFunc() {
    27  - delete reinterpret_cast<QString*>(0xFEE1DEAD);
    28  - return 0;
    29  -}
    30  - 
    31  -///
    32  -/// use this parent for child items to be destroyed when parent is destroyed
    33  -///
    34  -/*
    35  - * TODO:
    36  - * status from all engines, so as to alert during close event
    37  - * if some engines are still active
    38  - */
    39 26  MainWindow::MainWindow(QWidget *parent) :
    40 27   QMainWindow(parent),
    41 28   ui(new Ui::MainWindow)
    42 29  {
    43  - ui->setupUi(this);
    44  - 
    45  - /* init */
    46  - this->m_registerMetaTypes();
    47  - this->m_initEngines();
    48  - this->m_documentation();
    49  - this->recents();
     30 + this->initUI();
     31 + this->initEngines();
    50 32   this->initActions();
     33 + this->setRecentProjects();
    51 34   
     35 + /* check for updates */
    52 36   m_updateChecker = new UpdateChecker(this);
     37 + m_updateChecker->checkForUpdates_onStart();
     38 + ui->statusbar->showMessage("Checking For Updates...", 3000);
     39 +}
     40 +MainWindow::~MainWindow(){
     41 + delete ui;
     42 +}
     43 + 
     44 +void MainWindow::initUI(){
     45 + ui->setupUi(this);
    53 46   
    54 47   /* build info */
    55 48   QAction* buildInfo = new QAction(tr("(%2)").arg("BETA"), this);
    56 49   buildInfo->setEnabled(false);
    57 50   ui->menubar->addAction(buildInfo);
    58 51   
    59  - /* welcome */
    60  - ui->statusbar->showMessage("Welcome!", 5000);
    61  - 
    62 52   /* donate */
    63 53   QWidget *cornerWidget_donate = new QWidget(this);
    64 54   QHBoxLayout *hbox_donate = new QHBoxLayout(cornerWidget_donate);
    skipped 3 lines
    68 58   hbox_donate->setContentsMargins(0, 0, 15, 2);
    69 59   ui->tabWidgetMain->setCornerWidget(cornerWidget_donate);
    70 60   connect(donate, &s3s_ClickableLabel::clicked, this, [=](){
    71  - buggyFunc();
     61 + QDesktopServices::openUrl(QUrl("https://github.com/3nock/sub3suite/SPONSOR.md", QUrl::TolerantMode));
    72 62   });
    73 63   
    74  - /* check for updates */
    75  - m_updateChecker->checkForUpdates_onStart();
    76  - ui->statusbar->showMessage("Checking For Updates...", 3000);
    77  -}
    78  -MainWindow::~MainWindow(){
    79  - delete ui;
     64 + /* documentation */
     65 + QWidget *cornerWidget_active = new QWidget(this);
     66 + QWidget *cornerWidget_passive = new QWidget(this);
     67 + QWidget *cornerWidget_enums = new QWidget(this);
     68 + 
     69 + QHBoxLayout *hbox_active = new QHBoxLayout(cornerWidget_active);
     70 + QHBoxLayout *hbox_passive = new QHBoxLayout(cornerWidget_passive);
     71 + QHBoxLayout *hbox_enums = new QHBoxLayout(cornerWidget_enums);
     72 + 
     73 + s3s_ClickableLabel *documentation_active = new s3s_ClickableLabel("", this);
     74 + s3s_ClickableLabel *documentation_passive = new s3s_ClickableLabel("", this);
     75 + s3s_ClickableLabel *documentation_enums = new s3s_ClickableLabel("", this);
     76 + 
     77 + documentation_active->setPixmap(QPixmap(":/img/res/icons/help.png"));
     78 + documentation_passive->setPixmap(QPixmap(":/img/res/icons/help.png"));
     79 + documentation_enums->setPixmap(QPixmap(":/img/res/icons/help.png"));
     80 + 
     81 + hbox_active->addWidget(documentation_active);
     82 + hbox_passive->addWidget(documentation_passive);
     83 + hbox_enums->addWidget(documentation_enums);
     84 + 
     85 + hbox_active->setContentsMargins(0, 0, 10, 2);
     86 + hbox_passive->setContentsMargins(0, 0, 10, 2);
     87 + hbox_enums->setContentsMargins(0, 0, 10, 2);
     88 + 
     89 + ui->tabWidgetPassive->setCornerWidget(cornerWidget_passive);
     90 + ui->tabWidgetActive->setCornerWidget(cornerWidget_active);
     91 + ui->tabWidgetEnums->setCornerWidget(cornerWidget_enums);
     92 + 
     93 + connect(documentation_passive, &s3s_ClickableLabel::clicked, this, &MainWindow::onGetDocumentation);
     94 + connect(documentation_active, &s3s_ClickableLabel::clicked, this, &MainWindow::onGetDocumentation);
     95 + connect(documentation_enums, &s3s_ClickableLabel::clicked, this, &MainWindow::onGetDocumentation);
    80 96  }
    81 97   
    82 98  void MainWindow::closeEvent(QCloseEvent *event){
    skipped 13 lines
    96 112   /* save project */
    97 113   projectModel->closeProject();
    98 114   }
    99  - 
    100  - /* check if any engine or enumerator is active and prompt to continue */
    101 115  }
    102 116   
    103 117  void MainWindow::initActions(){
    skipped 34 lines
    138 152   ui->menuTools->addAction("Email Enumerator", this, [=](){this->onChangeTabToEmailEnum();})->setIcon(QIcon(":/img/res/icons/email.png"));
    139 153  }
    140 154   
    141  -void MainWindow::recents(){
     155 +void MainWindow::setRecentProjects(){
    142 156   m_menuRecents = new QMenu(this);
    143 157   
    144 158   CONFIG.beginGroup("recent_projects");
    skipped 20 lines
    165 179   project->initProject();
    166 180  }
    167 181   
    168  -void MainWindow::m_registerMetaTypes(){
    169  - qDebug() << "Registering meta types...";
    170  - 
    171  - qRegisterMetaType<ScanLog>("ScanLog");
    172  - qRegisterMetaType<scan::Log>("scan::Log");
    173  - qRegisterMetaType<s3s_struct::RAW>("s3s_struct::RAW");
    174  - qRegisterMetaType<s3s_struct::DNS>("s3s_struct::DNS");
    175  - qRegisterMetaType<s3s_struct::IP>("s3s_struct::IP");
    176  - qRegisterMetaType<s3s_struct::ASN>("s3s_struct::ASN");
    177  - qRegisterMetaType<s3s_struct::CIDR>("s3s_struct::CIDR");
    178  - qRegisterMetaType<s3s_struct::NS>("s3s_struct::NS");
    179  - qRegisterMetaType<s3s_struct::MX>("s3s_struct::MX");
    180  - qRegisterMetaType<s3s_struct::URL>("s3s_struct::URL");
    181  - qRegisterMetaType<s3s_struct::HOST>("s3s_struct::HOST");
    182  - qRegisterMetaType<s3s_struct::Wildcard>("s3s_struct::Wildcard");
    183  - qRegisterMetaType<QSslCertificate>("QSslCertificate");
    184  -}
    185  - 
    186  -void MainWindow::m_initEngines(){
     182 +void MainWindow::initEngines(){
    187 183   /* Project */
    188 184   projectModel = new ProjectModel;
    189 185   project = new Project(this, projectModel);
    skipped 17 lines
    207 203   emailEnum = new EmailEnum(this, projectModel);
    208 204   
    209 205   /* connecting signals from engines */
    210  - this->m_connectSignals(osint);
    211  - this->m_connectSignals(brute);
    212  - this->m_connectSignals(active);
    213  - this->m_connectSignals(dns);
    214  - this->m_connectSignals(ssl);
    215  - this->m_connectSignals(raw);
    216  - this->m_connectSignals(url);
     206 + this->connectSignals(osint);
     207 + this->connectSignals(brute);
     208 + this->connectSignals(active);
     209 + this->connectSignals(dns);
     210 + this->connectSignals(ssl);
     211 + this->connectSignals(raw);
     212 + this->connectSignals(url);
    217 213   
    218 214   /* connecting signals from enumerators */
    219  - this->m_connectSignals(ipEnum);
    220  - this->m_connectSignals(asnEnum);
    221  - this->m_connectSignals(cidrEnum);
    222  - this->m_connectSignals(nsEnum);
    223  - this->m_connectSignals(mxEnum);
    224  - this->m_connectSignals(sslEnum);
    225  - this->m_connectSignals(emailEnum);
     215 + this->connectSignals(ipEnum);
     216 + this->connectSignals(asnEnum);
     217 + this->connectSignals(cidrEnum);
     218 + this->connectSignals(nsEnum);
     219 + this->connectSignals(mxEnum);
     220 + this->connectSignals(sslEnum);
     221 + this->connectSignals(emailEnum);
    226 222   
    227 223   /* connecting signals from project */
    228  - this->m_connectSignals();
     224 + this->connectSignals();
    229 225   
    230 226   /* passive tabwidget */
    231 227   ui->tabWidgetPassive->insertTab(0, osint, "OSINT");
    skipped 19 lines
    251 247   ui->tabWidgetMain->setCurrentIndex(0);
    252 248  }
    253 249   
    254  -void MainWindow::m_connectSignals(AbstractEngine *engine){
     250 +void MainWindow::connectSignals(AbstractEngine *engine){
    255 251   /* sending results */
    256 252   connect(engine, SIGNAL(sendToOsint(QSet<QString>, RESULT_TYPE)), osint, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    257 253   connect(engine, SIGNAL(sendToActive(QSet<QString>, RESULT_TYPE)), active, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    skipped 29 lines
    287 283   connect(engine, SIGNAL(changeTabToEmailEnum()), this, SLOT(onChangeTabToEmailEnum()));
    288 284  }
    289 285   
    290  -void MainWindow::m_connectSignals(AbstractEnum *enumerator){
     286 +void MainWindow::connectSignals(AbstractEnum *enumerator){
    291 287   /* sending results to engine */
    292 288   connect(enumerator, SIGNAL(sendToOsint(QSet<QString>, RESULT_TYPE)), osint, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    293 289   connect(enumerator, SIGNAL(sendToActive(QSet<QString>, RESULT_TYPE)), active, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    skipped 29 lines
    323 319   connect(enumerator, SIGNAL(changeTabToEmailEnum()), this, SLOT(onChangeTabToEmailEnum()));
    324 320  }
    325 321   
    326  -void MainWindow::m_connectSignals(){
     322 +void MainWindow::connectSignals(){
    327 323   /* sending to engine */
    328 324   connect(project, SIGNAL(sendToOsint(QSet<QString>, RESULT_TYPE)), osint, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    329 325   connect(project, SIGNAL(sendToActive(QSet<QString>, RESULT_TYPE)), active, SLOT(onReceiveTargets(QSet<QString>, RESULT_TYPE)));
    skipped 29 lines
    359 355   connect(project, SIGNAL(changeTabToEmailEnum()), this, SLOT(onChangeTabToEmailEnum()));
    360 356  }
    361 357   
    362  -void MainWindow::m_documentation(){
    363  - QWidget *cornerWidget_active = new QWidget(this);
    364  - QWidget *cornerWidget_passive = new QWidget(this);
    365  - QWidget *cornerWidget_enums = new QWidget(this);
     358 +void MainWindow::onGetDocumentation(){
     359 + DocumentationDialog *documentationDialog = nullptr;
    366 360   
    367  - QHBoxLayout *hbox_active = new QHBoxLayout(cornerWidget_active);
    368  - QHBoxLayout *hbox_passive = new QHBoxLayout(cornerWidget_passive);
    369  - QHBoxLayout *hbox_enums = new QHBoxLayout(cornerWidget_enums);
    370  - 
    371  - s3s_ClickableLabel *documentation_active = new s3s_ClickableLabel("", this);
    372  - s3s_ClickableLabel *documentation_passive = new s3s_ClickableLabel("", this);
    373  - s3s_ClickableLabel *documentation_enums = new s3s_ClickableLabel("", this);
    374  - 
    375  - documentation_active->setPixmap(QPixmap(":/img/res/icons/help.png"));
    376  - documentation_passive->setPixmap(QPixmap(":/img/res/icons/help.png"));
    377  - documentation_enums->setPixmap(QPixmap(":/img/res/icons/help.png"));
    378  - 
    379  - hbox_active->addWidget(documentation_active);
    380  - hbox_passive->addWidget(documentation_passive);
    381  - hbox_enums->addWidget(documentation_enums);
     361 + switch (ui->tabWidgetMain->currentIndex())
     362 + {
     363 + case 0: // Passive
     364 + switch (ui->tabWidgetPassive->currentIndex()) {
     365 + case 0:
     366 + documentationDialog = new DocumentationDialog(ENGINE::OSINT, this);
     367 + break;
     368 + case 1:
     369 + documentationDialog = new DocumentationDialog(ENGINE::RAW, this);
     370 + break;
     371 + }
     372 + break;
    382 373   
    383  - hbox_active->setContentsMargins(0, 0, 10, 2);
    384  - hbox_passive->setContentsMargins(0, 0, 10, 2);
    385  - hbox_enums->setContentsMargins(0, 0, 10, 2);
     374 + case 1: // Active
     375 + switch (ui->tabWidgetActive->currentIndex()) {
     376 + case 0:
     377 + documentationDialog = new DocumentationDialog(ENGINE::BRUTE, this);
     378 + break;
     379 + case 1:
     380 + documentationDialog = new DocumentationDialog(ENGINE::ACTIVE, this);
     381 + break;
     382 + case 2:
     383 + documentationDialog = new DocumentationDialog(ENGINE::DNS, this);
     384 + break;
     385 + case 3:
     386 + documentationDialog = new DocumentationDialog(ENGINE::SSL, this);
     387 + break;
     388 + case 4:
     389 + documentationDialog = new DocumentationDialog(ENGINE::URL, this);
     390 + break;
     391 + }
     392 + break;
    386 393   
    387  - ui->tabWidgetPassive->setCornerWidget(cornerWidget_passive);
    388  - ui->tabWidgetActive->setCornerWidget(cornerWidget_active);
    389  - ui->tabWidgetEnums->setCornerWidget(cornerWidget_enums);
     394 + case 2: // Enum
     395 + switch (ui->tabWidgetEnums->currentIndex()) {
     396 + case 0:
     397 + documentationDialog = new DocumentationDialog(ENUMERATOR::IP, this);
     398 + break;
     399 + case 1:
     400 + documentationDialog = new DocumentationDialog(ENUMERATOR::ASN, this);
     401 + break;
     402 + case 2:
     403 + documentationDialog = new DocumentationDialog(ENUMERATOR::CIDR, this);
     404 + break;
     405 + case 3:
     406 + documentationDialog = new DocumentationDialog(ENUMERATOR::NS, this);
     407 + break;
     408 + case 4:
     409 + documentationDialog = new DocumentationDialog(ENUMERATOR::MX, this);
     410 + break;
     411 + case 5:
     412 + documentationDialog = new DocumentationDialog(ENUMERATOR::SSL, this);
     413 + break;
     414 + case 6:
     415 + documentationDialog = new DocumentationDialog(ENUMERATOR::EMAIL, this);
     416 + break;
     417 + }
     418 + }
    390 419   
    391  - connect(documentation_passive, &s3s_ClickableLabel::clicked, this, &MainWindow::onDocumentation_passive);
    392  - connect(documentation_active, &s3s_ClickableLabel::clicked, this, &MainWindow::onDocumentation_active);
    393  - connect(documentation_enums, &s3s_ClickableLabel::clicked, this, &MainWindow::onDocumentation_tools);
     420 + documentationDialog->setAttribute(Qt::WA_DeleteOnClose, true);
     421 + documentationDialog->show();
    394 422  }
    395 423   
     424 +///
     425 +/// Public slots...
     426 +///
     427 + 
    396 428  void MainWindow::onReceiveStatus(QString status){
    397 429   ui->statusbar->showMessage(status, 5000);
    398 430  }
    399  - 
    400  - 
    401  -/* changing tabs */
    402 431   
    403 432  void MainWindow::onChangeTabToOsint(){
    404 433   ui->tabWidgetMain->setCurrentIndex(0);
    skipped 65 lines
    470 499   ui->tabWidgetEnums->setCurrentIndex(6);
    471 500  }
    472 501   
    473  -void MainWindow::onSetTabIcons(){
    474  - /* set tab icon property */
    475  - ui->tabWidgetMain->setProperty("has_icon", true);
    476  - ui->tabWidgetMain->setProperty("has_icon", true);
    477  - ui->tabWidgetMain->setProperty("has_icon", true);
    478  - ui->tabWidgetMain->setProperty("has_icon", true);
    479  - ui->tabWidgetPassive->setProperty("has_icon", true);
    480  - ui->tabWidgetPassive->setProperty("has_icon", true);
    481  - ui->tabWidgetActive->setProperty("has_icon", true);
    482  - ui->tabWidgetActive->setProperty("has_icon", true);
    483  - ui->tabWidgetActive->setProperty("has_icon", true);
    484  - ui->tabWidgetActive->setProperty("has_icon", true);
    485  - ui->tabWidgetActive->setProperty("has_icon", true);
    486  - ui->tabWidgetEnums->setProperty("has_icon", true);
    487  - ui->tabWidgetEnums->setProperty("has_icon", true);
    488  - ui->tabWidgetEnums->setProperty("has_icon", true);
    489  - ui->tabWidgetEnums->setProperty("has_icon", true);
    490  - ui->tabWidgetEnums->setProperty("has_icon", true);
    491  - ui->tabWidgetEnums->setProperty("has_icon", true);
    492  - ui->tabWidgetEnums->setProperty("has_icon", true);
    493  - ui->tabWidgetMain->setProperty("has_icon", true);
    494  - ui->tabWidgetMain->setProperty("has_icon", true);
    495  - ui->tabWidgetMain->setProperty("has_icon", true);
    496  - ui->tabWidgetMain->setProperty("has_icon", true);
    497  - 
    498  - /* set tab icon... */
    499  - ui->tabWidgetMain->setTabIcon(0, QIcon(":/img/res/icons/osint.png"));
    500  - ui->tabWidgetMain->setTabIcon(1, QIcon(":/img/res/icons/active.png"));
    501  - ui->tabWidgetMain->setTabIcon(2, QIcon(":/img/res/icons/list.png"));
    502  - ui->tabWidgetMain->setTabIcon(3, QIcon(":/img/res/icons/project.png"));
    503  - ui->tabWidgetPassive->setTabIcon(0, QIcon(":/img/res/icons/osint.png"));
    504  - ui->tabWidgetPassive->setTabIcon(1, QIcon(":/img/res/icons/raw.png"));
    505  - ui->tabWidgetActive->setTabIcon(0, QIcon(":/img/res/icons/lock.png"));
    506  - ui->tabWidgetActive->setTabIcon(1, QIcon(":/img/res/icons/active.png"));
    507  - ui->tabWidgetActive->setTabIcon(2, QIcon(":/img/res/icons/dns.png"));
    508  - ui->tabWidgetActive->setTabIcon(3, QIcon(":/img/res/icons/ssl.png"));
    509  - ui->tabWidgetActive->setTabIcon(4, QIcon(":/img/res/icons/dns.png"));
    510  - ui->tabWidgetEnums->setTabIcon(0, QIcon(":/img/res/icons/ip.png"));
    511  - ui->tabWidgetEnums->setTabIcon(1, QIcon(":/img/res/icons/asn.png"));
    512  - ui->tabWidgetEnums->setTabIcon(2, QIcon(":/img/res/icons/cidr.png"));
    513  - ui->tabWidgetEnums->setTabIcon(3, QIcon(":/img/res/icons/ns.png"));
    514  - ui->tabWidgetEnums->setTabIcon(4, QIcon(":/img/res/icons/mx.png"));
    515  - ui->tabWidgetEnums->setTabIcon(5, QIcon(":/img/res/icons/ssl.png"));
    516  - ui->tabWidgetEnums->setTabIcon(6, QIcon(":/img/res/icons/email.png"));
    517  -}
    518  - 
    519  -/* Actions */
     502 +///
     503 +/// Actions...
     504 +///
    520 505   
    521 506  void MainWindow::on_actionAbout_triggered(){
    522 507   AboutDialog *aboutDialog = new AboutDialog(this);
    skipped 2 lines
    525 510  }
    526 511   
    527 512  void MainWindow::on_actionAboutQt_triggered(){
    528  - QMessageBox::aboutQt(this, "aboutQt");
     513 + QMessageBox::aboutQt(this, "About Qt");
    529 514  }
    530 515   
    531 516  void MainWindow::on_actionExit_triggered(){
    skipped 8 lines
    540 525   QDesktopServices::openUrl(QUrl("https://twitter.com/sub3suite", QUrl::TolerantMode));
    541 526  }
    542 527   
    543  -void MainWindow::onDocumentation_active(){
    544  - DocumentationDialog *documentationDialog = nullptr;
    545  - 
    546  - switch (ui->tabWidgetActive->currentIndex()) {
    547  - case 0:
    548  - documentationDialog = new DocumentationDialog(ENGINE::BRUTE, this);
    549  - break;
    550  - case 1:
    551  - documentationDialog = new DocumentationDialog(ENGINE::ACTIVE, this);
    552  - break;
    553  - case 2:
    554  - documentationDialog = new DocumentationDialog(ENGINE::DNS, this);
    555  - break;
    556  - case 3:
    557  - documentationDialog = new DocumentationDialog(ENGINE::SSL, this);
    558  - break;
    559  - case 4:
    560  - return;
    561  - }
    562  - 
    563  - documentationDialog->setAttribute(Qt::WA_DeleteOnClose, true);
    564  - documentationDialog->show();
    565  -}
    566  - 
    567  -void MainWindow::onDocumentation_passive(){
    568  - DocumentationDialog *documentationDialog = nullptr;
    569  - switch (ui->tabWidgetPassive->currentIndex()) {
    570  - case 0:
    571  - documentationDialog = new DocumentationDialog(ENGINE::OSINT, this);
    572  - break;
    573  - case 1:
    574  - documentationDialog = new DocumentationDialog(ENGINE::RAW, this);
    575  - break;
    576  - }
    577  - 
    578  - documentationDialog->setAttribute(Qt::WA_DeleteOnClose, true);
    579  - documentationDialog->show();
    580  -}
    581  - 
    582  -void MainWindow::onDocumentation_tools(){
    583  - /*
    584  - * nothing yet...
    585  - */
    586  -}
    587  - 
    588 528  void MainWindow::on_actionApiKeys_triggered(){
    589 529   ApiKeysDialog *apiKeys = new ApiKeysDialog(this);
    590 530   apiKeys->setAttribute(Qt::WA_DeleteOnClose, true);
    skipped 40 lines
    631 571  }
    632 572   
    633 573  void MainWindow::on_actionDonate_triggered(){
    634  - QDesktopServices::openUrl(QUrl("https://github.com/3nock/sub3suite", QUrl::TolerantMode));
     574 + QDesktopServices::openUrl(QUrl("https://github.com/3nock/sub3suite/SPONSOR.md", QUrl::TolerantMode));
    635 575  }
    636 576   
    637 577  void MainWindow::on_actionCheckUpdates_triggered(){
    skipped 10 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/MainWindow.h
    skipped 25 lines
    26 26  #include "src/engines/ssl/Ssl.h"
    27 27  #include "src/engines/url/Url.h"
    28 28   
    29  -/* tools */
     29 +/* Enumerators */
    30 30  #include "src/enums/ip/IpEnum.h"
    31 31  #include "src/enums/asn/ASNEnum.h"
    32 32  #include "src/enums/ssl/SSLEnum.h"
    skipped 22 lines
    55 55   public slots:
    56 56   void onReceiveStatus(QString status);
    57 57   
    58  - /* change to Engine */
     58 + /* tab change */
    59 59   void onChangeTabToOsint();
    60 60   void onChangeTabToActive();
    61 61   void onChangeTabToBrute();
    skipped 1 lines
    63 63   void onChangeTabToRaw();
    64 64   void onChangeTabToSSL();
    65 65   void onChangeTabToURL();
    66  - /* change tab To Enum */
    67 66   void onChangeTabToIpEnum();
    68 67   void onChangeTabToAsnEnum();
    69 68   void onChangeTabToCidrEnum();
    skipped 2 lines
    72 71   void onChangeTabToSSLEnum();
    73 72   void onChangeTabToEmailEnum();
    74 73   
    75  - void onSetTabIcons();
    76  - 
    77 74   private slots:
     75 + /* get documentation */
     76 + void onGetDocumentation();
     77 + 
    78 78   /* file menu */
    79 79   void on_actionExit_triggered();
    80 80   
    skipped 14 lines
    95 95   void on_actionCheckUpdates_triggered();
    96 96   void on_actionSaveCopy_triggered();
    97 97   
    98  - /* documentations */
    99  - void onDocumentation_active();
    100  - void onDocumentation_passive();
    101  - void onDocumentation_tools();
    102  - 
    103 98   protected:
    104 99   void closeEvent(QCloseEvent *event) override;
    105 100   
    skipped 11 lines
    117 112   Ssl *ssl = nullptr;
    118 113   Url *url = nullptr;
    119 114   
    120  - /* tools */
     115 + /* enumerators */
    121 116   IpEnum *ipEnum = nullptr;
    122 117   ASNEnum *asnEnum = nullptr;
    123 118   CidrEnum *cidrEnum = nullptr;
    skipped 2 lines
    126 121   SSLEnum *sslEnum = nullptr;
    127 122   EmailEnum *emailEnum = nullptr;
    128 123   
    129  - /* ... */
    130  - UpdateChecker *m_updateChecker;
    131  - QMenu *m_menuRecents;
    132  - void recents();
     124 + UpdateChecker *m_updateChecker = nullptr;
     125 + QMenu *m_menuRecents = nullptr;
     126 + 
     127 + void initUI();
    133 128   void initActions();
    134  - void m_initEngines();
    135  - void m_documentation();
    136  - void m_registerMetaTypes();
    137  - void m_connectSignals(AbstractEngine *engine);
    138  - void m_connectSignals(AbstractEnum *enumerator);
    139  - void m_connectSignals();
     129 + void initEngines();
     130 + void connectSignals(AbstractEngine *engine); // from Engines
     131 + void connectSignals(AbstractEnum *enumerator); // from Enumerators
     132 + void connectSignals(); // from project
     133 + void setRecentProjects();
    140 134  };
    141 135   
    142 136  #endif // MAINWINDOW_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active.cpp
    skipped 29 lines
    30 30   ui->targets->setListModel(m_targetListModel);
    31 31   
    32 32   /* result model */
     33 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    33 34   m_model->setHorizontalHeaderLabels({tr(" Host"), tr(" Ipv4"), tr(" Ipv6"), tr(" Ports")});
    34 35   proxyModel->setSourceModel(m_model);
    35 36   ui->tableViewResults->setModel(proxyModel);
    36 37   
    37  - ui->tableViewResults->horizontalHeader()->resizeSection(0, 200);
    38  - ui->tableViewResults->horizontalHeader()->resizeSection(1, 100);
    39  - ui->tableViewResults->horizontalHeader()->resizeSection(2, 150);
    40  - ui->tableViewResults->horizontalHeader()->resizeSection(3, 100);
     38 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    41 39   ui->tableViewResults->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
    42 40   
    43 41   /* config... */
    skipped 189 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active.h
    skipped 84 lines
    85 85   void sendSelectedToProject();
    86 86   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    87 87   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    88  - void sendToEnum(const TOOL&);
    89  - void sendSelectedToEnum(const TOOL&);
     88 + void sendToEnum(const ENUMERATOR&);
     89 + void sendSelectedToEnum(const ENUMERATOR&);
    90 90  };
    91 91   
    92 92  #endif // ACTIVE_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active.ui
    skipped 47 lines
    48 48   </property>
    49 49   <property name="minimumSize">
    50 50   <size>
    51  - <width>110</width>
    52  - <height>21</height>
     51 + <width>0</width>
     52 + <height>0</height>
    53 53   </size>
    54 54   </property>
    55 55   <property name="focusPolicy">
    skipped 350 lines
    406 406   <bool>false</bool>
    407 407   </attribute>
    408 408   <attribute name="verticalHeaderMinimumSectionSize">
    409  - <number>15</number>
     409 + <number>50</number>
    410 410   </attribute>
    411 411   <attribute name="verticalHeaderDefaultSectionSize">
    412  - <number>15</number>
     412 + <number>250</number>
    413 413   </attribute>
    414 414   <attribute name="verticalHeaderHighlightSections">
    415 415   <bool>true</bool>
    skipped 6 lines
    422 422   <widget class="QComboBox" name="comboBoxFilter">
    423 423   <property name="minimumSize">
    424 424   <size>
    425  - <width>110</width>
     425 + <width>0</width>
    426 426   <height>0</height>
    427 427   </size>
    428 428   </property>
    skipped 191 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active_actions.cpp
    skipped 368 lines
    369 369   }
    370 370  }
    371 371   
    372  -void Active::sendToEnum(const TOOL &tool){
     372 +void Active::sendToEnum(const ENUMERATOR &tool){
    373 373   QSet<QString> targets;
    374 374   
    375 375   /* getting the targets */
    skipped 4 lines
    380 380   
    381 381   /* sending the targets */
    382 382   switch (tool) {
    383  - case TOOL::IP:
     383 + case ENUMERATOR::IP:
    384 384   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    385 385   emit changeTabToIpEnum();
    386 386   break;
    skipped 2 lines
    389 389   }
    390 390  }
    391 391   
    392  -void Active::sendSelectedToEnum(const TOOL &tool){
     392 +void Active::sendSelectedToEnum(const ENUMERATOR &tool){
    393 393   QSet<QString> targets;
    394 394   
    395 395   /* getting the targets */
    skipped 4 lines
    400 400   
    401 401   /* sending the targets */
    402 402   switch (tool) {
    403  - case TOOL::IP:
     403 + case ENUMERATOR::IP:
    404 404   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    405 405   emit changeTabToIpEnum();
    406 406   break;
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/active/Active_contextmenu.cpp
    skipped 66 lines
    67 67   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->sendToEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    68 68   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->sendToEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    69 69   menu.addSeparator();
    70  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     70 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    71 71   
    72 72   /* showing the context menu... */
    73 73   menu.exec(pos);
    skipped 46 lines
    120 120   }
    121 121   if(selectionModel->columnIntersectsSelection(1, selectionModel->currentIndex().parent()) ||
    122 122   selectionModel->columnIntersectsSelection(2, selectionModel->currentIndex().parent()))
    123  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     123 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    124 124   
    125 125   /* showing the context menu... */
    126 126   menu.exec(QCursor::pos());
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute.cpp
    skipped 35 lines
    36 36   ui->wordlist->setListModel(m_wordlistModel);
    37 37   
    38 38   /* results models */
     39 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    39 40   m_model_subdomain->setHorizontalHeaderLabels({tr(" Subdomain"), tr(" Ipv4"), tr(" Ipv6")});
    40 41   m_model_tld->setHorizontalHeaderLabels({tr(" TLD"), tr(" Ipv4"), tr(" Ipv6")});
    41 42   proxyModel->setSourceModel(m_model_subdomain);
    42 43   ui->tableViewResults->setModel(proxyModel);
    43 44   
    44  - ui->tableViewResults->horizontalHeader()->resizeSection(0, 200);
    45  - ui->tableViewResults->horizontalHeader()->resizeSection(1, 100);
     45 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    46 46   ui->tableViewResults->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
    47 47   
    48 48   m_scanArgs->config = m_scanConfig;
    skipped 257 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute.h
    skipped 96 lines
    97 97   void sendSelectedToProject();
    98 98   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    99 99   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    100  - void sendToEnum(const TOOL&);
    101  - void sendSelectedToEnum(const TOOL&);
     100 + void sendToEnum(const ENUMERATOR&);
     101 + void sendSelectedToEnum(const ENUMERATOR&);
    102 102  };
    103 103   
    104 104  #endif // BRUTE_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute.ui
    skipped 47 lines
    48 48   </property>
    49 49   <property name="minimumSize">
    50 50   <size>
    51  - <width>110</width>
    52  - <height>21</height>
     51 + <width>0</width>
     52 + <height>0</height>
    53 53   </size>
    54 54   </property>
    55 55   <property name="maximumSize">
    56 56   <size>
    57  - <width>110</width>
     57 + <width>16777215</width>
    58 58   <height>16777215</height>
    59 59   </size>
    60 60   </property>
    skipped 396 lines
    457 457   <bool>false</bool>
    458 458   </attribute>
    459 459   <attribute name="verticalHeaderMinimumSectionSize">
    460  - <number>15</number>
     460 + <number>50</number>
    461 461   </attribute>
    462 462   <attribute name="verticalHeaderDefaultSectionSize">
    463  - <number>15</number>
     463 + <number>250</number>
    464 464   </attribute>
    465 465   </widget>
    466 466   </item>
    skipped 3 lines
    470 470   <widget class="QComboBox" name="comboBoxFilter">
    471 471   <property name="minimumSize">
    472 472   <size>
    473  - <width>110</width>
     473 + <width>0</width>
    474 474   <height>0</height>
    475 475   </size>
    476 476   </property>
    skipped 108 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute_actions.cpp
    skipped 416 lines
    417 417   }
    418 418  }
    419 419   
    420  -void Brute::sendToEnum(const TOOL &tool){
     420 +void Brute::sendToEnum(const ENUMERATOR &tool){
    421 421   QSet<QString> targets;
    422 422   
    423 423   /* getting the targets */
    skipped 4 lines
    428 428   
    429 429   /* sending the targets */
    430 430   switch (tool) {
    431  - case TOOL::IP:
     431 + case ENUMERATOR::IP:
    432 432   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    433 433   emit changeTabToIpEnum();
    434 434   break;
    skipped 2 lines
    437 437   }
    438 438  }
    439 439   
    440  -void Brute::sendSelectedToEnum(const TOOL &tool){
     440 +void Brute::sendSelectedToEnum(const ENUMERATOR &tool){
    441 441   QSet<QString> targets;
    442 442   
    443 443   /* getting the targets */
    skipped 4 lines
    448 448   
    449 449   /* sending the targets */
    450 450   switch (tool) {
    451  - case TOOL::IP:
     451 + case ENUMERATOR::IP:
    452 452   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    453 453   emit changeTabToIpEnum();
    454 454   break;
    skipped 18 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/brute/Brute_contextmenu.cpp
    skipped 66 lines
    67 67   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->sendToEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    68 68   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->sendToEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    69 69   menu.addSeparator();
    70  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     70 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    71 71   
    72 72   /* showing the context menu... */
    73 73   menu.exec(pos);
    skipped 46 lines
    120 120   }
    121 121   if(selectionModel->columnIntersectsSelection(1, selectionModel->currentIndex().parent()) ||
    122 122   selectionModel->columnIntersectsSelection(2, selectionModel->currentIndex().parent()))
    123  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     123 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    124 124   
    125 125   /* showing the context menu... */
    126 126   menu.exec(QCursor::pos());
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns.h
    skipped 89 lines
    90 90   void sendSelectedToProject();
    91 91   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    92 92   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    93  - void sendToEnum(const TOOL&);
    94  - void sendSelectedToEnum(const TOOL&);
     93 + void sendToEnum(const ENUMERATOR&);
     94 + void sendSelectedToEnum(const ENUMERATOR&);
    95 95  };
    96 96   
    97 97  #endif // DNS_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns.ui
    skipped 458 lines
    459 459   <bool>true</bool>
    460 460   </attribute>
    461 461   <attribute name="headerMinimumSectionSize">
    462  - <number>200</number>
     462 + <number>50</number>
    463 463   </attribute>
    464 464   <attribute name="headerDefaultSectionSize">
    465  - <number>200</number>
     465 + <number>100</number>
    466 466   </attribute>
    467 467   </widget>
    468 468   </item>
    skipped 3 lines
    472 472   <widget class="QComboBox" name="comboBoxFilter">
    473 473   <property name="minimumSize">
    474 474   <size>
    475  - <width>100</width>
     475 + <width>0</width>
    476 476   <height>0</height>
    477 477   </size>
    478 478   </property>
    skipped 100 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns_actions.cpp
    skipped 469 lines
    470 470   }
    471 471  }
    472 472   
    473  -void Dns::sendToEnum(const TOOL &tool){
     473 +void Dns::sendToEnum(const ENUMERATOR &tool){
    474 474   QSet<QString> targets;
    475 475   
    476 476   /* getting & sending targets */
    477 477   switch (tool) {
    478  - case TOOL::IP:
     478 + case ENUMERATOR::IP:
    479 479   for(int i = 0; i < proxyModel->rowCount(); i++){
    480 480   QModelIndex index = proxyModel->mapToSource(proxyModel->index(i ,0));
    481 481   s3s_item::DNS *item = static_cast<s3s_item::DNS*>(m_model->itemFromIndex(index));
    skipped 7 lines
    489 489   emit changeTabToIpEnum();
    490 490   break;
    491 491   
    492  - case TOOL::NS:
     492 + case ENUMERATOR::NS:
    493 493   for(int i = 0; i < proxyModel->rowCount(); i++){
    494 494   QModelIndex index = proxyModel->mapToSource(proxyModel->index(i ,0));
    495 495   s3s_item::DNS *item = static_cast<s3s_item::DNS*>(m_model->itemFromIndex(index));
    skipped 5 lines
    501 501   emit changeTabToNSEnum();
    502 502   break;
    503 503   
    504  - case TOOL::MX:
     504 + case ENUMERATOR::MX:
    505 505   for(int i = 0; i < proxyModel->rowCount(); i++){
    506 506   QModelIndex index = proxyModel->mapToSource(proxyModel->index(i ,0));
    507 507   s3s_item::DNS *item = static_cast<s3s_item::DNS*>(m_model->itemFromIndex(index));
    skipped 10 lines
    518 518   }
    519 519  }
    520 520   
    521  -void Dns::sendSelectedToEnum(const TOOL &tool){
     521 +void Dns::sendSelectedToEnum(const ENUMERATOR &tool){
    522 522   QSet<QString> targets;
    523 523   
    524 524   /* getting targets */
    skipped 4 lines
    529 529   
    530 530   /* sending targets */
    531 531   switch (tool) {
    532  - case TOOL::IP:
     532 + case ENUMERATOR::IP:
    533 533   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    534 534   emit changeTabToIpEnum();
    535 535   break;
    536  - case TOOL::NS:
     536 + case ENUMERATOR::NS:
    537 537   emit sendToNSEnum(targets, RESULT_TYPE::NS);
    538 538   emit changeTabToNSEnum();
    539 539   break;
    540  - case TOOL::MX:
     540 + case ENUMERATOR::MX:
    541 541   emit sendToMXEnum(targets, RESULT_TYPE::MX);
    542 542   emit changeTabToMXEnum();
    543 543   break;
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/dns/Dns_contextmenu.cpp
    skipped 73 lines
    74 74   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->sendToEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    75 75   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->sendToEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    76 76   menu.addSeparator();
    77  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    78  - menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendToEnum(TOOL::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    79  - menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendToEnum(TOOL::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
     77 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     78 + menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
     79 + menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    80 80   
    81 81   /* showing the context menu... */
    82 82   menu.exec(pos);
    skipped 30 lines
    113 113   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->sendSelectedToEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    114 114   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->sendSelectedToEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    115 115   menu.addSeparator();
    116  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    117  - menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    118  - menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
     116 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     117 + menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
     118 + menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    119 119   
    120 120   /* showing the context menu... */
    121 121   menu.exec(QCursor::pos());
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint.h
    skipped 144 lines
    145 145   void sendToProject();
    146 146   void sendSelectedToProject();
    147 147   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    148  - void sendToEnum(const TOOL&, const RESULT_TYPE&);
     148 + void sendToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    149 149   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    150  - void sendSelectedToEnum(const TOOL&, const RESULT_TYPE&);
     150 + void sendSelectedToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    151 151  };
    152 152   
    153 153  #endif // OSINT_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint.ui
    skipped 53 lines
    54 54   <widget class="QComboBox" name="comboBoxInput">
    55 55   <property name="minimumSize">
    56 56   <size>
    57  - <width>110</width>
    58  - <height>21</height>
     57 + <width>0</width>
     58 + <height>0</height>
    59 59   </size>
    60 60   </property>
    61 61   <property name="focusPolicy">
    skipped 67 lines
    129 129   <widget class="QComboBox" name="comboBoxOutput">
    130 130   <property name="minimumSize">
    131 131   <size>
    132  - <width>110</width>
    133  - <height>21</height>
     132 + <width>0</width>
     133 + <height>0</height>
    134 134   </size>
    135 135   </property>
    136 136   <property name="maximumSize">
    skipped 231 lines
    368 368   </sizepolicy>
    369 369   </property>
    370 370   <property name="text">
    371  - <string>*Api Keys</string>
     371 + <string>*API Keys</string>
    372 372   </property>
    373 373   </widget>
    374 374   </item>
    skipped 238 lines
    613 613   <bool>false</bool>
    614 614   </attribute>
    615 615   <attribute name="verticalHeaderMinimumSectionSize">
    616  - <number>15</number>
     616 + <number>50</number>
    617 617   </attribute>
    618 618   <attribute name="verticalHeaderDefaultSectionSize">
    619  - <number>15</number>
     619 + <number>250</number>
    620 620   </attribute>
    621 621   </widget>
    622 622   </item>
    skipped 3 lines
    626 626   <widget class="QComboBox" name="comboBoxFilter">
    627 627   <property name="minimumSize">
    628 628   <size>
    629  - <width>100</width>
    630  - <height>20</height>
     629 + <width>0</width>
     630 + <height>0</height>
    631 631   </size>
    632 632   </property>
    633 633   <item>
    skipped 469 lines
    1103 1103   <rect>
    1104 1104   <x>0</x>
    1105 1105   <y>0</y>
    1106  - <width>163</width>
     1106 + <width>167</width>
    1107 1107   <height>876</height>
    1108 1108   </rect>
    1109 1109   </property>
    skipped 304 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint_actions.cpp
    skipped 511 lines
    512 512   }
    513 513  }
    514 514   
    515  -void Osint::sendToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     515 +void Osint::sendToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    516 516   QSet<QString> targets;
    517 517   
    518 518   /* getting targets */
    skipped 16 lines
    535 535   
    536 536   /* sending targets */
    537 537   switch (tool) {
    538  - case TOOL::IP:
     538 + case ENUMERATOR::IP:
    539 539   emit sendToIpEnum(targets, result_type);
    540 540   emit changeTabToIpEnum();
    541 541   break;
    542  - case TOOL::ASN:
     542 + case ENUMERATOR::ASN:
    543 543   emit sendToAsnEnum(targets, result_type);
    544 544   emit changeTabToAsnEnum();
    545 545   break;
    546  - case TOOL::CIDR:
     546 + case ENUMERATOR::CIDR:
    547 547   emit sendToCidrEnum(targets, result_type);
    548 548   emit changeTabToCidrEnum();
    549 549   break;
    550  - case TOOL::NS:
     550 + case ENUMERATOR::NS:
    551 551   emit sendToNSEnum(targets, result_type);
    552 552   emit changeTabToNSEnum();
    553 553   break;
    554  - case TOOL::MX:
     554 + case ENUMERATOR::MX:
    555 555   emit sendToMXEnum(targets, result_type);
    556 556   emit changeTabToMXEnum();
    557 557   break;
    558  - case TOOL::SSL:
     558 + case ENUMERATOR::SSL:
    559 559   emit sendToSSLEnum(targets, result_type);
    560 560   emit changeTabToSSLEnum();
    561 561   break;
    562  - case TOOL::EMAIL:
     562 + case ENUMERATOR::EMAIL:
    563 563   emit sendToEmailEnum(targets, result_type);
    564 564   emit changeTabToEmailEnum();
    565 565   break;
    566 566   }
    567 567  }
    568 568   
    569  -void Osint::sendSelectedToEnum(const TOOL &tool , const RESULT_TYPE &result_type){
     569 +void Osint::sendSelectedToEnum(const ENUMERATOR &tool , const RESULT_TYPE &result_type){
    570 570   QSet<QString> targets;
    571 571   
    572 572   /* getting targets */
    skipped 17 lines
    590 590   
    591 591   /* sending targets */
    592 592   switch (tool) {
    593  - case TOOL::IP:
     593 + case ENUMERATOR::IP:
    594 594   emit sendToIpEnum(targets, result_type);
    595 595   emit changeTabToIpEnum();
    596 596   break;
    597  - case TOOL::ASN:
     597 + case ENUMERATOR::ASN:
    598 598   emit sendToAsnEnum(targets, result_type);
    599 599   emit changeTabToAsnEnum();
    600 600   break;
    601  - case TOOL::CIDR:
     601 + case ENUMERATOR::CIDR:
    602 602   emit sendToCidrEnum(targets, result_type);
    603 603   emit changeTabToCidrEnum();
    604 604   break;
    605  - case TOOL::NS:
     605 + case ENUMERATOR::NS:
    606 606   emit sendToNSEnum(targets, result_type);
    607 607   emit changeTabToNSEnum();
    608 608   break;
    609  - case TOOL::MX:
     609 + case ENUMERATOR::MX:
    610 610   emit sendToMXEnum(targets, result_type);
    611 611   emit changeTabToMXEnum();
    612 612   break;
    613  - case TOOL::SSL:
     613 + case ENUMERATOR::SSL:
    614 614   emit sendToSSLEnum(targets, result_type);
    615 615   emit changeTabToSSLEnum();
    616 616   break;
    617  - case TOOL::EMAIL:
     617 + case ENUMERATOR::EMAIL:
    618 618   emit sendToEmailEnum(targets, result_type);
    619 619   emit changeTabToEmailEnum();
    620 620   break;
    skipped 40 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/osint/Osint_contextmenu.cpp
    skipped 65 lines
    66 66   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->sendToEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    67 67   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->sendToEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    68 68   menu.addSeparator();
    69  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     69 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    70 70   }
    71 71   break;
    72 72   case osint::OUTPUT::SUBDOMAIN:
    skipped 19 lines
    92 92   menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    93 93   menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    94 94   menu.addSeparator();
    95  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     95 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    96 96   break;
    97 97   case osint::OUTPUT::EMAIL:
    98 98   menu.addAction(tr("Save"), this, [=](){this->saveResults(RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/save.png"));
    skipped 4 lines
    103 103   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    104 104   menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    105 105   menu.addSeparator();
    106  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     106 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    107 107   break;
    108 108   case osint::OUTPUT::URL:
    109 109   menu.addAction(tr("Save"), this, [=](){this->saveResults(RESULT_TYPE::URL);})->setIcon(QIcon(":/img/res/icons/save.png"));
    skipped 13 lines
    123 123   menu.addAction(tr("Send ASN to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    124 124   menu.addAction(tr("Send ASN to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    125 125   menu.addSeparator();
    126  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     126 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    127 127   break;
    128 128   case osint::OUTPUT::CERT:
    129 129   menu.addAction(tr("Save"), this, [=](){this->saveResults(RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/save.png"));
    skipped 4 lines
    134 134   menu.addAction(tr("Send SSL to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    135 135   menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    136 136   menu.addSeparator();
    137  - menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(TOOL::SSL, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
     137 + menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::SSL, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    138 138   break;
    139 139   case osint::OUTPUT::CIDR:
    140 140   menu.addAction(tr("Save"), this, [=](){this->saveResults(RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/save.png"));
    skipped 4 lines
    145 145   menu.addAction(tr("Send CIDR to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    146 146   menu.addAction(tr("Send CIDR to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    147 147   menu.addSeparator();
    148  - menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
     148 + menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    149 149   }
    150 150   
    151 151   /* showing the context menu... */
    skipped 51 lines
    203 203   menu.addSeparator();
    204 204   }
    205 205   if(selectionModel->columnIntersectsSelection(1, selectionModel->currentIndex().parent()))
    206  - menu.addAction(tr("Send IpAddress To IP-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     206 + menu.addAction(tr("Send IpAddress To IP-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    207 207   break;
    208 208   case osint::OUTPUT::SUBDOMAIN:
    209 209   menu.addAction(tr("Send Hostname To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    skipped 7 lines
    217 217   menu.addAction(tr("Send IpAddress To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    218 218   menu.addAction(tr("Send IpAddress To RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    219 219   menu.addSeparator();
    220  - menu.addAction(tr("Send IpAddress To IP-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     220 + menu.addAction(tr("Send IpAddress To IP-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    221 221   break;
    222 222   case osint::OUTPUT::EMAIL:
    223 223   menu.addAction(tr("Send Email To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    224 224   menu.addAction(tr("Send Email To RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    225 225   menu.addSeparator();
    226  - menu.addAction(tr("Send Email To EMAIL-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     226 + menu.addAction(tr("Send Email To EMAIL-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    227 227   break;
    228 228   case osint::OUTPUT::URL:
    229 229   menu.addAction(tr("Send URL To URL"), this, [=](){this->sendSelectedToEngine(ENGINE::URL, RESULT_TYPE::URL);})->setIcon(QIcon(":/img/res/icons/url.png"));
    skipped 3 lines
    233 233   menu.addAction(tr("Send ASN To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    234 234   menu.addAction(tr("Send ASN To RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    235 235   menu.addSeparator();
    236  - menu.addAction(tr("Send ASN To ASN-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     236 + menu.addAction(tr("Send ASN To ASN-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    237 237   break;
    238 238   case osint::OUTPUT::CERT:
    239 239   menu.addAction(tr("Send SSL To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    240 240   menu.addAction(tr("Send SSL To RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    241 241   menu.addSeparator();
    242  - menu.addAction(tr("Send SSL To SSL-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::SSL, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
     242 + menu.addAction(tr("Send SSL To SSL-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::SSL, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    243 243   break;
    244 244   case osint::OUTPUT::CIDR:
    245 245   menu.addAction(tr("Send CIDR To OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    246 246   menu.addAction(tr("Send CIDR To RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    247 247   menu.addSeparator();
    248  - menu.addAction(tr("Send CIDR To CIDR-Enum"), this, [=](){this->sendSelectedToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
     248 + menu.addAction(tr("Send CIDR To CIDR-Enum"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    249 249   }
    250 250   
    251 251   /* showing the context menu... */
    skipped 3 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.cpp
    skipped 76 lines
    77 77   ui->lineEditFind->setPlaceholderText(tr("Find..."));
    78 78   ui->lineEditFind_json->setPlaceholderText("Find...");
    79 79   ui->lineEditTreeFilter->setPlaceholderText(tr("Filter..."));
     80 + ui->plainTextEditJson->setPlaceholderText("Double-click on an item (first column) on Tree-tab to view it in json...");
    80 81   
    81 82   /* ... */
    82 83   ui->labelUrl->setTextFormat(Qt::RichText);
    skipped 244 lines
  • ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.h
    skipped 198 lines
    199 199   void sendToProject();
    200 200   void sendSelectedToProject();
    201 201   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    202  - void sendToEnum(const TOOL&, const RESULT_TYPE&);
     202 + void sendToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    203 203  };
    204 204   
    205 205  #endif // Raw_H
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw.ui
    skipped 29 lines
    30 30   <layout class="QHBoxLayout" name="horizontalLayout">
    31 31   <item>
    32 32   <widget class="QComboBox" name="comboBox">
     33 + <property name="sizePolicy">
     34 + <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
     35 + <horstretch>0</horstretch>
     36 + <verstretch>0</verstretch>
     37 + </sizepolicy>
     38 + </property>
    33 39   <property name="minimumSize">
    34 40   <size>
    35  - <width>100</width>
     41 + <width>0</width>
    36 42   <height>0</height>
    37 43   </size>
    38 44   </property>
    skipped 112 lines
    151 157   <item>
    152 158   <widget class="QLabel" name="label_17">
    153 159   <property name="text">
    154  - <string>*Api Keys</string>
     160 + <string>*API Keys</string>
    155 161   </property>
    156 162   </widget>
    157 163   </item>
    skipped 255 lines
    413 419   <number>100</number>
    414 420   </attribute>
    415 421   <attribute name="headerDefaultSectionSize">
    416  - <number>200</number>
     422 + <number>250</number>
    417 423   </attribute>
    418 424   <attribute name="headerShowSortIndicator" stdset="0">
    419 425   <bool>false</bool>
    skipped 365 lines
    785 791   </item>
    786 792   <item>
    787 793   <widget class="QComboBox" name="comboBoxOptions">
     794 + <property name="sizePolicy">
     795 + <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
     796 + <horstretch>0</horstretch>
     797 + <verstretch>0</verstretch>
     798 + </sizepolicy>
     799 + </property>
    788 800   <property name="minimumSize">
    789 801   <size>
    790  - <width>170</width>
    791  - <height>21</height>
     802 + <width>0</width>
     803 + <height>0</height>
    792 804   </size>
    793 805   </property>
    794 806   </widget>
    skipped 799 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw_actions.cpp
    skipped 205 lines
    206 206   }
    207 207  }
    208 208   
    209  -void Raw::sendToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     209 +void Raw::sendToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    210 210   QSet<QString> targets;
    211 211   foreach(const QModelIndex &index, selectionModel->selectedIndexes())
    212 212   targets.insert(index.data().toString());
    213 213   
    214 214   switch (tool) {
    215  - case TOOL::IP:
     215 + case ENUMERATOR::IP:
    216 216   emit sendToIpEnum(targets, result_type);
    217 217   emit changeTabToIpEnum();
    218 218   break;
    219  - case TOOL::ASN:
     219 + case ENUMERATOR::ASN:
    220 220   emit sendToAsnEnum(targets, result_type);
    221 221   emit changeTabToAsnEnum();
    222 222   break;
    223  - case TOOL::CIDR:
     223 + case ENUMERATOR::CIDR:
    224 224   emit sendToCidrEnum(targets, result_type);
    225 225   emit changeTabToCidrEnum();
    226 226   break;
    227  - case TOOL::NS:
     227 + case ENUMERATOR::NS:
    228 228   emit sendToNSEnum(targets, result_type);
    229 229   emit changeTabToNSEnum();
    230 230   break;
    231  - case TOOL::MX:
     231 + case ENUMERATOR::MX:
    232 232   emit sendToMXEnum(targets, result_type);
    233 233   emit changeTabToMXEnum();
    234 234   break;
    235  - case TOOL::EMAIL:
     235 + case ENUMERATOR::EMAIL:
    236 236   emit sendToEmailEnum(targets, result_type);
    237 237   emit changeTabToEmailEnum();
    238 238   break;
    239  - case TOOL::SSL:
     239 + case ENUMERATOR::SSL:
    240 240   emit sendToSSLEnum(targets, result_type);
    241 241   emit changeTabToSSLEnum();
    242 242   break;
    skipped 44 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/raw/Raw_contextmenu.cpp
    skipped 84 lines
    85 85   send_ip_menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::IP);});
    86 86   send_ip_menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::IP);});
    87 87   send_ip_menu.addSeparator();
    88  - send_ip_menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(TOOL::IP, RESULT_TYPE::IP);});
     88 + send_ip_menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);});
    89 89   
    90 90   QMenu send_url_menu(this);
    91 91   send_url_menu.setTitle(tr("URL"));
    skipped 8 lines
    100 100   send_email_menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);});
    101 101   send_email_menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);});
    102 102   send_email_menu.addSeparator();
    103  - send_email_menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);});
     103 + send_email_menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);});
    104 104   
    105 105   QMenu send_asn_menu(this);
    106 106   send_asn_menu.setTitle(tr("ASN"));
    skipped 1 lines
    108 108   send_asn_menu.addAction(tr("Send ASN to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::ASN);});
    109 109   send_asn_menu.addAction(tr("Send ASN to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::ASN);});
    110 110   send_asn_menu.addSeparator();
    111  - send_asn_menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);});
     111 + send_asn_menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);});
    112 112   
    113 113   QMenu send_cidr_menu(this);
    114 114   send_cidr_menu.setTitle(tr("CIDR"));
    skipped 1 lines
    116 116   send_cidr_menu.addAction(tr("Send CIDR to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::CIDR);});
    117 117   send_cidr_menu.addAction(tr("Send CIDR to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::CIDR);});
    118 118   send_cidr_menu.addSeparator();
    119  - send_cidr_menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);});
     119 + send_cidr_menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);});
    120 120   
    121 121   QMenu send_ssl_menu(this);
    122 122   send_ssl_menu.setTitle(tr("SSL"));
    skipped 1 lines
    124 124   send_ssl_menu.addAction(tr("Send SSL to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);});
    125 125   send_ssl_menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::CERT_ID);});
    126 126   send_ssl_menu.addSeparator();
    127  - send_ssl_menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(TOOL::SSL, RESULT_TYPE::CERT_ID);});
     127 + send_ssl_menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::SSL, RESULT_TYPE::CERT_ID);});
    128 128   
    129 129   QMenu send_ns_menu(this);
    130 130   send_ns_menu.setTitle(tr("NameServer"));
    131 131   send_ns_menu.setIcon(QIcon(":/img/res/icons/ns.png"));
    132  - send_ns_menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendToEnum(TOOL::NS, RESULT_TYPE::NS);});
     132 + send_ns_menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::NS, RESULT_TYPE::NS);});
    133 133   
    134 134   QMenu send_mx_menu(this);
    135 135   send_mx_menu.setTitle(tr("MailServer"));
    136 136   send_mx_menu.setIcon(QIcon(":/img/res/icons/mx.png"));
    137  - send_mx_menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendToEnum(TOOL::MX, RESULT_TYPE::MX);});
     137 + send_mx_menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::MX, RESULT_TYPE::MX);});
    138 138   
    139 139   QMenu send_menu(this);
    140 140   send_menu.setTitle(tr("Send Item"));
    skipped 26 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl.h
    skipped 90 lines
    91 91   void sendSelectedToProject();
    92 92   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    93 93   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    94  - void sendToEnum(const TOOL&);
    95  - void sendSelectedToEnum(const TOOL&);
     94 + void sendToEnum(const ENUMERATOR&);
     95 + void sendSelectedToEnum(const ENUMERATOR&);
    96 96  };
    97 97   
    98 98  #endif // SSL_H
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl.ui
    skipped 44 lines
    45 45   </property>
    46 46   <property name="minimumSize">
    47 47   <size>
    48  - <width>110</width>
    49  - <height>21</height>
     48 + <width>0</width>
     49 + <height>0</height>
    50 50   </size>
    51 51   </property>
    52 52   <property name="focusPolicy">
    skipped 23 lines
    76 76   <widget class="QComboBox" name="comboBoxOption">
    77 77   <property name="minimumSize">
    78 78   <size>
    79  - <width>110</width>
    80  - <height>21</height>
     79 + <width>0</width>
     80 + <height>0</height>
    81 81   </size>
    82 82   </property>
    83 83   <item>
    skipped 12 lines
    96 96   <widget class="QComboBox" name="comboBoxProtocal">
    97 97   <property name="minimumSize">
    98 98   <size>
    99  - <width>110</width>
    100  - <height>21</height>
     99 + <width>0</width>
     100 + <height>0</height>
    101 101   </size>
    102 102   </property>
    103 103   <item>
    skipped 144 lines
    248 248   <property name="minimumSize">
    249 249   <size>
    250 250   <width>0</width>
    251  - <height>20</height>
     251 + <height>0</height>
    252 252   </size>
    253 253   </property>
    254 254   <property name="maximumSize">
    255 255   <size>
    256 256   <width>16777215</width>
    257  - <height>19</height>
     257 + <height>16777215</height>
    258 258   </size>
    259 259   </property>
    260 260   <property name="styleSheet">
    skipped 200 lines
    461 461   <bool>true</bool>
    462 462   </attribute>
    463 463   <attribute name="headerMinimumSectionSize">
    464  - <number>200</number>
     464 + <number>50</number>
    465 465   </attribute>
    466 466   <attribute name="headerDefaultSectionSize">
    467  - <number>200</number>
     467 + <number>250</number>
    468 468   </attribute>
    469 469   <attribute name="headerStretchLastSection">
    470 470   <bool>true</bool>
    skipped 6 lines
    477 477   <widget class="QComboBox" name="comboBoxFilter">
    478 478   <property name="minimumSize">
    479 479   <size>
    480  - <width>100</width>
     480 + <width>0</width>
    481 481   <height>0</height>
    482 482   </size>
    483 483   </property>
    skipped 130 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl_actions.cpp
    skipped 363 lines
    364 364   }
    365 365  }
    366 366   
    367  -void Ssl::sendToEnum(const TOOL &tool){
     367 +void Ssl::sendToEnum(const ENUMERATOR &tool){
    368 368   QSet<QString> targets;
    369 369   
    370 370   /* getting targets */
    skipped 3 lines
    374 374   }
    375 375   
    376 376   /* sending targets */
    377  - if(tool == TOOL::SSL){
     377 + if(tool == ENUMERATOR::SSL){
    378 378   emit sendToSSLEnum(targets, RESULT_TYPE::CERT_ID);
    379 379   emit changeTabToSSLEnum();
    380 380   }
    381 381  }
    382 382   
    383  -void Ssl::sendSelectedToEnum(const TOOL &tool){
     383 +void Ssl::sendSelectedToEnum(const ENUMERATOR &tool){
    384 384   QSet<QString> targets;
    385 385   
    386 386   /* getting targets */
    skipped 3 lines
    390 390   }
    391 391   
    392 392   /* sending targets */
    393  - if(tool == TOOL::SSL){
     393 + if(tool == ENUMERATOR::SSL){
    394 394   emit sendToSSLEnum(targets, RESULT_TYPE::CERT_ID);
    395 395   emit changeTabToSSLEnum();
    396 396   }
    skipped 14 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/ssl/Ssl_contextmenu.cpp
    skipped 49 lines
    50 50   menu.addAction(tr("Send SSL to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    51 51   menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    52 52   menu.addSeparator();
    53  - menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(TOOL::SSL);})->setIcon(QIcon(":/img/res/icons/hash.png"));
     53 + menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::SSL);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    54 54   break;
    55 55   case 2: // ssl
    56 56   menu.addAction(tr("Send To Project"), this, [=](){this->sendToProject();})->setIcon(QIcon(":/img/res/icons/project.png"));
    skipped 43 lines
    100 100   menu.addAction(tr("Send SSL to OSINT"), this, [=](){this->sendSelectedToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    101 101   menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendSelectedToEngine(ENGINE::RAW, RESULT_TYPE::CERT_ID);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    102 102   menu.addSeparator();
    103  - menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendSelectedToEnum(TOOL::SSL);})->setIcon(QIcon(":/img/res/icons/hash.png"));
     103 + menu.addAction(tr("Send SSL to RAW"), this, [=](){this->sendSelectedToEnum(ENUMERATOR::SSL);})->setIcon(QIcon(":/img/res/icons/hash.png"));
    104 104   break;
    105 105   case 2: // ssl
    106 106   menu.addAction(tr("Send To Project"), this, [=](){this->sendSelectedToProject();})->setIcon(QIcon(":/img/res/icons/project.png"));
    skipped 7 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/engines/url/Url.cpp
    skipped 28 lines
    29 29   this->initUI();
    30 30   
    31 31   /* result model */
     32 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    32 33   m_model->setHorizontalHeaderLabels({tr(" URL"), tr(" Status"), tr(" Server"), tr(" Content Type")});
    33 34   proxyModel->setSourceModel(m_model);
    34 35   ui->tableViewResults->setModel(proxyModel);
    35 36   
     37 + ui->tableViewResults->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    36 38   ui->tableViewResults->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
    37  - ui->tableViewResults->horizontalHeader()->resizeSection(0, 230);
    38  - ui->tableViewResults->horizontalHeader()->resizeSection(1, 10);
    39  - ui->tableViewResults->horizontalHeader()->resizeSection(2, 120);
    40 39   
    41 40   /* config... */
    42 41   m_scanArgs->config = m_scanConfig;
    skipped 160 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/engines/url/Url.ui
    skipped 40 lines
    41 41   </property>
    42 42   <property name="minimumSize">
    43 43   <size>
    44  - <width>110</width>
    45  - <height>21</height>
     44 + <width>0</width>
     45 + <height>0</height>
    46 46   </size>
    47 47   </property>
    48 48   <property name="focusPolicy">
    skipped 4 lines
    53 53   </property>
    54 54   <item>
    55 55   <property name="text">
    56  - <string>Auto</string>
     56 + <string>Target</string>
    57 57   </property>
    58 58   </item>
    59 59   </widget>
    skipped 340 lines
    400 400   <bool>false</bool>
    401 401   </attribute>
    402 402   <attribute name="verticalHeaderMinimumSectionSize">
    403  - <number>15</number>
     403 + <number>50</number>
    404 404   </attribute>
    405 405   <attribute name="verticalHeaderDefaultSectionSize">
    406  - <number>15</number>
     406 + <number>250</number>
    407 407   </attribute>
    408 408   <attribute name="verticalHeaderHighlightSections">
    409 409   <bool>false</bool>
    skipped 6 lines
    416 416   <widget class="QComboBox" name="comboBoxFilter">
    417 417   <property name="minimumSize">
    418 418   <size>
    419  - <width>110</width>
     419 + <width>0</width>
    420 420   <height>0</height>
    421 421   </size>
    422 422   </property>
    skipped 96 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum.h
    skipped 74 lines
    75 75   void sendSelectedToProject();
    76 76   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    77 77   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    78  - void sendToEnum(const TOOL&, const RESULT_TYPE&);
    79  - void sendSelectedToEnum(const TOOL&, const RESULT_TYPE&);
     78 + void sendToEnum(const ENUMERATOR&, const RESULT_TYPE&);
     79 + void sendSelectedToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    80 80  };
    81 81   
    82 82  #endif // ASNENUM_H
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxOption">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>100</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 25 lines
    71 71   <widget class="QComboBox" name="comboBoxEngine">
    72 72   <property name="minimumSize">
    73 73   <size>
    74  - <width>100</width>
     74 + <width>0</width>
    75 75   <height>0</height>
    76 76   </size>
    77 77   </property>
    skipped 171 lines
    249 249   </item>
    250 250   <item>
    251 251   <widget class="QTreeView" name="treeViewResults">
     252 + <property name="font">
     253 + <font>
     254 + <family>MS Shell Dlg 2</family>
     255 + <pointsize>8</pointsize>
     256 + </font>
     257 + </property>
    252 258   <property name="contextMenuPolicy">
    253 259   <enum>Qt::CustomContextMenu</enum>
    254 260   </property>
    skipped 29 lines
    284 290   <widget class="QComboBox" name="comboBoxFilter">
    285 291   <property name="minimumSize">
    286 292   <size>
    287  - <width>100</width>
     293 + <width>0</width>
    288 294   <height>0</height>
    289 295   </size>
    290 296   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum_actions.cpp
    skipped 246 lines
    247 247   }
    248 248  }
    249 249   
    250  -void ASNEnum::sendToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     250 +void ASNEnum::sendToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    251 251   QSet<QString> targets;
    252 252   
    253 253   /* getting targets */
    skipped 33 lines
    287 287   
    288 288   /* sending targets */
    289 289   switch (tool) {
    290  - case TOOL::ASN:
     290 + case ENUMERATOR::ASN:
    291 291   emit sendToAsnEnum(targets, result_type);
    292 292   emit changeTabToAsnEnum();
    293 293   break;
    294  - case TOOL::CIDR:
     294 + case ENUMERATOR::CIDR:
    295 295   emit sendToCidrEnum(targets, result_type);
    296 296   emit changeTabToCidrEnum();
    297 297   break;
    298  - case TOOL::EMAIL:
     298 + case ENUMERATOR::EMAIL:
    299 299   emit sendToEmailEnum(targets, result_type);
    300 300   emit changeTabToEmailEnum();
    301 301   break;
    skipped 2 lines
    304 304   }
    305 305  }
    306 306   
    307  -void ASNEnum::sendSelectedToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     307 +void ASNEnum::sendSelectedToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    308 308   QSet<QString> targets;
    309 309   
    310 310   /* getting targets */
    skipped 3 lines
    314 314   
    315 315   /* sending targets */
    316 316   switch (tool) {
    317  - case TOOL::ASN:
     317 + case ENUMERATOR::ASN:
    318 318   emit sendToAsnEnum(targets, result_type);
    319 319   emit changeTabToAsnEnum();
    320 320   break;
    321  - case TOOL::CIDR:
     321 + case ENUMERATOR::CIDR:
    322 322   emit sendToCidrEnum(targets, result_type);
    323 323   emit changeTabToCidrEnum();
    324 324   break;
    325  - case TOOL::EMAIL:
     325 + case ENUMERATOR::EMAIL:
    326 326   emit sendToEmailEnum(targets, result_type);
    327 327   emit changeTabToEmailEnum();
    328 328   break;
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/asn/ASNEnum_contextmenu.cpp
    skipped 31 lines
    32 32   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    33 33   menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    34 34   menu.addSeparator();
    35  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    36  - menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    37  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     35 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     36 + menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
     37 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    38 38   
    39 39   /* showing the context menu... */
    40 40   menu.exec(pos);
    skipped 26 lines
    67 67   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    68 68   menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    69 69   menu.addSeparator();
    70  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    71  - menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
    72  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     70 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     71 + menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);})->setIcon(QIcon(":/img/res/icons/cidr.png"));
     72 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    73 73   }
    74 74   
    75 75   /* showing the context menu... */
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum.h
    skipped 73 lines
    74 74   void sendSelectedToProject();
    75 75   void sendToEngine(const ENGINE&, const RESULT_TYPE&);
    76 76   void sendSelectedToEngine(const ENGINE&, const RESULT_TYPE&);
    77  - void sendToEnum(const TOOL&, const RESULT_TYPE&);
    78  - void sendSelectedToEnum(const TOOL&, const RESULT_TYPE&);
     77 + void sendToEnum(const ENUMERATOR&, const RESULT_TYPE&);
     78 + void sendSelectedToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    79 79  };
    80 80   
    81 81  #endif // CIDRENUM_H
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxOption">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>100</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 15 lines
    61 61   <widget class="QComboBox" name="comboBoxEngine">
    62 62   <property name="minimumSize">
    63 63   <size>
    64  - <width>100</width>
     64 + <width>0</width>
    65 65   <height>0</height>
    66 66   </size>
    67 67   </property>
    skipped 165 lines
    233 233   </item>
    234 234   <item>
    235 235   <widget class="QTreeView" name="treeViewResults">
     236 + <property name="font">
     237 + <font>
     238 + <family>MS Shell Dlg 2</family>
     239 + <pointsize>8</pointsize>
     240 + </font>
     241 + </property>
    236 242   <property name="contextMenuPolicy">
    237 243   <enum>Qt::CustomContextMenu</enum>
    238 244   </property>
    skipped 26 lines
    265 271   <widget class="QComboBox" name="comboBoxFilter">
    266 272   <property name="minimumSize">
    267 273   <size>
    268  - <width>100</width>
     274 + <width>0</width>
    269 275   <height>0</height>
    270 276   </size>
    271 277   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum_actions.cpp
    skipped 241 lines
    242 242   }
    243 243  }
    244 244   
    245  -void CidrEnum::sendToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     245 +void CidrEnum::sendToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    246 246   QSet<QString> targets;
    247 247   
    248 248   /* getting targets */
    skipped 24 lines
    273 273   
    274 274   /* sending targets */
    275 275   switch (tool) {
    276  - case TOOL::ASN:
     276 + case ENUMERATOR::ASN:
    277 277   emit sendToAsnEnum(targets, result_type);
    278 278   emit changeTabToAsnEnum();
    279 279   break;
    280  - case TOOL::EMAIL:
     280 + case ENUMERATOR::EMAIL:
    281 281   emit sendToEmailEnum(targets, result_type);
    282 282   emit changeTabToEmailEnum();
    283 283   break;
    skipped 2 lines
    286 286   }
    287 287  }
    288 288   
    289  -void CidrEnum::sendSelectedToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     289 +void CidrEnum::sendSelectedToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    290 290   QSet<QString> targets;
    291 291   
    292 292   /* getting targets */
    skipped 3 lines
    296 296   
    297 297   /* sending targets */
    298 298   switch (tool) {
    299  - case TOOL::ASN:
     299 + case ENUMERATOR::ASN:
    300 300   emit sendToAsnEnum(targets, result_type);
    301 301   emit changeTabToAsnEnum();
    302 302   break;
    303  - case TOOL::EMAIL:
     303 + case ENUMERATOR::EMAIL:
    304 304   emit sendToEmailEnum(targets, result_type);
    305 305   emit changeTabToEmailEnum();
    306 306   break;
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/cidr/CidrEnum_contextmenu.cpp
    skipped 29 lines
    30 30   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    31 31   menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    32 32   menu.addSeparator();
    33  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    34  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     33 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     34 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    35 35   
    36 36   /* showing the context menu... */
    37 37   menu.exec(pos);
    skipped 24 lines
    62 62   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    63 63   menu.addAction(tr("Send Email to RAW"), this, [=](){this->sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    64 64   menu.addSeparator();
    65  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    66  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     65 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     66 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    67 67   }
    68 68   
    69 69   /* showing the context menu... */
    skipped 3 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/email/EmailEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxEngine">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>110</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 177 lines
    223 223   </item>
    224 224   <item>
    225 225   <widget class="QTreeView" name="treeViewResults">
     226 + <property name="font">
     227 + <font>
     228 + <family>MS Shell Dlg 2</family>
     229 + <pointsize>8</pointsize>
     230 + </font>
     231 + </property>
    226 232   <property name="acceptDrops">
    227 233   <bool>false</bool>
    228 234   </property>
    skipped 23 lines
    252 258   <widget class="QComboBox" name="comboBoxFilter">
    253 259   <property name="minimumSize">
    254 260   <size>
    255  - <width>100</width>
     261 + <width>0</width>
    256 262   <height>0</height>
    257 263   </size>
    258 264   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ip/IpEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxOutput">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>110</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 20 lines
    66 66   <widget class="QComboBox" name="comboBoxEngine">
    67 67   <property name="minimumSize">
    68 68   <size>
    69  - <width>110</width>
     69 + <width>0</width>
    70 70   <height>0</height>
    71 71   </size>
    72 72   </property>
    skipped 188 lines
    261 261   </item>
    262 262   <item>
    263 263   <widget class="QTreeView" name="treeViewResults">
     264 + <property name="font">
     265 + <font>
     266 + <family>MS Shell Dlg 2</family>
     267 + <pointsize>8</pointsize>
     268 + </font>
     269 + </property>
    264 270   <property name="contextMenuPolicy">
    265 271   <enum>Qt::CustomContextMenu</enum>
    266 272   </property>
    skipped 26 lines
    293 299   <widget class="QComboBox" name="comboBoxFilter">
    294 300   <property name="minimumSize">
    295 301   <size>
    296  - <width>100</width>
     302 + <width>0</width>
    297 303   <height>0</height>
    298 304   </size>
    299 305   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/mx/MXEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxOption">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>110</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 15 lines
    61 61   <widget class="QComboBox" name="comboBoxEngine">
    62 62   <property name="minimumSize">
    63 63   <size>
    64  - <width>110</width>
     64 + <width>0</width>
    65 65   <height>0</height>
    66 66   </size>
    67 67   </property>
    skipped 198 lines
    266 266   </item>
    267 267   <item>
    268 268   <widget class="QTreeView" name="treeViewResults">
     269 + <property name="font">
     270 + <font>
     271 + <family>MS Shell Dlg 2</family>
     272 + <pointsize>8</pointsize>
     273 + </font>
     274 + </property>
    269 275   <property name="contextMenuPolicy">
    270 276   <enum>Qt::CustomContextMenu</enum>
    271 277   </property>
    skipped 26 lines
    298 304   <widget class="QComboBox" name="comboBoxFilter">
    299 305   <property name="minimumSize">
    300 306   <size>
    301  - <width>100</width>
     307 + <width>0</width>
    302 308   <height>0</height>
    303 309   </size>
    304 310   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ns/NSEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxOption">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>110</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 15 lines
    61 61   <widget class="QComboBox" name="comboBoxEngine">
    62 62   <property name="minimumSize">
    63 63   <size>
    64  - <width>110</width>
     64 + <width>0</width>
    65 65   <height>0</height>
    66 66   </size>
    67 67   </property>
    skipped 203 lines
    271 271   </item>
    272 272   <item>
    273 273   <widget class="QTreeView" name="treeViewResults">
     274 + <property name="font">
     275 + <font>
     276 + <family>MS Shell Dlg 2</family>
     277 + <pointsize>8</pointsize>
     278 + </font>
     279 + </property>
    274 280   <property name="contextMenuPolicy">
    275 281   <enum>Qt::CustomContextMenu</enum>
    276 282   </property>
    skipped 26 lines
    303 309   <widget class="QComboBox" name="comboBoxFilter">
    304 310   <property name="minimumSize">
    305 311   <size>
    306  - <width>100</width>
     312 + <width>0</width>
    307 313   <height>0</height>
    308 314   </size>
    309 315   </property>
    skipped 73 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum.h
    skipped 71 lines
    72 72   /* sending results */
    73 73   void sendToProject();
    74 74   void sendSelectedToProject();
    75  - void sendToEngine(const ENGINE&);
    76  - void sendSelectedToEngine(const ENGINE&);
    77 75  };
    78 76   
    79 77  #endif // SSLENUM_H
    skipped 1 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum.ui
    skipped 38 lines
    39 39   <widget class="QComboBox" name="comboBoxModule">
    40 40   <property name="minimumSize">
    41 41   <size>
    42  - <width>100</width>
     42 + <width>0</width>
    43 43   <height>0</height>
    44 44   </size>
    45 45   </property>
    skipped 182 lines
    228 228   </item>
    229 229   <item>
    230 230   <widget class="QTreeView" name="treeViewResults">
     231 + <property name="font">
     232 + <font>
     233 + <family>MS Shell Dlg 2</family>
     234 + <pointsize>8</pointsize>
     235 + </font>
     236 + </property>
    231 237   <property name="contextMenuPolicy">
    232 238   <enum>Qt::CustomContextMenu</enum>
    233 239   </property>
    skipped 26 lines
    260 266   <widget class="QComboBox" name="comboBoxFilter">
    261 267   <property name="minimumSize">
    262 268   <size>
    263  - <width>100</width>
     269 + <width>0</width>
    264 270   <height>0</height>
    265 271   </size>
    266 272   </property>
    skipped 125 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/enums/ssl/SSLEnum_actions.cpp
    skipped 168 lines
    169 169   }
    170 170  }
    171 171   
    172  -void SSLEnum::sendToEngine(const ENGINE &engine){
    173  - 
    174  -}
    175  - 
    176  -void SSLEnum::sendSelectedToEngine(const ENGINE &engine){
    177  - 
    178  -}
    179  - 
    180 172  ///
    181 173  /// receiving targets...
    182 174  ///
    skipped 9 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/main.cpp
    skipped 13 lines
    14 14  #include <QDesktopWidget>
    15 15  #include <QSplashScreen>
    16 16  #include <QStandardPaths>
     17 +#include <QTranslator>
    17 18   
     19 +#if defined(Q_OS_LINUX) || defined(Q_OS_WIN)
    18 20  #include "src/utils/CrashHandler.h"
     21 +#endif
    19 22   
    20 23  ///
    21 24  /// logging device informations...
    22 25  ///
    23 26  void log_device_info(){
    24  - qDebug() << "Device INFO:";
    25 27   qDebug() << "physical dpi value X: " << qApp->desktop()->physicalDpiX();
    26 28   qDebug() << "physical dpi value Y: " << qApp->desktop()->physicalDpiY();
    27 29   qDebug() << "Logical dpi value X: " << qApp->desktop()->logicalDpiX();
    28 30   qDebug() << "Logical dpi value Y: " << qApp->desktop()->logicalDpiY();
    29 31   qDebug() << "device-pixel Ratio: " << qApp->desktop()->devicePixelRatio();
     32 +}
     33 + 
     34 +void registerMetaTypes(){
     35 + qRegisterMetaType<ScanLog>("ScanLog");
     36 + qRegisterMetaType<scan::Log>("scan::Log");
     37 + qRegisterMetaType<s3s_struct::RAW>("s3s_struct::RAW");
     38 + qRegisterMetaType<s3s_struct::DNS>("s3s_struct::DNS");
     39 + qRegisterMetaType<s3s_struct::IP>("s3s_struct::IP");
     40 + qRegisterMetaType<s3s_struct::ASN>("s3s_struct::ASN");
     41 + qRegisterMetaType<s3s_struct::CIDR>("s3s_struct::CIDR");
     42 + qRegisterMetaType<s3s_struct::NS>("s3s_struct::NS");
     43 + qRegisterMetaType<s3s_struct::MX>("s3s_struct::MX");
     44 + qRegisterMetaType<s3s_struct::URL>("s3s_struct::URL");
     45 + qRegisterMetaType<s3s_struct::HOST>("s3s_struct::HOST");
     46 + qRegisterMetaType<s3s_struct::Wildcard>("s3s_struct::Wildcard");
     47 + qRegisterMetaType<QSslCertificate>("QSslCertificate");
    30 48  }
    31 49   
    32 50  ///
    skipped 96 lines
    129 147   /* create the sub3suite app */
    130 148   s3s_Application s3s_app(argc, argv);
    131 149   
     150 +#if defined(Q_OS_LINUX) || defined(Q_OS_WIN)
    132 151   /* initializing the crash handler */
    133 152   Breakpad::CrashHandler::instance()->Init(QGuiApplication::applicationDirPath()+"/logs");
     153 +#endif
     154 + 
     155 + qInfo() << "**************************************************************************************";
     156 + qInfo() << "";
     157 + qInfo() << "**************************************************************************************";
     158 + 
     159 + /* loading translations
     160 + QString language = CONFIG.value("language").toString();
     161 + QTranslator translator;
     162 + if(translator.load(QString("s3s_%1").arg(language), QGuiApplication::applicationDirPath()+"/translations")){
     163 + if(s3s_app.installTranslator(&translator))
     164 + qDebug() << "Translator Installed successfully!";
     165 + }
     166 + else
     167 + qWarning() << "Failed to load translation file.";
     168 + */
    134 169   
    135 170   log_device_info();
    136 171   
     172 + /* registering meta-objects */
     173 + registerMetaTypes();
     174 + 
     175 + /* setting font */
    137 176  #if defined(Q_OS_LINUX)
    138 177   if(qApp->desktop()->physicalDpiX() == 112 && qApp->desktop()->logicalDpiX() == 96)
    139 178   {
    skipped 41 lines
    181 220   /* opening the project */
    182 221   w.initProject(project);
    183 222   
    184  - /* starting the app */
    185  - qInfo() << "starting sub3suite...";
    186 223   return s3s_app.exec();
    187 224   }
    188 225   else
    skipped 3 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ExplorerModel.cpp
    skipped 33 lines
    34 34   passiveMX(new QStandardItem("MX")),
    35 35   passiveTXT(new QStandardItem("TXT")),
    36 36   passiveCNAME(new QStandardItem("CNAME")),
    37  - passiveCidr(new QStandardItem("CIDR")),
     37 + passiveCIDR(new QStandardItem("CIDR")),
    38 38   passiveEmail(new QStandardItem("EMAIL")),
    39  - passiveUrl(new QStandardItem("URL")),
    40  - passiveAsn(new QStandardItem("ASN")),
     39 + passiveURL(new QStandardItem("URL")),
     40 + passiveASN(new QStandardItem("ASN")),
    41 41   passiveSSL(new QStandardItem("SSL")),
    42 42   
    43 43   /* enum Results ExplorerModel */
    44  - enumIp(new QStandardItem("IP")),
     44 + enumIP(new QStandardItem("IP")),
    45 45   enumASN(new QStandardItem("ASN")),
    46 46   enumCIDR(new QStandardItem("CIDR")),
    47 47   enumNS(new QStandardItem("NS")),
    skipped 42 lines
    90 90   passiveSubdomain->setIcon(QIcon(":/img/res/icons/domain.png"));
    91 91   passiveA->setIcon(QIcon(":/img/res/icons/ipv4.png"));
    92 92   passiveAAAA->setIcon(QIcon(":/img/res/icons/ipv6.png"));
    93  - passiveCidr->setIcon(QIcon(":/img/res/icons/cidr.png"));
     93 + passiveCIDR->setIcon(QIcon(":/img/res/icons/cidr.png"));
    94 94   passiveNS->setIcon(QIcon(":/img/res/icons/ns.png"));
    95 95   passiveMX->setIcon(QIcon(":/img/res/icons/mx.png"));
    96 96   passiveTXT->setIcon(QIcon(":/img/res/icons/txt.png"));
    97 97   passiveCNAME->setIcon(QIcon(":/img/res/icons/cname.png"));
    98 98   passiveEmail->setIcon(QIcon(":/img/res/icons/email.png"));
    99  - passiveUrl->setIcon(QIcon(":/img/res/icons/url.png"));
    100  - passiveAsn->setIcon(QIcon(":/img/res/icons/asn.png"));
     99 + passiveURL->setIcon(QIcon(":/img/res/icons/url.png"));
     100 + passiveASN->setIcon(QIcon(":/img/res/icons/asn.png"));
    101 101   passiveSSL->setIcon(QIcon(":/img/res/icons/ssl.png"));
    102  - enumIp->setIcon(QIcon(":/img/res/icons/ip.png"));
     102 + enumIP->setIcon(QIcon(":/img/res/icons/ip.png"));
    103 103   enumASN->setIcon(QIcon(":/img/res/icons/asn.png"));
    104 104   enumCIDR->setIcon(QIcon(":/img/res/icons/cidr.png"));
    105 105   enumNS->setIcon(QIcon(":/img/res/icons/ns.png"));
    skipped 24 lines
    130 130   passiveSubdomainIp->setForeground(Qt::white);
    131 131   passiveA->setForeground(Qt::white);
    132 132   passiveAAAA->setForeground(Qt::white);
    133  - passiveCidr->setForeground(Qt::white);
     133 + passiveCIDR->setForeground(Qt::white);
    134 134   passiveNS->setForeground(Qt::white);
    135 135   passiveMX->setForeground(Qt::white);
    136 136   passiveTXT->setForeground(Qt::white);
    137 137   passiveCNAME->setForeground(Qt::white);
    138 138   passiveEmail->setForeground(Qt::white);
    139  - passiveUrl->setForeground(Qt::white);
    140  - passiveAsn->setForeground(Qt::white);
     139 + passiveURL->setForeground(Qt::white);
     140 + passiveASN->setForeground(Qt::white);
    141 141   passiveSSL->setForeground(Qt::white);
    142  - enumIp->setForeground(Qt::white);
     142 + enumIP->setForeground(Qt::white);
    143 143   enumASN->setForeground(Qt::white);
    144 144   enumCIDR->setForeground(Qt::white);
    145 145   enumNS->setForeground(Qt::white);
    skipped 24 lines
    170 170   passive->appendRow(passiveSubdomain);
    171 171   passive->appendRow(passiveA);
    172 172   passive->appendRow(passiveAAAA);
    173  - passive->appendRow(passiveCidr);
     173 + passive->appendRow(passiveCIDR);
    174 174   passive->appendRow(passiveNS);
    175 175   passive->appendRow(passiveMX);
    176 176   passive->appendRow(passiveTXT);
    177 177   passive->appendRow(passiveCNAME);
    178 178   passive->appendRow(passiveEmail);
    179  - passive->appendRow(passiveUrl);
    180  - passive->appendRow(passiveAsn);
     179 + passive->appendRow(passiveURL);
     180 + passive->appendRow(passiveASN);
    181 181   passive->appendRow(passiveSSL);
    182  - enums->appendRow(enumIp);
     182 + enums->appendRow(enumIP);
    183 183   enums->appendRow(enumMX);
    184 184   enums->appendRow(enumASN);
    185 185   enums->appendRow(enumCIDR);
    skipped 17 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ExplorerModel.h
    skipped 83 lines
    84 84   QStandardItem *passiveMX;
    85 85   QStandardItem *passiveTXT;
    86 86   QStandardItem *passiveCNAME;
    87  - QStandardItem *passiveCidr;
     87 + QStandardItem *passiveCIDR;
    88 88   QStandardItem *passiveEmail;
    89  - QStandardItem *passiveUrl;
    90  - QStandardItem *passiveAsn;
     89 + QStandardItem *passiveURL;
     90 + QStandardItem *passiveASN;
    91 91   QStandardItem *passiveSSL;
    92 92   
    93 93   /* enum Results explorer */
    94  - QStandardItem *enumIp;
     94 + QStandardItem *enumIP;
    95 95   QStandardItem *enumASN;
    96 96   QStandardItem *enumCIDR;
    97 97   QStandardItem *enumNS;
    skipped 9 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ProjectModel.cpp
    skipped 31 lines
    32 32   passiveSubdomain(new QStandardItemModel),
    33 33   passiveA(new QStandardItemModel),
    34 34   passiveAAAA(new QStandardItemModel),
    35  - passiveCidr(new QStandardItemModel),
     35 + passiveCIDR(new QStandardItemModel),
    36 36   passiveNS(new QStandardItemModel),
    37 37   passiveMX(new QStandardItemModel),
    38 38   passiveTXT(new QStandardItemModel),
    39 39   passiveCNAME(new QStandardItemModel),
    40 40   passiveEmail(new QStandardItemModel),
    41  - passiveUrl(new QStandardItemModel),
    42  - passiveAsn(new QStandardItemModel),
     41 + passiveURL(new QStandardItemModel),
     42 + passiveASN(new QStandardItemModel),
    43 43   passiveSSL(new QStandardItemModel),
    44 44   
    45 45   /* enum Results model */
    46  - enumIp(new QStandardItemModel),
     46 + enumIP(new QStandardItemModel),
    47 47   enumASN(new QStandardItemModel),
    48 48   enumCIDR(new QStandardItemModel),
    49 49   enumNS(new QStandardItemModel),
    skipped 7 lines
    57 57   this->setHeaderLabels();
    58 58  }
    59 59  ProjectModel::~ProjectModel(){
    60  - delete activeHost;
    61  - delete activeWildcard;
    62  - delete activeDNS;
    63  - delete activeA;
    64  - delete activeAAAA;
    65  - delete activeNS;
    66  - delete activeMX;
    67  - delete activeTXT;
    68  - delete activeCNAME;
     60 + delete raw;
     61 + delete enumEmail;
     62 + delete enumSSL;
     63 + delete enumMX;
     64 + delete enumNS;
     65 + delete enumCIDR;
     66 + delete enumASN;
     67 + delete enumIP;
     68 + delete passiveSSL;
     69 + delete passiveASN;
     70 + delete passiveURL;
     71 + delete passiveEmail;
     72 + delete passiveCNAME;
     73 + delete passiveTXT;
     74 + delete passiveMX;
     75 + delete passiveNS;
     76 + delete passiveCIDR;
     77 + delete passiveAAAA;
     78 + delete passiveA;
     79 + delete passiveSubdomain;
     80 + delete passiveSubdomainIp;
     81 + delete activeURL;
     82 + delete activeSSL_altNames;
     83 + delete activeSSL_sha256;
     84 + delete activeSSL_sha1;
     85 + delete activeSSL;
    69 86   delete activeSRV;
    70  - delete activeSSL;
    71  - delete activeSSL_sha1;
    72  - delete activeSSL_sha256;
    73  - delete activeSSL_altNames;
    74  - delete activeURL;
    75  - delete passiveSubdomainIp;
    76  - delete passiveSubdomain;
    77  - delete passiveA;
    78  - delete passiveAAAA;
    79  - delete passiveCidr;
    80  - delete passiveNS;
    81  - delete passiveMX;
    82  - delete passiveTXT;
    83  - delete passiveCNAME;
    84  - delete passiveEmail;
    85  - delete passiveUrl;
    86  - delete passiveAsn;
    87  - delete passiveSSL;
    88  - delete enumIp;
    89  - delete enumASN;
    90  - delete enumCIDR;
    91  - delete enumNS;
    92  - delete enumMX;
    93  - delete enumSSL;
    94  - delete enumEmail;
     87 + delete activeCNAME;
     88 + delete activeTXT;
     89 + delete activeMX;
     90 + delete activeNS;
     91 + delete activeAAAA;
     92 + delete activeA;
     93 + delete activeDNS;
     94 + delete activeWildcard;
     95 + delete activeHost;
    95 96   delete explorer;
    96 97  }
    97 98   
    skipped 19 lines
    117 118   passiveSubdomain->setHorizontalHeaderLabels({QObject::tr(" Subdomains")});
    118 119   passiveA->setHorizontalHeaderLabels({QObject::tr(" A Records")});
    119 120   passiveAAAA->setHorizontalHeaderLabels({QObject::tr(" AAAA Records")});
    120  - passiveCidr->setHorizontalHeaderLabels({QObject::tr(" IP/CIDR")});
     121 + passiveCIDR->setHorizontalHeaderLabels({QObject::tr(" IP/CIDR")});
    121 122   passiveNS->setHorizontalHeaderLabels({QObject::tr(" NS Records")});
    122 123   passiveMX->setHorizontalHeaderLabels({QObject::tr(" MX Records")});
    123 124   passiveTXT->setHorizontalHeaderLabels({QObject::tr(" TXT Records")});
    124 125   passiveCNAME->setHorizontalHeaderLabels({QObject::tr(" CNAME Records")});
    125 126   passiveEmail->setHorizontalHeaderLabels({QObject::tr(" Emails")});
    126  - passiveUrl->setHorizontalHeaderLabels({QObject::tr(" URLs")});
    127  - passiveAsn->setHorizontalHeaderLabels({QObject::tr(" ASN"), QObject::tr(" Name")});
     127 + passiveURL->setHorizontalHeaderLabels({QObject::tr(" URLs")});
     128 + passiveASN->setHorizontalHeaderLabels({QObject::tr(" ASN"), QObject::tr(" Name")});
    128 129   passiveSSL->setHorizontalHeaderLabels({QObject::tr(" SSL Certificates ID")});
    129 130   
    130 131   /* enum Results model */
    131  - enumIp->setHorizontalHeaderLabels({QObject::tr(" IP"), QObject::tr(" Values")});
     132 + enumIP->setHorizontalHeaderLabels({QObject::tr(" IP"), QObject::tr(" Values")});
    132 133   enumASN->setHorizontalHeaderLabels({QObject::tr(" ASN"), QObject::tr(" Values")});
    133 134   enumCIDR->setHorizontalHeaderLabels({QObject::tr(" CIDR"), QObject::tr(" Values")});
    134 135   enumNS->setHorizontalHeaderLabels({QObject::tr(" NS"), QObject::tr(" Values")});
    skipped 25 lines
    160 161   passiveSubdomain->clear();
    161 162   passiveA->clear();
    162 163   passiveAAAA->clear();
    163  - passiveCidr->clear();
     164 + passiveCIDR->clear();
    164 165   passiveNS->clear();
    165 166   passiveMX->clear();
    166 167   passiveTXT->clear();
    167 168   passiveCNAME->clear();
    168 169   passiveEmail->clear();
    169  - passiveUrl->clear();
    170  - passiveAsn->clear();
     170 + passiveURL->clear();
     171 + passiveASN->clear();
    171 172   passiveSSL->clear();
    172  - enumIp->clear();
     173 + enumIP->clear();
    173 174   enumASN->clear();
    174 175   enumCIDR->clear();
    175 176   enumNS->clear();
    skipped 7 lines
    183 184   map_activeDNS.clear();
    184 185   map_activeSSL.clear();
    185 186   map_activeURL.clear();
    186  - map_enumIp.clear();
     187 + map_enumIP.clear();
    187 188   map_enumASN.clear();
    188 189   map_enumCIDR.clear();
    189 190   map_enumNS.clear();
    skipped 24 lines
    214 215   passiveSubdomain->rowCount()+
    215 216   passiveA->rowCount()+
    216 217   passiveAAAA->rowCount()+
    217  - passiveCidr->rowCount()+
     218 + passiveCIDR->rowCount()+
    218 219   passiveNS->rowCount()+
    219 220   passiveMX->rowCount()+
    220 221   passiveTXT->rowCount()+
    221 222   passiveCNAME->rowCount()+
    222 223   passiveEmail->rowCount()+
    223  - passiveUrl->rowCount()+
    224  - passiveAsn->rowCount()+
     224 + passiveURL->rowCount()+
     225 + passiveASN->rowCount()+
    225 226   passiveSSL->rowCount()+
    226  - enumIp->rowCount()+
     227 + enumIP->rowCount()+
    227 228   enumASN->rowCount()+
    228 229   enumCIDR->rowCount()+
    229 230   enumNS->rowCount()+
    skipped 6 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ProjectModel.h
    skipped 55 lines
    56 56   void openProject(ProjectStruct project);
    57 57   void openExistingProject(QString name, QString path);
    58 58   void saveProject();
     59 + void saveProjectCopy();
    59 60   void closeProject();
    60 61   
    61 62   /* actions */
    skipped 65 lines
    127 128   QStandardItemModel *passiveSubdomain;
    128 129   QStandardItemModel *passiveA;
    129 130   QStandardItemModel *passiveAAAA;
    130  - QStandardItemModel *passiveCidr;
     131 + QStandardItemModel *passiveCIDR;
    131 132   QStandardItemModel *passiveNS;
    132 133   QStandardItemModel *passiveMX;
    133 134   QStandardItemModel *passiveTXT;
    134 135   QStandardItemModel *passiveCNAME;
    135 136   QStandardItemModel *passiveEmail;
    136  - QStandardItemModel *passiveUrl;
    137  - QStandardItemModel *passiveAsn;
     137 + QStandardItemModel *passiveURL;
     138 + QStandardItemModel *passiveASN;
    138 139   QStandardItemModel *passiveSSL;
    139 140   /* enum Results model */
    140  - QStandardItemModel *enumIp;
     141 + QStandardItemModel *enumIP;
    141 142   QStandardItemModel *enumASN;
    142 143   QStandardItemModel *enumCIDR;
    143 144   QStandardItemModel *enumNS;
    skipped 9 lines
    153 154   QMap<QString, s3s_item::DNS*> map_activeDNS;
    154 155   QMap<QString, s3s_item::SSL*> map_activeSSL;
    155 156   QMap<QString, s3s_item::URL*> map_activeURL;
    156  - QMap<QString, s3s_item::IP*> map_enumIp;
     157 + QMap<QString, s3s_item::IP*> map_enumIP;
    157 158   QMap<QString, s3s_item::ASN*> map_enumASN;
    158 159   QMap<QString, s3s_item::CIDR*> map_enumCIDR;
    159 160   QMap<QString, s3s_item::NS*> map_enumNS;
    skipped 10 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ProjectModel_serialization.cpp
    skipped 43 lines
    44 44   
    45 45   /* setting status as no modifications to the project */
    46 46   modified = false;
     47 + info.isExisting = true;
     48 + info.isTemporary = false;
     49 + info.isNew = false;
     50 + info.isConfigured = true;
    47 51   
    48 52   qDebug() << "Project Saved!";
    49 53   }
    50 54   else
    51 55   qWarning() << "Failed To Open Project File";
     56 +}
     57 + 
     58 +void ProjectModel::saveProjectCopy(){
     59 + qDebug() << "Saving Project Copy To: " << info.path;
     60 + 
     61 + QFile file(info.path);
     62 + if(file.open(QIODevice::WriteOnly))
     63 + {
     64 + /* compress the data then save */
     65 + file.write(qCompress(this->getJson()));
     66 + file.close();
     67 + 
     68 + /* adding to recent projects */
     69 + CONFIG.beginGroup(CFG_GRP_RECENT);
     70 + CONFIG.setValue(info.name, info.path);
     71 + CONFIG.endGroup();
     72 + 
     73 + qDebug() << "Project Copy Saved!";
     74 + }
     75 + else
     76 + qWarning() << "Failed To Open Project Copy File";
    52 77  }
    53 78   
    54 79  void ProjectModel::closeProject(){
    skipped 129 lines
    184 209   
    185 210   /* passive ASN */
    186 211   foreach(const QJsonValue &value, data["passive_ASN"].toArray())
    187  - passiveAsn->appendRow({new QStandardItem(value.toArray()[0].toString()),
     212 + passiveASN->appendRow({new QStandardItem(value.toArray()[0].toString()),
    188 213   new QStandardItem(value.toArray()[1].toString())});
    189 214   
    190 215   /* passive Subdomain */
    skipped 10 lines
    201 226   
    202 227   /* passive CIDR */
    203 228   foreach(const QJsonValue &value, data["passive_CIDR"].toArray())
    204  - passiveCidr->appendRow(new QStandardItem(value.toString()));
     229 + passiveCIDR->appendRow(new QStandardItem(value.toString()));
    205 230   
    206 231   /* passive NS */
    207 232   foreach(const QJsonValue &value, data["passive_NS"].toArray())
    skipped 17 lines
    225 250   
    226 251   /* passive URL */
    227 252   foreach(const QJsonValue &value, data["passive_URL"].toArray())
    228  - passiveUrl->appendRow(new QStandardItem(value.toString()));
     253 + passiveURL->appendRow(new QStandardItem(value.toString()));
    229 254   
    230 255   /* passive SSL */
    231 256   foreach(const QJsonValue &value, data["passive_SSL"].toArray())
    skipped 17 lines
    249 274   foreach(const QJsonValue &value, data["enum_IP"].toArray()){
    250 275   s3s_item::IP *item = new s3s_item::IP;
    251 276   json_to_ip(value.toObject(), item);
    252  - enumIp->appendRow(item);
    253  - map_enumIp.insert(item->text(), item);
     277 + enumIP->appendRow(item);
     278 + map_enumIP.insert(item->text(), item);
    254 279   }
    255 280   /* enum MX" */
    256 281   foreach(const QJsonValue &value, data["enum_MX"].toArray()){
    skipped 72 lines
    329 354   passive_SSL_array.append(passiveSSL->index(i, 0).data().toString());
    330 355   
    331 356   /* passive URL */
    332  - for(int i = 0; i < passiveUrl->rowCount(); ++i)
    333  - passive_URL_array.append(passiveUrl->index(i, 0).data().toString());
     357 + for(int i = 0; i < passiveURL->rowCount(); ++i)
     358 + passive_URL_array.append(passiveURL->index(i, 0).data().toString());
    334 359   
    335 360   /* passive Email */
    336 361   for(int i = 0; i < passiveEmail->rowCount(); ++i)
    skipped 16 lines
    353 378   passive_MX_array.append(passiveMX->index(i, 0).data().toString());
    354 379   
    355 380   /* passive CIDR */
    356  - for(int i = 0; i < passiveCidr->rowCount(); ++i)
    357  - passive_CIDR_array.append(passiveCidr->index(i, 0).data().toString());
     381 + for(int i = 0; i < passiveCIDR->rowCount(); ++i)
     382 + passive_CIDR_array.append(passiveCIDR->index(i, 0).data().toString());
    358 383   
    359 384   /* passive A */
    360 385   for(int i = 0; i < passiveA->rowCount(); ++i)
    skipped 8 lines
    369 394   passive_Subdomain_array.append(passiveSubdomain->index(i, 0).data().toString());
    370 395   
    371 396   /* passive ASN */
    372  - for(int i = 0; i < passiveAsn->rowCount(); ++i){
     397 + for(int i = 0; i < passiveASN->rowCount(); ++i){
    373 398   QJsonArray asn;
    374  - asn.append(passiveAsn->index(i, 0).data().toString());
    375  - asn.append(passiveAsn->index(i, 1).data().toString());
     399 + asn.append(passiveASN->index(i, 0).data().toString());
     400 + asn.append(passiveASN->index(i, 1).data().toString());
    376 401   passive_ASN_array.append(asn);
    377 402   }
    378 403   
    skipped 60 lines
    439 464   }
    440 465   
    441 466   /* enum IP */
    442  - for(int i = 0; i < enumIp->rowCount(); ++i){
    443  - s3s_item::IP *item = static_cast<s3s_item::IP*>(enumIp->itemFromIndex(enumIp->index(i, 0)));
     467 + for(int i = 0; i < enumIP->rowCount(); ++i){
     468 + s3s_item::IP *item = static_cast<s3s_item::IP*>(enumIP->itemFromIndex(enumIP->index(i, 0)));
    444 469   enum_IP_array.append(ip_to_json(item));
    445 470   }
    446 471   
    skipped 77 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/models/ProjectModel_slots.cpp
    skipped 140 lines
    141 141  }
    142 142   
    143 143  void ProjectModel::addPassiveCidr(const QString &cidr){
    144  - passiveCidr->appendRow(new QStandardItem(cidr));
     144 + passiveCIDR->appendRow(new QStandardItem(cidr));
    145 145   modified = true;
    146 146  }
    147 147   
    skipped 23 lines
    171 171  }
    172 172   
    173 173  void ProjectModel::addPassiveUrl(const QString &url){
    174  - passiveUrl->appendRow(new QStandardItem(url));
     174 + passiveURL->appendRow(new QStandardItem(url));
    175 175   modified = true;
    176 176  }
    177 177   
    178 178  void ProjectModel::addPassiveAsn(const QString &asn, const QString &name){
    179  - passiveAsn->appendRow({new QStandardItem(asn), new QStandardItem(name)});
     179 + passiveASN->appendRow({new QStandardItem(asn), new QStandardItem(name)});
    180 180   modified = true;
    181 181  }
    182 182   
    skipped 35 lines
    218 218   
    219 219  void ProjectModel::addEnumIP(const s3s_struct::IP &ip){
    220 220   if(map_enumASN.contains(ip.ip)){
    221  - s3s_item::IP *item = map_enumIp.value(ip.ip);
     221 + s3s_item::IP *item = map_enumIP.value(ip.ip);
    222 222   item->setValues(ip);
    223 223   return;
    224 224   }
    225 225   
    226 226   s3s_item::IP *item = new s3s_item::IP;
    227 227   item->setValues(ip);
    228  - enumIp->appendRow(item);
    229  - map_enumIp.insert(ip.ip, item);
     228 + enumIP->appendRow(item);
     229 + map_enumIP.insert(ip.ip, item);
    230 230   modified = true;
    231 231  }
    232 232   
    skipped 63 lines
  • ■ ■ ■ ■ ■
    sub3suite/src/project/Project.cpp
    skipped 43 lines
    44 44   proxyModel->setFilterKeyColumn(0);
    45 45   ui->treeViewTree->setModel(proxyModel);
    46 46   
     47 + ui->treeViewTree->header()->setSectionResizeMode(QHeaderView::Interactive);
     48 + 
    47 49   this->init_menubar_tree();
    48 50   this->init_menubar_project();
    49 51  }
    skipped 34 lines
    84 86   /* placeholder texts */
    85 87   ui->lineEditFilter->setPlaceholderText("Filter...");
    86 88   ui->plainTextEdit_item_comment->setPlaceholderText("comment...");
    87  - ui->plainTextEditJson->setPlaceholderText("Double-click on an item (fist column) on Tree-tab to view it in json...");
     89 + ui->plainTextEditJson->setPlaceholderText("Double-click on an item (first column) on Tree-tab to view it in json...");
    88 90   
    89 91   /* resizing */
    90 92   ui->splitter->setSizes(QList<int>() << static_cast<int>((this->width() * 0.22))
    skipped 123 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/project/Project.h
    skipped 116 lines
    117 117   void action_save(const RESULT_TYPE&);
    118 118   
    119 119   void action_sendToEngine(const ENGINE&, const RESULT_TYPE&);
    120  - void action_sendToEnum(const TOOL&, const RESULT_TYPE&);
     120 + void action_sendToEnum(const ENUMERATOR&, const RESULT_TYPE&);
    121 121   
    122 122   void action_send_host(const ENGINE&);
    123 123   void action_send_ip(const ENGINE&);
    skipped 17 lines
    141 141   void action_save_selected();
    142 142   void action_copy_selected();
    143 143   void action_remove_selected();
    144  - void action_send_selected_toEnum(const TOOL&);
     144 + void action_send_selected_toEnum(const ENUMERATOR&);
    145 145   void action_send_selected_toEngine(const ENGINE&, const RESULT_TYPE&);
    146 146   
    147 147   void action_extract(bool subdomain, bool tld, bool hosts);
    skipped 7 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/project/Project.ui
    skipped 67 lines
    68 68   <rect>
    69 69   <x>0</x>
    70 70   <y>0</y>
    71  - <width>293</width>
     71 + <width>256</width>
    72 72   <height>436</height>
    73 73   </rect>
    74 74   </property>
    75 75   <attribute name="label">
    76  - <string>Project</string>
     76 + <string>Project Explorer</string>
    77 77   </attribute>
    78 78   <layout class="QVBoxLayout" name="verticalLayout">
    79 79   <property name="leftMargin">
    skipped 12 lines
    92 92   <widget class="QTreeView" name="treeViewExplorer">
    93 93   <property name="font">
    94 94   <font>
     95 + <family>MS Shell Dlg 2</family>
    95 96   <pointsize>8</pointsize>
    96 97   <weight>75</weight>
    97 98   <bold>true</bold>
    skipped 81 lines
    179 180   <widget class="QTreeView" name="treeViewTree">
    180 181   <property name="font">
    181 182   <font>
     183 + <family>MS Shell Dlg 2</family>
    182 184   <pointsize>8</pointsize>
    183 185   </font>
    184 186   </property>
    skipped 28 lines
    213 215   <bool>true</bool>
    214 216   </attribute>
    215 217   <attribute name="headerMinimumSectionSize">
    216  - <number>40</number>
     218 + <number>50</number>
    217 219   </attribute>
    218 220   <attribute name="headerDefaultSectionSize">
    219  - <number>40</number>
     221 + <number>250</number>
    220 222   </attribute>
    221 223   <attribute name="headerShowSortIndicator" stdset="0">
    222 224   <bool>true</bool>
    skipped 9 lines
    232 234   <widget class="QComboBox" name="comboBoxFilter">
    233 235   <property name="minimumSize">
    234 236   <size>
    235  - <width>100</width>
     237 + <width>0</width>
    236 238   <height>0</height>
    237 239   </size>
    238 240   </property>
    skipped 201 lines
    440 442   <rect>
    441 443   <x>0</x>
    442 444   <y>0</y>
    443  - <width>118</width>
     445 + <width>103</width>
    444 446   <height>411</height>
    445 447   </rect>
    446 448   </property>
    447 449   <attribute name="label">
    448  - <string>Project</string>
     450 + <string>Project Summary</string>
    449 451   </attribute>
    450 452   <layout class="QVBoxLayout" name="verticalLayout_7">
    451 453   <item>
    skipped 156 lines
    608 610   <rect>
    609 611   <x>0</x>
    610 612   <y>0</y>
    611  - <width>118</width>
     613 + <width>103</width>
    612 614   <height>411</height>
    613 615   </rect>
    614 616   </property>
    615 617   <attribute name="label">
    616  - <string>Item</string>
     618 + <string>Item Summary</string>
    617 619   </attribute>
    618 620   <layout class="QVBoxLayout" name="verticalLayout_3">
    619 621   <item>
    skipped 100 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/project/Project_actions.cpp
    skipped 82 lines
    83 83   model->passiveEmail->clear();
    84 84   break;
    85 85   case ExplorerType::passive_URL:
    86  - model->passiveUrl->clear();
     86 + model->passiveURL->clear();
    87 87   break;
    88 88   case ExplorerType::passive_ASN:
    89  - model->passiveAsn->clear();
     89 + model->passiveASN->clear();
    90 90   break;
    91 91   case ExplorerType::passive_SSL:
    92 92   model->passiveSSL->clear();
    93 93   break;
    94 94   case ExplorerType::enum_IP:
    95  - model->enumIp->clear();
    96  - model->map_enumIp.clear();
     95 + model->enumIP->clear();
     96 + model->map_enumIP.clear();
    97 97   break;
    98 98   case ExplorerType::enum_ASN:
    99 99   model->enumASN->clear();
    skipped 87 lines
    187 187   choosen_model = model->passiveEmail;
    188 188   break;
    189 189   case ExplorerType::passive_URL:
    190  - choosen_model = model->passiveUrl;
     190 + choosen_model = model->passiveURL;
    191 191   break;
    192 192   case ExplorerType::passive_ASN:
    193  - choosen_model = model->passiveAsn;
     193 + choosen_model = model->passiveASN;
    194 194   break;
    195 195   case ExplorerType::passive_SSL:
    196 196   choosen_model = model->passiveSSL;
    skipped 740 lines
    937 937   }
    938 938  }
    939 939   
    940  -void Project::action_sendToEnum(const TOOL &tool, const RESULT_TYPE &result_type){
     940 +void Project::action_sendToEnum(const ENUMERATOR &tool, const RESULT_TYPE &result_type){
    941 941   QSet<QString> targets;
    942 942   foreach(const QModelIndex &index, m_selectionModel->selectedIndexes())
    943 943   targets.insert(index.data().toString());
    944 944   
    945 945   switch (tool) {
    946  - case TOOL::IP:
     946 + case ENUMERATOR::IP:
    947 947   emit sendToIpEnum(targets, result_type);
    948 948   emit changeTabToIpEnum();
    949 949   break;
    950  - case TOOL::ASN:
     950 + case ENUMERATOR::ASN:
    951 951   emit sendToAsnEnum(targets, result_type);
    952 952   emit changeTabToAsnEnum();
    953 953   break;
    954  - case TOOL::CIDR:
     954 + case ENUMERATOR::CIDR:
    955 955   emit sendToCidrEnum(targets, result_type);
    956 956   emit changeTabToCidrEnum();
    957 957   break;
    958  - case TOOL::NS:
     958 + case ENUMERATOR::NS:
    959 959   emit sendToNSEnum(targets, result_type);
    960 960   emit changeTabToNSEnum();
    961 961   break;
    962  - case TOOL::MX:
     962 + case ENUMERATOR::MX:
    963 963   emit sendToMXEnum(targets, result_type);
    964 964   emit changeTabToMXEnum();
    965 965   break;
    966  - case TOOL::EMAIL:
     966 + case ENUMERATOR::EMAIL:
    967 967   emit sendToEmailEnum(targets, result_type);
    968 968   emit changeTabToEmailEnum();
    969 969   break;
    970  - case TOOL::SSL:
     970 + case ENUMERATOR::SSL:
    971 971   emit sendToSSLEnum(targets, result_type);
    972 972   emit changeTabToSSLEnum();
    973 973   break;
    skipped 653 lines
    1627 1627   clipboard->setText(clipboardData.trimmed());
    1628 1628  }
    1629 1629   
    1630  -void Project::action_send_selected_toEnum(const TOOL &tool){
     1630 +void Project::action_send_selected_toEnum(const ENUMERATOR &tool){
    1631 1631   QSet<QString> targets;
    1632 1632   foreach(const QModelIndex &index, m_selectionModel->selectedIndexes())
    1633 1633   targets.insert(index.data().toString());
    1634 1634   
    1635 1635   switch (tool) {
    1636  - case TOOL::IP:
     1636 + case ENUMERATOR::IP:
    1637 1637   emit sendToIpEnum(targets, RESULT_TYPE::IP);
    1638 1638   emit changeTabToIpEnum();
    1639 1639   break;
    1640  - case TOOL::ASN:
     1640 + case ENUMERATOR::ASN:
    1641 1641   emit sendToAsnEnum(targets, RESULT_TYPE::ASN);
    1642 1642   emit changeTabToAsnEnum();
    1643 1643   break;
    1644  - case TOOL::CIDR:
     1644 + case ENUMERATOR::CIDR:
    1645 1645   emit sendToCidrEnum(targets, RESULT_TYPE::CIDR);
    1646 1646   emit changeTabToCidrEnum();
    1647 1647   break;
    1648  - case TOOL::NS:
     1648 + case ENUMERATOR::NS:
    1649 1649   emit sendToNSEnum(targets, RESULT_TYPE::NS);
    1650 1650   emit changeTabToNSEnum();
    1651 1651   break;
    1652  - case TOOL::MX:
     1652 + case ENUMERATOR::MX:
    1653 1653   emit sendToMXEnum(targets, RESULT_TYPE::MX);
    1654 1654   emit changeTabToMXEnum();
    1655 1655   break;
    1656  - case TOOL::SSL:
     1656 + case ENUMERATOR::SSL:
    1657 1657   emit sendToSSLEnum(targets, RESULT_TYPE::CERT_ID);
    1658 1658   emit changeTabToSSLEnum();
    1659 1659   break;
    1660  - case TOOL::EMAIL:
     1660 + case ENUMERATOR::EMAIL:
    1661 1661   emit sendToEmailEnum(targets, RESULT_TYPE::EMAIL);
    1662 1662   emit changeTabToEmailEnum();
    1663 1663   break;
    skipped 201 lines
    1865 1865   case ExplorerType::passive_URL:
    1866 1866   foreach(const QModelIndex &proxyIndex, m_selectionModel->selectedIndexes()){
    1867 1867   QModelIndex index = proxyModel->mapToSource(proxyIndex);
    1868  - model->passiveUrl->removeRow(index.row());
     1868 + model->passiveURL->removeRow(index.row());
    1869 1869   }
    1870 1870   break;
    1871 1871   case ExplorerType::passive_ASN:
    1872 1872   foreach(const QModelIndex &proxyIndex, m_selectionModel->selectedIndexes()){
    1873 1873   QModelIndex index = proxyModel->mapToSource(proxyIndex);
    1874  - model->passiveAsn->removeRow(index.row());
     1874 + model->passiveASN->removeRow(index.row());
    1875 1875   }
    1876 1876   break;
    1877 1877   case ExplorerType::passive_SSL:
    skipped 5 lines
    1883 1883   case ExplorerType::enum_IP:
    1884 1884   foreach(const QModelIndex &proxyIndex, m_selectionModel->selectedIndexes()){
    1885 1885   QModelIndex index = proxyModel->mapToSource(proxyIndex);
    1886  - if(index.parent() == model->enumIp->invisibleRootItem()->index()){
    1887  - model->map_enumIp.remove(proxyIndex.data().toString());
    1888  - model->enumIp->removeRow(index.row());
     1886 + if(index.parent() == model->enumIP->invisibleRootItem()->index()){
     1887 + model->map_enumIP.remove(proxyIndex.data().toString());
     1888 + model->enumIP->removeRow(index.row());
    1889 1889   }
    1890 1890   }
    1891 1891   break;
    skipped 186 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/project/Project_contextmenu.cpp
    skipped 28 lines
    29 29   send_ip_menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->action_sendToEngine(ENGINE::OSINT, RESULT_TYPE::IP);});
    30 30   send_ip_menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->action_sendToEngine(ENGINE::RAW, RESULT_TYPE::IP);});
    31 31   send_ip_menu.addSeparator();
    32  - send_ip_menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_sendToEnum(TOOL::IP, RESULT_TYPE::IP);});
     32 + send_ip_menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::IP, RESULT_TYPE::IP);});
    33 33   
    34 34   QMenu send_url_menu(this);
    35 35   send_url_menu.setTitle(tr("URL"));
    skipped 8 lines
    44 44   send_email_menu.addAction(tr("Send Email to OSINT"), this, [=](){this->action_sendToEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);});
    45 45   send_email_menu.addAction(tr("Send Email to RAW"), this, [=](){this->action_sendToEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);});
    46 46   send_email_menu.addSeparator();
    47  - send_email_menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->action_sendToEnum(TOOL::EMAIL, RESULT_TYPE::EMAIL);});
     47 + send_email_menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::EMAIL, RESULT_TYPE::EMAIL);});
    48 48   
    49 49   QMenu send_asn_menu(this);
    50 50   send_asn_menu.setTitle(tr("ASN"));
    skipped 1 lines
    52 52   send_asn_menu.addAction(tr("Send ASN to OSINT"), this, [=](){this->action_sendToEngine(ENGINE::OSINT, RESULT_TYPE::ASN);});
    53 53   send_asn_menu.addAction(tr("Send ASN to RAW"), this, [=](){this->action_sendToEngine(ENGINE::RAW, RESULT_TYPE::ASN);});
    54 54   send_asn_menu.addSeparator();
    55  - send_asn_menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->action_sendToEnum(TOOL::ASN, RESULT_TYPE::ASN);});
     55 + send_asn_menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::ASN, RESULT_TYPE::ASN);});
    56 56   
    57 57   QMenu send_cidr_menu(this);
    58 58   send_cidr_menu.setTitle(tr("CIDR"));
    skipped 1 lines
    60 60   send_cidr_menu.addAction(tr("Send CIDR to OSINT"), this, [=](){this->action_sendToEngine(ENGINE::OSINT, RESULT_TYPE::CIDR);});
    61 61   send_cidr_menu.addAction(tr("Send CIDR to RAW"), this, [=](){this->action_sendToEngine(ENGINE::RAW, RESULT_TYPE::CIDR);});
    62 62   send_cidr_menu.addSeparator();
    63  - send_cidr_menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->action_sendToEnum(TOOL::CIDR, RESULT_TYPE::CIDR);});
     63 + send_cidr_menu.addAction(tr("Send CIDR to CIDR-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::CIDR, RESULT_TYPE::CIDR);});
    64 64   
    65 65   QMenu send_ssl_menu(this);
    66 66   send_ssl_menu.setTitle(tr("SSL"));
    skipped 1 lines
    68 68   send_ssl_menu.addAction(tr("Send SSL to OSINT"), this, [=](){this->action_sendToEngine(ENGINE::OSINT, RESULT_TYPE::CERT_ID);});
    69 69   send_ssl_menu.addAction(tr("Send SSL to RAW"), this, [=](){this->action_sendToEngine(ENGINE::RAW, RESULT_TYPE::CERT_ID);});
    70 70   send_ssl_menu.addSeparator();
    71  - send_ssl_menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->action_sendToEnum(TOOL::SSL, RESULT_TYPE::CERT_ID);});
     71 + send_ssl_menu.addAction(tr("Send SSL to SSL-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::SSL, RESULT_TYPE::CERT_ID);});
    72 72   
    73 73   QMenu send_ns_menu(this);
    74 74   send_ns_menu.setTitle(tr("NameServer"));
    75 75   send_ns_menu.setIcon(QIcon(":/img/res/icons/ns.png"));
    76  - send_ns_menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_sendToEnum(TOOL::NS, RESULT_TYPE::NS);});
     76 + send_ns_menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::NS, RESULT_TYPE::NS);});
    77 77   
    78 78   QMenu send_mx_menu(this);
    79 79   send_mx_menu.setTitle(tr("MailServer"));
    80 80   send_mx_menu.setIcon(QIcon(":/img/res/icons/mx.png"));
    81  - send_mx_menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_sendToEnum(TOOL::MX, RESULT_TYPE::MX);});
     81 + send_mx_menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_sendToEnum(ENUMERATOR::MX, RESULT_TYPE::MX);});
    82 82   
    83 83   QMenu send_menu(this);
    84 84   send_menu.setTitle(tr("Send Item"));
    skipped 47 lines
    132 132   }
    133 133   if(m_selectionModel->columnIntersectsSelection(1, m_selectionModel->currentIndex().parent()) ||
    134 134   m_selectionModel->columnIntersectsSelection(2, m_selectionModel->currentIndex().parent()))
    135  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     135 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    136 136   break;
    137 137   case ExplorerType::activeWildcard:
    138 138   if(m_selectionModel->columnIntersectsSelection(1, m_selectionModel->currentIndex().parent()) ||
    skipped 1 lines
    140 140   menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->action_send_selected_toEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    141 141   menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->action_send_selected_toEngine(ENGINE::RAW, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    142 142   menu.addSeparator();
    143  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     143 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    144 144   }
    145 145   break;
    146 146   case ExplorerType::activeDNS:
    skipped 8 lines
    155 155   menu.addAction(tr("Send Hostname to DNS"), this, [=](){this->action_send_selected_toEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    156 156   menu.addAction(tr("Send Hostname to SSL"), this, [=](){this->action_send_selected_toEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/domain.png"));
    157 157   menu.addSeparator();
    158  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    159  - menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    160  - menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
     158 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     159 + menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
     160 + menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    161 161   }
    162 162   break;
    163 163   case ExplorerType::activeDNS_A:
    skipped 5 lines
    169 169   menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->action_send_selected_toEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    170 170   menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->action_send_selected_toEngine(ENGINE::RAW, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    171 171   menu.addSeparator();
    172  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     172 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    173 173   break;
    174 174   case ExplorerType::activeDNS_NS:
    175 175   case ExplorerType::passive_NS:
    skipped 6 lines
    182 182   menu.addAction(tr("Send NS to DNS"), this, [=](){this->action_send_selected_toEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    183 183   menu.addAction(tr("Send NS to SSL"), this, [=](){this->action_send_selected_toEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    184 184   menu.addSeparator();
    185  - menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
     185 + menu.addAction(tr("Send NS to NS-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::NS);})->setIcon(QIcon(":/img/res/icons/ns.png"));
    186 186   break;
    187 187   case ExplorerType::activeDNS_MX:
    188 188   case ExplorerType::passive_MX:
    skipped 6 lines
    195 195   menu.addAction(tr("Send MX to DNS"), this, [=](){this->action_send_selected_toEngine(ENGINE::DNS, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    196 196   menu.addAction(tr("Send MX to SSL"), this, [=](){this->action_send_selected_toEngine(ENGINE::SSL, RESULT_TYPE::SUBDOMAIN);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    197 197   menu.addSeparator();
    198  - menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
     198 + menu.addAction(tr("Send MX to MX-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::MX);})->setIcon(QIcon(":/img/res/icons/mx.png"));
    199 199   break;
    200 200   case ExplorerType::activeDNS_CNAME:
    201 201   case ExplorerType::passive_CNAME:
    skipped 13 lines
    215 215   case ExplorerType::activeSSL_sha1:
    216 216   case ExplorerType::activeSSL_sha256:
    217 217   case ExplorerType::passive_SSL:
    218  - menu.addAction(tr("Send To SSL-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::SSL);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
     218 + menu.addAction(tr("Send To SSL-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::SSL);})->setIcon(QIcon(":/img/res/icons/ssl.png"));
    219 219   break;
    220 220   case ExplorerType::activeURL:
    221 221   case ExplorerType::passive_URL:
    skipped 14 lines
    236 236   menu.addAction(tr("Send IpAddress to OSINT"), this, [=](){this->action_send_selected_toEngine(ENGINE::OSINT, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    237 237   menu.addAction(tr("Send IpAddress to RAW"), this, [=](){this->action_send_selected_toEngine(ENGINE::RAW, RESULT_TYPE::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    238 238   menu.addSeparator();
    239  - menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
     239 + menu.addAction(tr("Send IpAddress to IP-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::IP);})->setIcon(QIcon(":/img/res/icons/ip.png"));
    240 240   }
    241 241   if(m_selectionModel->columnIntersectsSelection(0, m_selectionModel->currentIndex().parent())){
    242 242   menu.addMenu(&extractMenu);
    skipped 10 lines
    253 253   menu.addAction(tr("Send Email to OSINT"), this, [=](){this->action_send_selected_toEngine(ENGINE::OSINT, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    254 254   menu.addAction(tr("Send Email to RAW"), this, [=](){this->action_send_selected_toEngine(ENGINE::RAW, RESULT_TYPE::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    255 255   menu.addSeparator();
    256  - menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
     256 + menu.addAction(tr("Send Email to Email-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::EMAIL);})->setIcon(QIcon(":/img/res/icons/email.png"));
    257 257   break;
    258 258   case ExplorerType::passive_ASN:
    259 259   menu.addAction(tr("Send ASN to OSINT"), this, [=](){this->action_send_selected_toEngine(ENGINE::OSINT, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    260 260   menu.addAction(tr("Send ASN to RAW"), this, [=](){this->action_send_selected_toEngine(ENGINE::RAW, RESULT_TYPE::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    261 261   menu.addSeparator();
    262  - menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->action_send_selected_toEnum(TOOL::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
     262 + menu.addAction(tr("Send ASN to ASN-Enum"), this, [=](){this->action_send_selected_toEnum(ENUMERATOR::ASN);})->setIcon(QIcon(":/img/res/icons/asn.png"));
    263 263   break;
    264 264   case ExplorerType::raw:
    265 265   menu.addMenu(&send_menu);
    skipped 226 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/project/Project_slots.cpp
    skipped 30 lines
    31 31   a_remove_duplicates.setEnabled(true);
    32 32   a_cancel.setEnabled(true);
    33 33   
     34 + ui->treeViewTree->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
     35 + 
    34 36   if(parent_index == model->explorer->active->index()){
    35 37   a_remove_duplicates.setDisabled(true);
    36 38   
    skipped 5 lines
    42 44   
    43 45   a_expand.setDisabled(true);
    44 46   a_collapse.setDisabled(true);
    45  - 
    46  - ui->treeViewTree->header()->resizeSection(0, 200);
    47  - ui->treeViewTree->header()->resizeSection(1, 100);
    48  - ui->treeViewTree->header()->resizeSection(2, 150);
    49  - ui->treeViewTree->header()->resizeSection(3, 100);
    50 47   }
    51 48   if(index == model->explorer->activeDNS->index()){
    52  - ui->treeViewTree->header()->resizeSection(0, 200);
    53  - ui->treeViewTree->header()->resizeSection(1, 200);
    54 49   ui->treeViewTree->setIndentation(15);
    55 50   ui->treeViewTree->setSortingEnabled(false);
    56 51   
    skipped 11 lines
    68 63   a_expand.setDisabled(true);
    69 64   a_collapse.setDisabled(true);
    70 65   a_extract.setDisabled(true);
    71  - 
    72  - ui->treeViewTree->header()->resizeSection(0, 300);
    73  - ui->treeViewTree->header()->resizeSection(1, 150);
    74 66   }
    75 67   if(index == model->explorer->activeSSL->index()){
    76  - ui->treeViewTree->header()->resizeSection(0, 300);
    77 68   ui->treeViewTree->setIndentation(15);
    78 69   ui->treeViewTree->setSortingEnabled(false);
    79 70   
    skipped 12 lines
    92 83   
    93 84   a_expand.setDisabled(true);
    94 85   a_collapse.setDisabled(true);
    95  - 
    96  - ui->treeViewTree->header()->resizeSection(0, 300);
    97  - ui->treeViewTree->header()->resizeSection(1, 10);
    98  - ui->treeViewTree->header()->resizeSection(2, 120);
    99 86   }
    100 87   }
    101 88   
    skipped 34 lines
    136 123   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::activeDNS_SRV);
    137 124   ui->comboBoxFilter->addItems({"Name", "Target", "Port"});
    138 125   ui->comboBoxFilter->show();
    139  - 
    140  - ui->treeViewTree->header()->resizeSection(0, 300);
    141  - ui->treeViewTree->header()->resizeSection(1, 300);
    142 126   }
    143 127   }
    144 128   
    skipped 26 lines
    171 155   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_subdomainIp);
    172 156   ui->comboBoxFilter->addItems({"Subdomain", "IpAddress"});
    173 157   ui->comboBoxFilter->show();
    174  - 
    175  - ui->treeViewTree->header()->resizeSection(0, 300);
    176 158   }
    177 159   if(index == model->explorer->passiveSubdomain->index()){
    178 160   proxyModel->setSourceModel(model->passiveSubdomain);
    skipped 9 lines
    188 170   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_AAAA);
    189 171   a_extract.setDisabled(true);
    190 172   }
    191  - if(index == model->explorer->passiveCidr->index()){
    192  - proxyModel->setSourceModel(model->passiveCidr);
     173 + if(index == model->explorer->passiveCIDR->index()){
     174 + proxyModel->setSourceModel(model->passiveCIDR);
    193 175   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_CIDR);
    194 176   a_extract.setDisabled(true);
    195 177   }
    skipped 19 lines
    215 197   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_Email);
    216 198   a_extract.setDisabled(true);
    217 199   }
    218  - if(index == model->explorer->passiveUrl->index()){
    219  - proxyModel->setSourceModel(model->passiveUrl);
     200 + if(index == model->explorer->passiveURL->index()){
     201 + proxyModel->setSourceModel(model->passiveURL);
    220 202   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_URL);
    221 203   }
    222  - if(index == model->explorer->passiveAsn->index()){
    223  - proxyModel->setSourceModel(model->passiveAsn);
     204 + if(index == model->explorer->passiveASN->index()){
     205 + proxyModel->setSourceModel(model->passiveASN);
    224 206   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::passive_ASN);
    225 207   ui->comboBoxFilter->addItems({"ASN", "name"});
    226 208   ui->comboBoxFilter->show();
    227 209   
    228 210   a_extract.setDisabled(true);
    229  - 
    230  - ui->treeViewTree->header()->resizeSection(0, 300);
    231 211   }
    232 212   if(index == model->explorer->passiveSSL->index()){
    233 213   proxyModel->setSourceModel(model->passiveSSL);
    skipped 6 lines
    240 220   a_remove_duplicates.setDisabled(true);
    241 221   a_extract.setDisabled(true);
    242 222   
    243  - if(index == model->explorer->enumIp->index()){
    244  - ui->treeViewTree->header()->resizeSection(0, 300);
     223 + if(index == model->explorer->enumIP->index()){
    245 224   ui->treeViewTree->setIndentation(15);
    246 225   ui->treeViewTree->setSortingEnabled(false);
    247 226   
    248  - proxyModel->setSourceModel(model->enumIp);
     227 + proxyModel->setSourceModel(model->enumIP);
    249 228   ui->treeViewTree->setProperty(SITEMAP_TYPE, ExplorerType::enum_IP);
    250 229   ui->comboBoxFilter->addItems({"IP", "Value"});
    251 230   ui->comboBoxFilter->show();
    252 231   }
    253 232   if(index == model->explorer->enumMX->index()){
    254  - ui->treeViewTree->header()->resizeSection(0, 300);
    255 233   ui->treeViewTree->setIndentation(15);
    256 234   ui->treeViewTree->setSortingEnabled(false);
    257 235   
    skipped 3 lines
    261 239   ui->comboBoxFilter->show();
    262 240   }
    263 241   if(index == model->explorer->enumASN->index()){
    264  - ui->treeViewTree->header()->resizeSection(0, 300);
    265 242   ui->treeViewTree->setIndentation(15);
    266 243   ui->treeViewTree->setSortingEnabled(false);
    267 244   
    skipped 3 lines
    271 248   ui->comboBoxFilter->show();
    272 249   }
    273 250   if(index == model->explorer->enumCIDR->index()){
    274  - ui->treeViewTree->header()->resizeSection(0, 300);
    275 251   ui->treeViewTree->setIndentation(15);
    276 252   ui->treeViewTree->setSortingEnabled(false);
    277 253   
    skipped 3 lines
    281 257   ui->comboBoxFilter->show();
    282 258   }
    283 259   if(index == model->explorer->enumNS->index()){
    284  - ui->treeViewTree->header()->resizeSection(0, 300);
    285 260   ui->treeViewTree->setIndentation(15);
    286 261   ui->treeViewTree->setSortingEnabled(false);
    287 262   
    skipped 3 lines
    291 266   ui->comboBoxFilter->show();
    292 267   }
    293 268   if(index == model->explorer->enumSSL->index()){
    294  - ui->treeViewTree->header()->resizeSection(0, 300);
    295 269   ui->treeViewTree->setIndentation(15);
    296 270   ui->treeViewTree->setSortingEnabled(false);
    297 271   
    skipped 3 lines
    301 275   ui->comboBoxFilter->show();
    302 276   }
    303 277   if(index == model->explorer->enumEmail->index()){
    304  - ui->treeViewTree->header()->resizeSection(0, 300);
    305 278   ui->treeViewTree->setIndentation(15);
    306 279   ui->treeViewTree->setSortingEnabled(false);
    307 280   
    skipped 6 lines
    314 287   
    315 288   if(parent_index == model->explorer->custom->index()){
    316 289   if(index == model->explorer->raw->index()){
    317  - ui->treeViewTree->header()->resizeSection(0, 300);
    318 290   ui->treeViewTree->setIndentation(15);
    319 291   ui->treeViewTree->setSortingEnabled(false);
    320 292   
    skipped 13 lines
    334 306   this->init_action_save();
    335 307   this->init_action_send();
    336 308   this->init_action_extract();
     309 + 
     310 + ui->treeViewTree->header()->setSectionResizeMode(QHeaderView::Interactive);
    337 311  }
    338 312   
    339 313  void Project::on_lineEditFilter_textChanged(const QString &filterKeyword){
    skipped 71 lines
    411 385   case ExplorerType::enum_IP:
    412 386   {
    413 387   ui->label_item_type->setText("Enumerated IP");
    414  - s3s_item::IP *item = static_cast<s3s_item::IP*>(model->enumIp->itemFromIndex(proxyModel->mapToSource(index)));
     388 + s3s_item::IP *item = static_cast<s3s_item::IP*>(model->enumIP->itemFromIndex(proxyModel->mapToSource(index)));
    415 389   ui->label_item_modified->setText(item->last_modified);
    416 390   ui->plainTextEdit_item_comment->setPlainText(item->comment);
    417 391   item_comment = &item->comment;
    skipped 139 lines
    557 531   case ExplorerType::enum_IP:
    558 532   {
    559 533   QModelIndex model_index = proxyModel->mapToSource(index);
    560  - if(model_index.parent() == model->enumIp->invisibleRootItem()->index()){
    561  - s3s_item::IP *item = static_cast<s3s_item::IP*>(model->enumIp->itemFromIndex(model_index));
     534 + if(model_index.parent() == model->enumIP->invisibleRootItem()->index()){
     535 + s3s_item::IP *item = static_cast<s3s_item::IP*>(model->enumIP->itemFromIndex(model_index));
    562 536   QJsonDocument document;
    563 537   document.setObject(ip_to_json(item));
    564 538   ui->plainTextEditJson->setPlainText(document.toJson());
    565 539   return;
    566 540   }
    567  - if(model->enumIp->itemFromIndex(model_index)->hasChildren())
    568  - ui->plainTextEditJson->setPlainText(item_to_json(model->enumIp->itemFromIndex(model_index)));
     541 + if(model->enumIP->itemFromIndex(model_index)->hasChildren())
     542 + ui->plainTextEditJson->setPlainText(item_to_json(model->enumIP->itemFromIndex(model_index)));
    569 543   }
    570 544   break;
    571 545   case ExplorerType::enum_ASN:
    skipped 98 lines
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/utils/CrashHandler.cpp
    skipped 9 lines
    10 10  #include "client/windows/handler/exception_handler.h"
    11 11  #endif
    12 12   
    13  - 
     13 +#if defined(Q_OS_LINUX) || defined(Q_OS_WIN32)
    14 14  namespace Breakpad {
    15 15   
    16 16  ///
    17  -/// \brief The CrashHandlerPrivate class
     17 +/// \brief The CrashHandlerPrivate class...
    18 18  ///
    19 19   
    20 20  class CrashHandlerPrivate {
    skipped 14 lines
    35 35  bool CrashHandlerPrivate::bReportCrashesToSystem = false;
    36 36   
    37 37  ///
    38  -/// DumpCallback
     38 +/// DumpCallback...
    39 39  ///
    40 40   
    41 41  #if defined(Q_OS_WIN32)
    skipped 47 lines
    89 89  }
    90 90   
    91 91  ///
    92  -/// CrashHandler
     92 +/// CrashHandler...
    93 93  ///
    94 94   
    95 95  CrashHandler* CrashHandler::instance(){
    skipped 29 lines
    125 125   
    126 126  }
    127 127   
     128 +#endif
     129 + 
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/utils/CrashHandler.h
    skipped 3 lines
    4 4  #pragma once
    5 5  #include <QString>
    6 6   
     7 +#if defined(Q_OS_LINUX) || defined(Q_OS_WIN32)
     8 + 
    7 9  namespace Breakpad {
    8 10   class CrashHandlerPrivate;
    9 11   class CrashHandler
    skipped 12 lines
    22 24   CrashHandlerPrivate* d;
    23 25   };
    24 26  }
     27 + 
     28 +#endif
    25 29   
    26 30  #endif // CRASHHANDLER_H
    27 31   
  • ■ ■ ■ ■ ■ ■
    sub3suite/src/utils/utils.h
    skipped 102 lines
    103 103  #define PLACEHOLDERTEXT_UA "User-Agent"
    104 104  #define PLACEHOLDERTEXT_BULK_IP "ip-address,ip-address"
    105 105   
    106  -struct ScanStatus{
     106 +struct ScanStatus {
    107 107   bool isNotActive = true;
    108 108   bool isRunning = false;
    109 109   bool isStopped = false;
    skipped 1 lines
    111 111   int activeScanThreads = 0;
    112 112  };
    113 113   
    114  -enum class RESULT_TYPE{
     114 +enum class RESULT_TYPE {
    115 115   SUBDOMAINIP,
    116 116   SUBDOMAIN,
    117 117   TLD,
    skipped 19 lines
    137 137   IPV6
    138 138  };
    139 139   
    140  -enum class ENGINE{
     140 +enum class ENGINE {
    141 141   BRUTE,
    142 142   TLDBRUTE,
    143 143   SUBBRUTE,
    skipped 5 lines
    149 149   URL
    150 150  };
    151 151   
    152  -enum class TOOL{
     152 +enum class ENUMERATOR {
    153 153   MX,
    154 154   NS,
    155 155   CIDR,
    skipped 8 lines
  • ■ ■ ■ ■ ■
    sub3suite/sub3suite.pro
    1 1  #---------------------------------------------------------------------------------
    2 2  #
    3  -# Project created by QtCreator 2020-12-07T00:44:51
     3 +# Project created by QtCreator 2020-11-07T00:44:51
    4 4  #
    5 5  # Copyright 2020-2022 Enock Nicholaus <[email protected]>. All rights reserved.
    6 6  #
    skipped 14 lines
    21 21  CONFIG += c99
    22 22  CONFIG += c++11
    23 23   
    24  -# debug information
    25 24  win32-msvc* {
     25 + # debug information; PDB and MAP files
    26 26   QMAKE_LFLAGS_RELEASE += /MAP
    27 27   QMAKE_CFLAGS_RELEASE += /Zi
    28 28   QMAKE_LFLAGS_RELEASE += /INCREMENTAL:NO /debug /opt:ref
    29 29  }
    30 30   
    31 31  unix {
     32 + # debug information; .debug file
    32 33   CONFIG += separate_debug_info
    33 34   QMAKE_CXXFLAGS += -g
     35 + 
     36 + # linked shared libraries path
     37 + QMAKE_LFLAGS_RPATH =
     38 + QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN/lib\'"
    34 39  }
    35 40   
    36 41  # included external libraries
    skipped 432 lines
Please wait...
Page is in error, reload to recover