Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Software per protezione file da rinominazione

    Salve a tutti, avevo intenzione di mettere sul mio sito gli eseguibili di alcuni mie programmi..Esistono software in grado di proteggere i files da modifiche, come ad esempio da RINOMINAZIONE? Non so se sia una protezione applicabile.

    --------ESEMPIO-------
    Scarico il file a.exe
    Mi viene vietata la ridenominazione del file in b.exe
    ----------------------

    Grazie a tutti.

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    fallo tu da programma... che linguaggio usi?

    in C argv[0] contiene il nome del programma stesso... verifica all'atto dell'esecuzione che sia uguale a quello da te impostato... se è diverso esci.

    Ma sinceramente non vedo l'utilità della cosa...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Grazie per la risposta..
    In pratica nel main dovrei inserire un controllo?

    Mettiamo che il programma si chhiami prova.exe
    argv[0] contiene la p?

    Dovrei fare uno strcmp????
    Aspetto le tue dritte.

  4. #4
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    no argv[0] è il puntatore alla stringa. argv[0][0] contiene la 'p', argv[0][1] la 'r', argv[0][2] la 'o' etc..

    argv[1] è il puntatore al primo parametro passato da righa di comando, argv[2] il secondo etc...

    argc invece contiene il numero dei parametri immessi compreso il comando.

    in ogni caso usa questo:



    main(int argc, char *argv[])
    {
    if (strcmp(argv[0],"prova.exe")!=0) exit(0);

    ...
    }
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  5. #5
    Ho seguito i tuoi passi, e ti ringrazio, ma senza ottenere l' effetto sperato...

    int main(int argc, char *argv[]){
    if (strcmp(argv[0],"prova")!=0)
    exit(0);
    int num;
    printf("\n");
    ........
    .....
    ..
    .
    L'eseguibile non parte più..
    Il tuo codice non mi convince molto..
    Aspetto tue notizie.
    Grazie.

  6. #6
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    scusa il ritardo... mi ero perso il tuo post...
    ho visto la tua richiesta su Alground e mi sono ricordato...

    Ti assicuro che il codice funziona. Prova a compilare semplicemente questo:

    codice:
    #include <stdio.h>
    #include <string.h>
    
    main(int argc, char *argv[]) 
    { 
     if (strcmp(argv[0],"prova")!=0) { printf("File rinominato [argv[0]=%s]!\n",argv[0]); exit(0); }
    
     printf("OK! File non rinominato!\n Qui prosegue il vero programma\n");
    
    }
    se l'exe si chiama prova.exe e lo lanci con
    prova
    ti stampa
    OK! File non rinominato!
    Qui prosegue il vero programma


    altrimenti
    File rinominato [argv[0]=nome file attuale]!
    ed esce.

    Ovviamente per essere totalmente funzionale deve essere migliorato.
    se per caso lanci il prog con
    prova.exe
    deve funzionare lo stesso...
    idem se lo lanci tramite percorso assoluto tipo:
    c:\cartella\prova.exe
    Qui argv[0] sarà "c:\cartella\prova.exe" ma deve funzionare lo stesso...
    devi riuscire ad isolare il solo nome del file privo di percorso ed estensione....
    il tutto deve essere anche indipendente dal case (su windows):

    qui la versione definitiva:

    codice:
    #include <stdio.h>
    #include <string.h>
    
    main(int argc, char *argv[]) 
    {
     char *p;
     
     p=strrchr(argv[0],'\\\');  // cerco ultima occorrenza di backslash
     
     if (p==NULL) p=argv[0];   // backslash non trovato
      else  p++;               // backslash trovato
     
     // p punta al nome del file depurato del path
      
     if ( (strcmpi(p,"prova")!=0) && (strcmpi(p,"prova.exe")!=0) ) 
             { printf("File rinominato!!\n"); exit(0); }   // rinominato->esco
    
     printf("OK! File non rinominato!\n Qui prosegue il vero programma\n");
    
    }


    a sto punto andrebbe spostato in programmazione...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.