Situația inițială Echipa de dezvoltare Windows folosește un set intern de SDK-uri și utilitare CLI, care sunt distribuite ca ZIP/MSI și sunt actualizate frecvent. În prezent, verificările de integritate se fac manual folosind notele Wiki, motiv pentru care binarele nesemnate sau modificate, precum și versiunile „pierdute” fără conținut transparent ajung periodic în build. Mediu tehnic și domeniu - Windows 10/11 x64 - .NET 8 Desktop (WPF sau WinUI 3) sau C++/Qt - pentru a alege, dar rezultatul trebuie să fie un program desktop gata făcut cu un program de instalare - Arhive/artefacte: folder local, partajare în rețea (UNC), precum și fișier ZIP/MSI descărcat - Validări: SHA-256/SHA-512, Authenticode (WinVerifyTrust), validare de bază a lanțului de certificate, colecție SBOM (CycloneDX sau SPDX) pe baza conținutului pachetului Ce trebuie făcut (mai mulți pași) 1) Analiza formatului și regulilor de livrare - Intrarea include 10-15 pachete standard (ZIP/MSI) și un exemplu de reguli curente sub forma unui tabel (fișiere așteptate, măști, versiuni, cerințe de semnătură) - Este necesar să se clarifice și să se repare schema de reguli în configurația aplicației: nume/măști valide, fișiere necesare, emitenți de certificate valide, versiuni minime, excepții 2) Dezvoltarea unei aplicații desktop - Aplicația selectează sursa (dosar/UNC/ZIP/fișier MSI), o despachetează într-o zonă temporară, construiește un arbore de fișiere și efectuează verificări - generează un raport în două tipuri: citibil de om (fișier PDF sau HTML) și citibil de mașină (JSON) - Suportă profiluri de reguli (de exemplu Dev/CI/Release) cu comutare - Are un mod „compara două pachete” - arată diferența în fișiere, hashuri, semnături și versiuni 3) Implementarea controalelor - Hashing a fiecărui fișier și comparare cu standardul, dacă este specificat unul - Verificarea codului de autentificare pentru fișierele PE: starea semnăturii, emitentul, perioada de valabilitate a certificatului la momentul semnării, ștampila de timp dacă există - Pentru fișiere nesemnate sau cu o eroare de semnătură - o listă separată cu motivul - Verificarea versiunii pentru EXE/DLL prin FileVersionInfo și compararea cu regulile - SBOM: generați o listă de fișiere cu metadate (cale, dimensiune, hash, versiunea unde este cazul), împachetați în CycloneDX/SPDX JSON; o versiune simplificată este permisă fără analiză de dependență, dar cu schema corectă și identificatorii de componente la nivel de fișier/pachet 4) Ambalare și livrare - Construiți un program de instalare gata făcut (MSIX sau MSI/WiX sau Squirrel - alegerea dvs.) și o versiune portabilă - Jurnale de diagnosticare (fișier jurnal) și mesaje de eroare clare - Instrucțiuni scurte (README în rusă) despre cum să adăugați/modificați reguli și despre cum să rulați verificarea Restricții - Totul ar trebui să funcționeze offline, fără servicii cloud externe - Nu puteți solicita utilizatorului să instaleze dependențe grele (cu excepția standardului .NET Desktop Runtime, dacă este selectat .NET) - Pe un pachet de până la 3 GB și 50.000 de fișiere, verificarea ar trebui să dureze 7 minute pe un computer i7/16GB/SSD, progresul ar trebui să fie afișat - Fișierele temporare ar trebui să fie șterse automat chiar dacă există erori Criterii de acceptare măsurabile - Pe pachetele de testare furnizate, aplicația produce aceleași rezultate la rulări repetate, raportul JSON este valid și se potrivește cu schema convenită - Pentru 5 cazuri pre-întocmite (dosar semnat, nesemnat, semnătură cu certificat expirat fără marcaj temporal, semnătură cu marca temporală, dosar cu versiunea greșită), aplicația clasifică corect starea și reflectă motivul în raport - Modul de comparare a două pachete arată minimul: fișiere adăugate/șterse/modificate, modificări hash, modificări ale stării semnăturii, modificări ale versiunii - Instalatorul instalează și elimină aplicația fără gunoi, versiunea portabilă rulează fără instalare Ce va fi furnizat - Un set de teste ZIP/MSI (prin link/arhivă), tabel curent de reguli, listă de editori de încredere, exemple de rapoarte așteptate (sub orice formă) Rezultat așteptat Un program desktop gata făcut pentru Windows, cod sursă, configurații de reguli, instalator și asamblare portabilă, plus un set minim de teste automate pentru logica de verificare (cel puțin teste unitare pentru analizarea regulilor și clasificarea stărilor semnăturilor).