25-05-2016, 19:32 door Anoniem (Harry): Ik ben erg benieuwd naar jouw uitleg hoe je dat wijzigt naar bijv. kladblok (notepad.exe) zodat er geen code wordt gestart maar de inhoud wordt getoond.
Eerder schreef ik hierover in [1] en noemde toen ook dat ik de oplossing in [2] nogal radicaal vind (mogelijk maak je daarmee ook Windows functionaliteit onbereikbaar).
Hoewel je deze wijizging veel eenvoudiger (zonder het register te bewerken) kunt uitvoeren
voor jouw eigen account, vind ik het veiliger om dit meteen voor alle gebruikers te doen. Overigens kunnen individuele gebruikers dit dan wel weer wijzigen - maar alleen voor hun eigen account.
Nb. schrik niet van de lengte van deze bijdrage. Als je hiermee aan de slag gaat, zul je zien dat het allemaal best logisch is en niet veel tijd hoeft te kosten. Ik heb het geschreven voor mensen die het register nog niet kennen, maar wel weten hoe ze een programma, waar
geen snelkoppeling van voorhanden is, moeten starten. De enigszins ervaren gebruiker dus.
TESTFILESZelf vind ik het handig om te testen hoe het systeem reageert
voordat en
nadat ik wijzigingen heb aangebracht. Zelf heb ik de volgende testfiles gebruikt:
veilig.jsWScript.Echo("Hello World!");
veilig.wsf<?xml version="1.0"?><job><script language="JScript"><![CDATA[
WScript.Echo("Hello World!");
]]></script></job>
Als je die op jouw eigen systeem wilt opslaan:
1) start kladblok (notepad)
2) Selecteer de tekst in 1 van de bovenstaande grijze vlakken en kopieer deze naar klembord (clipboard)
3) Plak de tekst in kladblok (notepad)
4) Sla het bestand op in een map naar keuze onder de gegeven naam
Als je (op een standaard Windows PC) dubbelklikt op 1 van beide bestanden, zal een dialoogbox verschijnen met alleen een OK knop onderaan, en boven die knop de tekst
Hello World!.
REGISTEROmdat we wijzigingen in het register (registry) gaan maken, eerst beknopte uitleg daarover. Na het starten van regedit.exe zie je een raam (window) met 2 ruiten (panes), links en rechts, goed vergelijkbaar met verkenner.
De linker ruit bevat een hiërarchische structuur (springt steeds verder in) die linksbovenaan begint met "Computer" en daaronder een stel
hyves:
- HKEY_CLASSES_ROOT (in de literatuur wordt deze vaak ingekort naar HKCR)
- HKEY_CURRENT_USER (in de literatuur wordt deze vaak ingekort naar HKCU)
- HKEY_LOCAL_MACHINE (in de literatuur wordt deze vaak ingekort naar HKLM)
- HKEY_USERS
- HKEY_CURRENT_CONFIG
Onder de hyves vind je
sleutels (
keys) die op hun beurt
sub-sleutels (
subkeys) kunnen bevatten.
Met aan de linkerkant een geselecteerde sleutel of subsleutel zie je rechts 0 of meer
waardenamen (
value names), een
waardetype en
waardedata (
value data)
Dit kun je min of meer vergelijken met resp. een bestandsnaam, een bestandsextensie (type) en de inhoud, waarbij die inhoud vaak maar "1 ding" is. Nb. dit zit systeem werkt dus anders dan simpele key/value combinaties.
BACK-UPPENVoordat je systeemwijzigingen doorvoert is het zeer verstandig om een volledige back-up te maken. Hoewel ik niemand ken die dit doet bij relatief eenvoudige registerwijzigingen, ben je in elk geval gewaarschuwd.
Dringend advies: maak in elk geval back-ups van de registersleutels waaronder je wijzigingen doorvoert, dit kan door zo'n registersleutel te exporteren naar een bestand op je schijf.
Als je met een gewoon gebruikeraccount permissies hebt om een registersleutel met alles daaronder te kunnen lezen, dan heb je, voor het exporteren daarvan,
geen admin rechten nodig (tricky kan zijn dat afwijkende permissies op een subkey ervoor kunnen zorgen dat je aanvullende privileges nodig hebt om die subkey überhaupt te kunnen zien, waardoor je mogelijkerwijs
niet weet of je alles ziet en dus exporteert). Overigens zijn er ook registersleutels die je, zelfs met admin rechten, niet kunt openen. Dit probleem speelt nu niet, omdat onder de registersleutels die we hier gaan wijzigen, alles gelezen kan worden door alle gebruikers.
Belangrijk: een bestand, gemaakt door een sleutel te epxorteren, kun je eenvoudig weer importeren waarmee je (letterlijk) wijzigingen ongedaan maakt, maar
niet eventuele
toevoegingen. Aangezien we hier alleen gaan wijzigen, speelt dat geen rol.
STARTEN VAN REGEDITVoor het exporteren van de hier bedoelde registersleutels heb je geen adminrechten, een betere naam daarvoor vind ik admin
privileges, nodig. Het is verstandig om het beschikken over adminprivileges tot een minimum te beperken, om zo onbedoelde wijzigingen te voorkomen.
Helaas snapt niet iedereen bij Microsoft dit, want als je regedit met een admin account onder UAC (dus met verlaagde privileges) start, worden die privileges
al tijdens het starten van regedit verhoogd. Als de "UAC slider" (schuif) op de bovenste stand staat, leidt dit tot een waarschuwing; anders niet; 2x stom.
REGISTERSLEUTELS EXPORTERENIk beschrijf hieronder wijzigingen aan 2 registersleutels, ik stel voor dat je ze allebei exporteert. Zoals gezegd kan dit met een gewoon gebruikeraccount (je hebt geen adminrechten nodig).
1) Start regedit.exe
2) Zorg dat links HKEY_CLASSES_ROOT geopend is (subkeys zichtbaar zijn) en
links iets geselecteerd is (het rechterdeel van het venster moet inactief zijn)
3) Tik de letters: jsf
4) Als het goed is, is nu links
Computer\HKEY_CLASSES_ROOT\JSFile geselecteerd
Nb. dit "pad" zie je linksonderaan in regedit. In de literatuur wordt het begin,
Computer\, vaak weggelaten, en wordt HKEY_CLASSES_ROOT vaak afgekort tot HKCR, waarmee de huidige locatie wordt:
HKCR\JSFile. Netter vind ik het persoonlijk om achter zowel regedit keys als filesystem mapnamen een \ te schrijven ter onderscheid met waardes en bestanden; immers C:\ eindigt
ook met \. Wat mij beteft hoort deze locatie dus te worden beschreven met
HKCR\JSFile\.
5) Klik met de rechtermuistoets op
JSFFile, kies Exporteren (Export), en sla het bestand op. Advies: sla het op met de naam 20160525_1138_HKCR_JSFFile.reg (dus beginnend met de actuele datum en tijd als JaarMaandDag_UrenMinuten).
6) Tik de letters: wsf
7) Als het goed is, is nu links
HKCR\WSFFile\ geselecteerd
8) Klik met de rechtermuistoets op
WSFFile, kies Exporteren (Export), en sla het bestand op. Advies: sla het op met de naam 20160525_1140_HKCR_WSFFile.reg.
Aanvulling 04-06-2016, 08:52: hierboven, bij 8), stond abusievelijk "JSFFile", dit moet natuurlijk "WSFFile" zijn en heb ik hierboven gecorrigeerd. Mijn excuses voor de verwarring!
REGISTER WIJZIGEN1) Log in met een admin account (als je dat hierboven al deed kun je deze stap overslaan)
2) Start regedit.exe (als die al draaide kun je deze stap overslaan)
3) Zorg dat links HKEY_CLASSES_ROOT geopend is (subkeys zichtbaar zijn) en links iets geselecteerd is (het rechterdeel van het venster moet inactief zijn)
4) Tik de letters: jsf
5) Als het goed is, is nu links
HKCR\JSFile\ geselecteerd
6) Scroll wat en open
alle subkeys (door op de [+] te drukken)
7) Selecteer
HKCR\JSFile\Shell\Open\Command\, dubbelklikrechts de waardenaam
(Default) en wijzig de oude tekst:
C:\Windows\System32\WScript.exe "%1" %*
in:
C:\Windows\System32\Notepad.exe %1
LET OP: als Windows in een andere map en/of op een andere drive is geïnstalleerd, zal de oude tekst een ander pad tonen, dat je natuurlijk in de nieuwe waardedata moet overnemen! En dat geldt ook voor alle wijzigingen hieronder.
8) Selecteer
HKCR\JSFile\Shell\Open2\Command\, dubbelklikrechts de waardenaam
(Default) en wijzig de oude tekst:
C:\Windows\System32\CScript.exe "%1" %*
in:
C:\Windows\System32\Notepad.exe %1
9) Hiermee verangen we het getoonde icoon bij .js files door een kladblok icoon.
Selecteer
HKCR\JSFile\DefaultIcon\, dubbelklikrechts de waardenaam
(Default) en wijzig de oude tekst:
C:\Windows\System32\WScript.exe,3
in:
C:\Windows\System32\Notepad.exe,-2
Je kunt desgewenst ook naar een icoon uit een ander bestand wijzen, zoals "C:\Windows\system32\imageres.dll,-102" dat een alternatief icoon voor tekstfiles laat zien. Welke iconen daar allemaal in staan kun je zien door een snelkoppeling op je bureaublad aan te maken naar wat je maar wilt, dan van die snelkoppeling de eigenschappen te wijzigen, en dan te kiezen voor "Change Icon" (of de Nederlandse variant van die tekst).
10) Herlaal de stappen 7, 8 en 9 voor
HKCR\WSFFile\.
Je kunt de wijzigingen ongedaan maken door, als admin, op de eerder opgeslagen (dat heb je wel gedaan hè?) .reg files te dubbel-klikken; die zullen dan worden ingelezen in het register, daarmee bovenstaande wijzigingen overschrijvend. Overigens kun je die .reg bestanden gewoon openen in kladblok, het zijn tekstbestanden.
Succes!
[1]
https://www.security.nl/posting/468201/Microsoft+waarschuwt+voor+e-mails+met+JavaScript-bijlagen#posting468292[2]
https://labsblog.f-secure.com/2016/04/19/how-to-disable-windows-script-host/