Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

Volume serial number (VSN) - algoritm de calcul

- - - - -
  • Please log in to reply
1 reply to this topic

#1
STCRESELLER

STCRESELLER

    New Member

  • Grup: Candidate Members
  • Posts: 6
  • Înscris: 26.11.2019
Ce este Volume Serial Number (VSN) ?
VSN-ul este o combinatie de 8 caractere (cifre de la 0 la 9 si litere de la A la F) atasate unei partitii din Windows.
Isi are originea in vechiul sistem OS/2, iar Windows-ul l-a preluat in 1988 de la MS-DOS 4, dupa cum ne spune Wikipedia.

Cum este calculat VSN de catre Windows?
VSN este un sir de caractere de 32 biti (sau 8 caractere) stabilit in functie de data si ora la care o anumita partitie, odata creata, primeste comanda "Format" si devine disponibila pe hard-disk gata de a fi folosita in sistemul de fisiere in care a fost creata (la partitionarea hard-ului).
Data formatarii contine anul, luna, ziua iar momentul pe ceas al formatarii este de forma ora, minut, secunda si sutimi de secunda (adica milisecunde x 10).

Nu e nici un secret cum calculeaza Windows VSN-ul, de aceea s-au scris lucrari despre acest lucru, fiind posibila calcularea VSN chiar si de coderi entuziasti, in baza cunostintelor medii de programare. Una dintre lucrari unde se arata cum se calculeaza VSN este disponibila aici: https://www.digital-...ial Numbers.pdf

Arie de aplicare a VSN
Cum VSN are la baza data si ora furnizate de Windows, tot in Windows intalnim data si ora la care au loc diferite evenimente in calculatorul nostru - cum ar fi data si ora la care cream, printam, modificam un fisier, la care le logam in Windows sau inchidem calculatorul, momentul ca data si ora cand ne de- si conectam de si la internet, etc. Asadar, putem calcula VSN in baza oricarui moment afisat in Windows, de forma data si ora. Cum facem asta?

Cum facem asta?
Am scris mai sus ca VSN e un sir de 8 caractere, de 32 biti. El are forma exemplificativa A0BC-D1EF (deschideti un cmd, tastati VOL C: si cititi volume serial number-ul partitiei C a voastra; asa arata deci un VSN). Este de fapt un numar hexadecimal, rezultat prin conversia din decimal in HEX a datei si orei momentului in care partitionam hard-ul si obtinem partitia C cu VOL C:-ul ei, etc.).
Acest VSN are la baza data si ora, deci putem converti data si ora oricarui moment din Windows pentru a calcula traducerea in HEX a acelui moment.

Am ales pentru asta sa calculez volume serial number-ul unui fisier, convertind "Creation date and time", din decimal (anul 2019, blabla ora 16 blabla) in HEX pentru o ilustrare a "Creation date and time" in HEX obtinand tot un fel de VSN ca in cazul in care obtin VSN-ul unei partitiei la data crearii ei.

Exemplu ilustrativ: Data de 19.10.2003 ora 22h 33min 27,001 sec se traduce in HEX drept 2514-1DF4 care este de fapt VSN-ul unei partitii create atunci sau, daca vreti traducerea in HEX a datei crearii unui fisier la momentul in cauza.

Utilizati cele doua elemente atasate pentru calculul VSN al fisierelor voastre. Folosirea utilitarului atasat nu modifica sub nici o forma continutul fisierului vostru examinat pentru care calculati VSN - e ca si cum ati tasta VOL C: in cmd fara ca partitiile sa pateasca ceva.

Atachment-ul de 6.51 kb e programul exe (arhivat ca ZIP), iar FILEVOL.rar contine codul sursa in VB.NET.

Spor !

Attached Files



#2
bionix

bionix

    Junior Member

  • Grup: Members
  • Posts: 79
  • Înscris: 19.12.2006
tot nu inteleg la ce se foloseste....
sau de ce trebuie un program pt asta....
si trebuie sa fie neaparat 8 caractere?

-------------------------

in delphi obti acelasi lucru intr-o variabila de tip TTime. cu un singur apel la o functie.

Deci acela program in delphi s-ar scrie ca o singura linie de cod:


var
  x: TDateTime;
begin
  x:= Now;
end;


http://docwiki.embar...en/System.TTime

Edited by bionix, 16 July 2020 - 19:20.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate