diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/analysis/scan/options.c | 2 | ||||
| -rw-r--r-- | src/analysis/scan/rule.c | 8 | ||||
| -rw-r--r-- | src/analysis/scan/rule.h | 2 | ||||
| -rw-r--r-- | src/analysis/scan/scanner.c | 5 | ||||
| -rw-r--r-- | src/analysis/scan/scanner.h | 2 | ||||
| -rw-r--r-- | src/rost.c | 8 | 
6 files changed, 19 insertions, 8 deletions
| diff --git a/src/analysis/scan/options.c b/src/analysis/scan/options.c index cb56c2b..2147bb5 100644 --- a/src/analysis/scan/options.c +++ b/src/analysis/scan/options.c @@ -86,6 +86,8 @@ static void g_scan_options_init(GScanOptions *options)  {      options->data_backend = G_TYPE_INVALID; +    options->print_json = false; +    options->print_strings = false;      options->print_stats = false;  } diff --git a/src/analysis/scan/rule.c b/src/analysis/scan/rule.c index 7719e8a..4ef1e3c 100644 --- a/src/analysis/scan/rule.c +++ b/src/analysis/scan/rule.c @@ -525,6 +525,7 @@ void g_scan_rule_check(GScanRule *rule, GEngineBackend *backend, GScanContext *c  *                                                                             *  *  Paramètres  : rule    = règle de détection à considérer.                   *  *                context = contexte de l'analyse à mener.                     * +*                full    = force un affichage complet des résultats.          *  *                fd      = canal d'écriture.                                  *  *                                                                             *  *  Description : Affiche une règle au format texte.                           * @@ -535,12 +536,13 @@ void g_scan_rule_check(GScanRule *rule, GEngineBackend *backend, GScanContext *c  *                                                                             *  ******************************************************************************/ -void g_scan_rule_output_to_text(const GScanRule *rule, GScanContext *context, int fd) +void g_scan_rule_output_to_text(const GScanRule *rule, GScanContext *context, bool full, int fd)  {      size_t i;                               /* Boucle de parcours          */ -    for (i = 0; i < rule->bytes_used; i++) -        g_search_pattern_output_to_text(rule->bytes_locals[i], context, fd); +    if (full) +        for (i = 0; i < rule->bytes_used; i++) +            g_search_pattern_output_to_text(rule->bytes_locals[i], context, fd);      if (g_scan_context_has_match_for_rule(context, rule->name))      { diff --git a/src/analysis/scan/rule.h b/src/analysis/scan/rule.h index 20a688c..7ade51b 100644 --- a/src/analysis/scan/rule.h +++ b/src/analysis/scan/rule.h @@ -81,7 +81,7 @@ bool g_scan_rule_setup_backend(GScanRule *, GEngineBackend *, GScanContext *);  void g_scan_rule_check(GScanRule *, GEngineBackend *, GScanContext *);  /* Affiche une règle au format texte. */ -void g_scan_rule_output_to_text(const GScanRule *, GScanContext *, int); +void g_scan_rule_output_to_text(const GScanRule *, GScanContext *, bool, int);  /* Convertit une règle en texte. */  void g_scan_rule_convert_as_text(const GScanRule *, GScanContext *); diff --git a/src/analysis/scan/scanner.c b/src/analysis/scan/scanner.c index b550b1f..29f47eb 100644 --- a/src/analysis/scan/scanner.c +++ b/src/analysis/scan/scanner.c @@ -526,6 +526,7 @@ GScanContext *g_content_scanner_analyze(GContentScanner *scanner, GScanOptions *  *                                                                             *  *  Paramètres  : scanner = gestionnaire de recherche à consulter.             *  *                context = contexte de l'analyse à mener.                     * +*                full    = force un affichage complet des résultats.          *  *                fd      = canal d'écriture.                                  *  *                                                                             *  *  Description : Affiche un gestionnaire de recherches au format texte.       * @@ -536,14 +537,14 @@ GScanContext *g_content_scanner_analyze(GContentScanner *scanner, GScanOptions *  *                                                                             *  ******************************************************************************/ -void g_content_scanner_output_to_text(const GContentScanner *scanner, GScanContext *context, int fd) +void g_content_scanner_output_to_text(const GContentScanner *scanner, GScanContext *context, bool full, int fd)  {      size_t i;                               /* Boucle de parcours          */      /* Sous-traitance aux règles */      for (i = 0; i < scanner->rule_count; i++) -        g_scan_rule_output_to_text(scanner->rules[i], context, fd); +        g_scan_rule_output_to_text(scanner->rules[i], context, full, fd);  } diff --git a/src/analysis/scan/scanner.h b/src/analysis/scan/scanner.h index 58dbe19..d2b5dc1 100644 --- a/src/analysis/scan/scanner.h +++ b/src/analysis/scan/scanner.h @@ -73,7 +73,7 @@ bool g_content_scanner_add_rule(GContentScanner *, GScanRule *);  GScanContext *g_content_scanner_analyze(GContentScanner *, GScanOptions *, GBinContent *);  /* Affiche un gestionnaire de recherches au format texte. */ -void g_content_scanner_output_to_text(const GContentScanner *, GScanContext *, int); +void g_content_scanner_output_to_text(const GContentScanner *, GScanContext *, bool, int);  /* Convertit un gestionnaire de recherches en texte. */  void g_content_scanner_convert_as_text(const GContentScanner *, GScanContext *); @@ -167,6 +167,7 @@ int main(int argc, char **argv)      GBinContent *content;                   /* Contenu à analyser          */      GScanContext *context;                  /* Contexte des trouvailles    */      sized_string_t padding;                 /* Bourrage pour le JSON       */ +    bool full;                              /* Détailler l'affichage ?     */      static struct option long_options[] = {          { "help",           no_argument,        NULL,   'h' }, @@ -309,7 +310,12 @@ int main(int argc, char **argv)          }          else -            g_content_scanner_output_to_text(scanner, context, STDOUT_FILENO); +        { +            full = g_scan_options_get_print_strings(options); + +            g_content_scanner_output_to_text(scanner, context, full, STDOUT_FILENO); + +        }          g_object_unref(G_OBJECT(context));          g_object_unref(G_OBJECT(content)); | 
