Outils pour utilisateurs

Outils du site


bloc_note

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc_note [2024/12/18 07:29] adminbloc_note [2025/03/24 15:27] (Version actuelle) admin
Ligne 2: Ligne 2:
  
 <code> <code>
-#include <stdio.h> +        <g id="SANDOUVILLE" transform="matrix(2.91786,0,0,2.64787,-910.867,-504.816)"
-#include <stdlib.h> + <ellipse cx="475.825" cy="305.328rx="0.902ry="0.994" style="fill:rgb(216,29,29);"/> 
-#include <string.h> + <g transform="matrix(0.0639002,0,0,0.0708526,474.795,304.48)"> 
-#include <unistd.h+ <g> 
-#include <sys/types.h> + <path id="Rectangle-24serif:id="Rectangle-2" d="M24,11L26,11L26,13.686L13.686,26L2,13.686L13.686,2L26,2L26,8L24,8L23,5L14.929,5L6.188,13.741L13.742,21.701L23,12.444L24,11Z" style="fill:rgb(26,26,26);"/> 
- + <path id="D4" serif:id="D" d="M13.342,17.085C12.996,17.085 12.623,17.074 12.225,17.052C11.827,17.031 11.461,17 11.128,16.96L11.128,9.795C11.504,9.708 11.925,9.64 12.39,9.59C12.855,9.54 13.307,9.515 13.748,9.515C15.191,9.515 16.272,9.823 16.993,10.44C17.713,11.057 18.073,12.01 18.073,13.3C18.073,14.187 17.9,14.908 17.555,15.465C17.21,16.022 16.691,16.431 15.998,16.693C15.304,16.954 14.419,17.085 13.342,17.085ZM13.938,15.34C14.378,15.34 14.737,15.273 15.015,15.14C15.293,15.007 15.502,14.791 15.64,14.493C15.778,14.194 15.848,13.793 15.848,13.29C15.848,12.793 15.775,12.396 15.63,12.098C15.485,11.799 15.272,11.583 14.99,11.45C14.708,11.317 14.353,11.25 13.923,11.25C13.832,11.25 13.728,11.256 13.608,11.268C13.487,11.279 13.386,11.293 13.303,11.31L13.303,15.325C13.456,15.335 13.667,15.34 13.938,15.34Zstyle="fill:rgb(50,50,50);"/> 
-// Liste des scripts autorisés + </g> 
-const char *authorized_scripts[] + </g> 
-    "/path/to/authorized_script1.sh"+ </g>
-    "/path/to/authorized_script2.sh"+
-    NULL // Marqueur de fin de liste +
-}; +
- +
-// Fonction pour vérifier si un script est autorisé +
-int is_script_authorized(const char *script_path) { +
-    for (int i = 0; authorized_scripts[i] !NULL; i++) { +
-        if (strcmp(script_pathauthorized_scripts[i]== 0) { +
-            return 1; // Trouvé dans la liste +
-        } +
-    } +
-    return 0; // Non autorisé +
-+
- +
-void check_parent_script() { +
-    pid_t ppid getppid(); // Obtenir le PPID (Parent Process ID) +
-    char path[256]; +
-    char cmdline[1024] = {0}; +
-    FILE *file; +
- +
-    // Construire le chemin vers /proc/[PPID]/cmdline +
-    snprintf(pathsizeof(path)"/proc/%d/cmdline"ppid); +
- +
-    // Ouvrir le fichier cmdline pour lire la commande du parent +
-    file fopen(path, "r"); +
-    if (!file) { +
-        perror("ErrorUnable to open parent process info."); +
-        exit(1); +
-    } +
- +
-    // Lire le contenu de cmdline +
-    if (fgets(cmdlinesizeof(cmdline)file) !NULL) { +
-        fclose(file); +
- +
-        // Extraire le chemin du script (premier argument après le shell) +
-        char *script_path strchr(cmdline, '\0') + 1; +
-        if (*script_path != '\0') { +
-            // Valider le script +
-            if (!is_script_authorized(script_path)) { +
-                fprintf(stderr, "ErrorUnauthorized script '%s' tried to launch this program.\n", script_path); +
-                exit(1); +
-            } +
-        } else { +
-            fprintf(stderr"Error: This program must be launched by a shell script.\n"); +
-            exit(1); +
-        } +
-    } else { +
-        fclose(file); +
-        perror("ErrorUnable to read parent process command line."); +
-        exit(1); +
-    } +
-+
- +
-int main(int argcchar *argv[]) { +
-    // Vérifier le script parent +
-    check_parent_script(); +
- +
-    printf("Program successfully launched by an authorized script.\n"); +
- +
-    // Logique principale du programme ici +
-    return 0; +
-}+
  
 </code> </code>
bloc_note.1734503349.txt.gz · Dernière modification : 2024/12/18 07:29 de admin