Results 1 to 4 of 4

Thread: Extensii de fisiere

  1. #1
    Standard RSP member gessle's Avatar
    Join Date
    31 Jan 2007
    Location
    tg ocna;jud. BACAU
    Posts
    723
    Post Thanks / Like

    Thumbs up Extensii de fisiere

    Identificarea fisierelor dupa extensie


    Majoritatea sistemelor de operare merg pe mâna extensiilor pentru indentifcarea tipului unui fişier. Această tehnică de indentificare prezintă atât avantaje cât şi dezavantaje.
    Principalul avantaj îl constituie viteza. Dacă sistemul de operare ar trebuie să se „uite” de fiecare dată în interiorul fişierelor pentru a şti ce conţin acestea, timpul de analiză ar creşte considerabil. O simplă analiză din exterior a extensiei este cea mai rapidă cale de identificare a fişierelor.
    Principalul dezavantaj îl reprezintă posibilitatea de indentificare gresită a fişierelor. Dacă un fişier ce conţine informaţie audio (cu extensia .mp3 de exemplu) primeşte accidental extensia unui fişier dedicat stocării de text - acesta va fi tratat ca un fişier text. Rezultatul? - un fişier aproape inutilizabil, în codiţiile în care sistemul de operare va trimite fişierul ce conţine în aparenţă text către un program de editare text.

    Fişierele ajunse pe un mediu de stocare ce permite modificarea conţinutului pot fi redenumite. Modificarea accidentală extensiei (în urma redenumirii) duce la pierderea asocierii dintre fişierul în cauză şi programul necesar pentru deschidere. Acest fapt poate crea probleme serioase utilizatorilor care nu ştiu exact cu ce program funcţiona fişierul înainte de rătăcirea extensiei.
    Acest aspect a dus la şi la unele măsuri de protecţie a extensiei. Sisteme ca Windows sau Mac OS X ascund extensia fişiereleor cunoscute (adică cele asociate cu un program insatalat în memorie) atunci când afişează o listă cu fişiere în cadrul managerului de fişiere integrat. (Windows Explorer de exemplu).
    Chiar dacă în acest fel extensia este protejată de o modificare accidentală, există cel puţin două aspecte negative ce derivă din această tehnică:

    • Nu aveţi posibilitatea de a determina tipul fişierului prin simpla analiză extensiei. E drept că sistemul de operare are grijă să afişeze şi o descriere succintă a tipului fişierului, dar această descriere nu este prezentă decât dacă selectaţi un anumit mod de vizualizare a fişierelor. (mod pe care este posibil să nu-l agreaţi)


    • Unii utilzatori pot fi păcăliţi prin simularea unei extensii false.

    Dacă vă întrebaţi ce rău poate face o extensie simulată daţi mare atenţie secţiunii ce urmează.
    Gradul de periculozitate a unui fişier
    Datorită structurii interne unele fişiere nu pot conţine virusi niciodată . Este cazul, în special, al fişierelor ce conţin informaţie audio-vizuală, text precum şi a majorităţii fişierelor stocate de un calculator. Per a contrario, unele fişiere pot fi purtătoare de viruşi. Este cazul fişierelor executabile dar şi altor tipuri de fişier.
    Revenind la problema neafişării extensiei, prin disimularea extensiei adevărate unii utilizatori pot crede că un fişier face parte din prima categorie, cea a fişierelor absolut inofensive.
    În imagina de mai puteţi observa cum un fişier cu o extensie poteţial periculoasă (.vbs) poate fi deghizat într-unul inofensiv ce aparent conţine o imagine in format .gif.
    Acunderea extensiei adevărate şi alături de un nume cât mai incitant pentru fişierul în cauză este une din tehnicile obişnuite de răspândire a unor viruşi.
    Pentru a şti întotdeauna ce extensie au fişierele cu care lucraţi, pentru a putea modifica extensia în folosul dumnevoastră, şi pentru a evita preluarea unor viruşi este recomandat să optaţi pentru afişarea extensiei. În cazul managerului de fişiere incorporat în sistemul de operare Windows trebuie să procedăm in următorul fel:
    Deschidem My Computer (Computerul meu) si selectăm Folder Options (Optiuni foldere) din meniul Tools (Instrumente), iar in ectiunea View (Vizualizare) deselectăm optiunea: Hide extensios for known file types (Ascunde extensia pentu pentru tipurile de fisier cunoscute)
    FOCUS SAT-UPC;RCS-digital cablu;ADSL;BAYERN MUNCHEN&AC MILAN;
    .de

  2. #2
    Standard RSP member gessle's Avatar
    Join Date
    31 Jan 2007
    Location
    tg ocna;jud. BACAU
    Posts
    723
    Post Thanks / Like

    Default Re: Extensii de fisiere

    Extensia şi viruşii deghizaţi


    Sa nu ne lăsăm păcăliţi de o extensie falsă

    Sistemele de operare moderne nu afişează extensiile fişierelor care sunt asociate cu unul din programale instalate. Aceasta nu ar fi un inconveninet dacă nu ar exista ceea ce numim virusi.
    Acunderea extensiei adevărate a unui fişier alături de un nume cât mai incitant pentru fişierul în cauză este une din tehnicile obişnuite de răspândire a unor viruşi sau alt software maliţios.
    Prin disimularea extensiei adevărate unii utilizatori pot crede că un fişier face parte din categoria fişierelor inofensive care datorită structurii lor interne nu pot conţine niciodată viruşi sau alte instrucţiuni maliţioase. În această categorie, cele mai răspândite fişiere sunt cele ce conţin informaţie audio-vizuală:

    • text (exemplu: formatele .txt, .rtf)
    • imagini (.jpg, .gif, .png, .bmp, .tif, etc)
    • video (.mpg, .avi, .mov, .vob, .mkv, etc)
    • audio (.mp3, .aac, .wma, etc)

    În imaginea de mai jos putem observa cu un virus se deghizează la umbra extensiei .jpg, făcând utilizatorul neexperimentat să creadă că în faţă are nişte fişiere cu imagini şi nu fişiere executabile care pot conţine viruşi.

    Pentru ca deruta să fie şi mai mare fişierele executabile deghizate mai sus aparent in imagini imprumută pictograma (iconiţa) pe care Windows-ul o foloseşte pentru simbolizarea dosarelor (folderelor) Astfel tentaţia de a face dublu clic şi a vizualiza “conţinutul” este şi mai mare.
    Aceleaşi fişiere atunci când ne sunt afişate în cadrul unui program de file sharing P2P ( DC++ de ex) vor fi afişate cu extensia completă. Trebuie să fim doar atenţi la ce descărcăm. Nu strică să analizăm şi alte elemente care pot da de gol un virus, precum mărimea indentică a mai multor fişiere, in cazul ilustrat mai jos - 44.07 kB.

    Să afişăm extensia!
    Pentru a şti ce extensie au fişierele cu care lucram, pentru a putea modifica extensia în scopul ascunderii anumitor fişiere de ochii curioşilor, şi mai ales pentru a evita preluarea unor viruşi este recomandat să optam pentru afişarea extensiilor cunoscute în managerul de fişiere.
    În cazul managerului de fişiere incorporat în sistemul de operare Windows trebuie să procedăm in următorul fel:

    • deschidem My Computer (Computerul meu)
    • din meniul Tools (Instrumente) selectăm Folder Options (Optiuni foldere) (acelasi rezultat il obtinem daca apelam la iconita optiunea Folder Options pe care o gasim in Control Panel)
    • In sectiunea View (Vizualizare) deselectăm optiunea: Hide extensios for known file types (Ascunde extensia pentu pentru tipurile de fisier cunoscute)

    Rezultatul?
    Windows Explorer va afişa si extensia fişierelor în cauză, care de data aceasta va avea terminatia .exe.

    FOCUS SAT-UPC;RCS-digital cablu;ADSL;BAYERN MUNCHEN&AC MILAN;
    .de

  3. #3
    Standard RSP member gessle's Avatar
    Join Date
    31 Jan 2007
    Location
    tg ocna;jud. BACAU
    Posts
    723
    Post Thanks / Like

    Default Re: Extensii de fisiere

    Fisiere text si fisiere binare(superficial)
    Într-un fisier text, toate datele sunt memorate ca siruri de caractere, organizate pe linii, separate între ele prin marcajul sfârsit de linie ‘n’ .
    Într-un fisier text spatiul de memorare pe disc nu este folosit în mod eficient pentru datele numerice (astfel întregul 12345 ocupa 5 octeti).
    Într-un fisier binar, datele sunt pastrate în formatul lor intern (2 octeti pentru int, 4 octeti pentru float, etc).
    La fisierele text marcajul de sfârsit de fisier (caracterul 0X1A) exista fizic în fisier. La întâlnirea acestui caracter functia fgetc() întoarce EOF (-1). Marcajul de sfârsit de fisier se genereaza de la tastatura prin Ctrl-Z.
    În cazul fisierelor binare, marcajul de sfârsit de fisier nu exista fizic în fisier, ci este generat de functia fgetc().
    În MSDOS (si în Unix), la nivelul liniei de comanda intrarile si iesirile standard pot fi redirectate în fisiere disc, fara a opera nici o modificare la nivelul programului. Astfel:
    < redirecteaza intrarea standard catre fisierul specificat
    > redirecteaza iesirea standard catre fisierul specificat
    Fisierul standard de eroare nu poate fi redirectat.
    Fisierul specificat poate fi:
    con – pentru consola sistem (tastatura, respectiv ecranul)
    prn – pentru imprimanta paralela
    com1 – pentru interfata seriala de date
    nume_fisier – pentru un fisier disc
    NUL – pentru perifericul nul.
    Exemple:
    > test.exe > prn redirecteaza iesirea programului la imprimanta
    > test.exe < f1.dat > f2.dat redirecteaza atât intrarea cât si iesirea programului
    3. Accesul la fisiere.
    Fisierele disc si fisierele standard sunt gestionate prin pointeri la structuri specializate FILE, care se asociaza fiecarui fisier pe durata prelucrarii.
    Fisierele standard au pointerii predefiniti: stdin, stdout, stderr, stdprn, stdaux.
    Declararea unui pointer la fisier se face prin:
    FILE *pf;
    1. deschiderea unui fisier:
    Înainte de a fi prelucrat, un fisier trebuie sa fie deschis. Prin deschidere:
    - se asociaza unui nume de fisier un pointer la fisier
    - se stabileste un mod de acces la fisier
    Pentru deschiderea unui fisier se foloseste functia cu prototipul:
    FILE *fopen(char *nume_fisier, char *mod_acces);
    Prin deschiderea unui fisier se stabileste o conexiune logica între fisier si variabila pointer si se aloca o zona de memorie (buffer) pentru realizarea mai eficienta a operatiilor de intrare / iesire. Functia întoarce:
    - un pointer la fisier, în caz ca deschiderea fisierului se face în mod corect
    - NULL daca fisierul nu poate fi deschis.
    Vom considera mai întâi doua moduri de acces :
    - citire (sau consultare) “r” – citirea dintr-un fisier inexistent va genera eroare
    - scriere (sau creare) “w” - daca fisierul exista deja, el va fi sters
    Fisierele standard nu trebuiesc deschise.
    Redirectarea unui fisier deschis poate fi realizata cu:
    FILE* freopen(char* nume, char* mod, FILE* flux));
    Fisierul deschis este închis si este deschis un nou fisier având ca sursa fluxul, numele si modul de acces specificati ca parametri. O utilizare importanta o constituie redirectarea fluxului standard de intrare: datele vor fi citite din fisierul specificat, fara a face nici o modificare în program.

    2. închiderea unui fisier
    Dupa terminarea prelucrarilor asupra unui fisier, acesta trebuie închis. Un fisier este închis automat la apelarea functiei exit().
    int fclose(FILE *pf);
    - functia întoarce 0 la închidere normala si EOF la producerea unui incident
    - fisierele standard nu se închid de catre programator
    - în cazul unui fisier de iesire, se scriu datele ramase nescrise din buffer în fisier, asa ca operatia de închidere este obligatorie
    - în cazul unui fisier de intrare, datele necitite din bufferul de intrare sunt abandonate
    - se elibereaza bufferele alocate
    - se întrerupe conexiunea pointer – fisier
    Secventa urmatoare deschide un fisier cu un nume dat si apoi îl închide.
    FILE *pf = fopen(“test1.dat”, ”w”);
    fclose(pf);
    FOCUS SAT-UPC;RCS-digital cablu;ADSL;BAYERN MUNCHEN&AC MILAN;
    .de

  4. #4
    Standard RSP member gessle's Avatar
    Join Date
    31 Jan 2007
    Location
    tg ocna;jud. BACAU
    Posts
    723
    Post Thanks / Like

    Default Re: Extensii de fisiere

    C++ file input and output are typically achieved by using an object of one of the following classes:
    • ifstream for reading input only.
    • ofstream for writing output only.
    • fstream for reading and writing from/to one file.

    All three classes are defined in <fstream.h>. Throughout this page, the term "file stream" will be used when referring to features that apply equally to all three classes. Normally, for binary file i/o you do not use the conventional text-oriented << and >> operators! It can be done, but that is an advanced topic.
    Basic Model for File I/O

    In C++, the file stream classes are designed with the idea that a file should simply be viewed as a stream or array of uninterpreted bytes. For convenience, the "array" of bytes stored in a file is indexed from zero to len-1, where len is the total number of bytes in the entire file. Each open file has two "positions" associated with it:

    1. The current reading position, which is the index of the next byte that will be read from the file. This is called the "get pointer" since it points to the next character that the basic get method will return.
    2. The current writing position, which is the index of the byte location where the next output byte will be placed. This is called the "put pointer" since it points to the location where the basic put method will place its parameter.

    These two file positions are independent, and either one can point anywhere at all in the file.

    Getting The Size of a File


    The typical way to get the size of a file is to use the C library function stat: #include <sys/stat.h>
    ...
    struct stat results;

    if (stat("input.bin", &results) == 0)
    // The size of the file in bytes is in
    // results.st_size
    else
    // An error occurredNote that the second parameter to stat is a pointer. It is your responsibility to create and manage the memory where stat will place its results, and the address of that memory is what you should pass in as this second parameter. The above example shows the use of a local variable to hold the results returned by stat.

    Opening a File


    A file stream object can be opened in one of two ways. First, you can supply a file name along with an i/o mode parameter to the constructor when declaring an object: ifstream myFile ("data.bin", ios::in | ios::binary);Alternatively, after a file stream object has been declared, you can call its open method: ofstream myFile;
    ...
    myFile.open ("data2.bin", iosut | ios::binary);Either approach will work with an ifstream, an ofstream, or an fstream object. Normally, when manipulating text files, one omits the second parameter (the i/o mode parameter). However, in order to manipulate binary files, you should always specify the i/o mode, including ios::binary as one of the mode flags. For read/write access to a file, use an fstream:
    fstream myFile;
    myFile.open ("data3.bin", ios::in | iosut | ios::binary);
    Last edited by gessle; 15-02-09 at 02:02.
    FOCUS SAT-UPC;RCS-digital cablu;ADSL;BAYERN MUNCHEN&AC MILAN;
    .de

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •