Delší dobu pracuji s produkty z dílny Microsoft, různých verzí Office, do nichž byla poměrně zdařile impementováno prostředí Visual Basic for Application. IDE je „obšlehnuto“ z Visual Basic 6, za pomoci několika doplnků třetích stran z něj vytvoří slušné vývojové prostředí. Kdo se někdy pohyboval ve Visual Studio 6, bude i zde „jako doma“.
Prostředí umožňuje vytvářet jednak makra, ulehčující rutinní činnost, nebo vytvářet All-In-One aplikace, kdy program Office běží pouze na pozadí jako RunTime. Tyto aplikace většinou již obsahují rozsáhlý kód, několik form a dalších souborů zdrojových kódů, které si autor chce ponechat veřejnosti nepřístupné jako svoje duševní vlastnictví. A obsahuje magický čudlík Zaznamenat makro, známe všichni, že?
Microsoft od doby uvolnění formátu .ZIP pro volné použití a jeho integrace do Windows ho používá jako „slučovač“ souborů popisující obsah dokumentů, tabulek, databáze a dalších. Protože při ukládání těchto supersouborů „všechnovjednom“ vzniká několik souborů, které jsou zkomprimovány do jednoho souboru právě ve formátu .ZIP a přejmenován. Pak se můžeme podivovat tomu, že v jednom souboru je uložena databáze, kód, ovládací prostředí, obrázky… A navíc při náhledu na obsah souboru je vše krásně „parsováno“, obsah je nerozpoznatelný a nečitelný. Prostě výborně navržený a vytvořený formát, nad jehož robustností ochrany musí každé srdce programátora ve VBA zaplesat. A všechno jde zabezpečit heslem, takže náš kód je v suchu, že?
Vše je krásné a sluncem zalité, dokud nezačnete tomuto superformátu nahlížet pod krovky. Pro začátek stačí přejmenovat koncovku souboru na výše uvedený formát .ZIP a… Zdání chráněného formátu mizí a nastává realita.
Houstone máme problém…
Při náhledu do souboru zjišťujeme, že obsahuje celou adresářovou strukturu s celou řadou souborů, jejichž obsah je již plně čitelný. Takže máme přístup k obsahu souboru, jak pro čtení, tak pro modifikaci. Změnou jednoho příznaku v jednom ze souborů odstraníme ochranu heslem a najednou je celý obsah souboru NAPROSTO nechráněn a k dispozici ke všem kalým i nekalým úmyslům. Tímto se celá platforma VBA, původně profesionální nástroj stává amatérsko-kutilským nástrojem, pro „takové to domácí žvýkání“.
Odporníci budou odporovat, že striktním nastavením přístupových práv ve Widows a Active Directory lze nastavit přístup k souborům tak, že je jejich modifikace znemožněna, bohužel se při načítání souborů Office provádí jejich rozbalení do temporary adresářů, které jsou přístupné a dá se provést jejich kopie. Obsah je nechráněn…
Na iternetu jsou lehce dostupné články typu: „Čtyři způsoby jak odstranit hesla z souborů Excel“, což působí jako vztyčený prostředníček Microsoftu programátorům ve VBA napříč celým MS Office.
Tímto diletanským přístupem Microsoft naprosto zdiskreditoval ochranu duševního vlastnictví ve svých vlastních produktech. Z tohoto důvodu nedošlo k většímu rozšíření tvorby maker, ani tvorby aplikací All-In-One, celý skvěle navržený koncept programování v aplikací MS Office byl zahozen a degradován na občasný klik na čudlík Zaznamenat makro. Škoda…
Zdroje:
- https://stackoverflow.com/questions/1026483/is-there-a-way-to-crack-the-password-on-an-excel-vba-project
- https://www.bitrecover.com/blog/break-vba-password-in-excel/
- https://stackoverflow.com/questions/272503/removing-the-password-from-a-vba-project
- https://passper.imyfone.com/excel/crack-excel-vba-password/
- https://stackoverflow.com/questions/37334365/password-cracker-of-protected-sheet-in-excel-2013-and-later-using-vba
Komentáře