[Home/Nieuws]  [Magazines]  [Meetings]  [Downloads]  [Redaktie]  [Geschiedenis]


Windows 95/98 Screensaver password decoder
door Xavier

Download ss95deco.zip

Files included

  • ss95deco.exe
  • ss95deco.txt (dit bestand)
  • ss95deco.cpp (de source code)

Wat doet ss95deco
ss95deco decodeert het windows 95/98 screen saver wachtwoord. Dit wachtwoord staat gecodeert opgeslagen in de registry.

Hoe roep ik het aan?
ss95deco : gebruikt c:\windows\user.dat als input.
ss95deco export.reg : gebruikt export.reg als input.
ss95deco h:\userXXX\user.dat : gebruikt h:\userXXX\user.dat als input.

Waarom nog een windows 95/98 screen saver decoder?
De bestaande screensaver decoders die ik gevonden had decodeerden niet alle character tussen de 31 en 127 goed. Verder decodeerden ze maar tot een maximale passwoord lengte van 14 characters. Een andere decoder had zelfs meerdere files nodig om de gecodeerde string uit de registry te halen.

Aangezien er een groot aantal mensen zijn die hun inlogwachtwoord hetzelfde hebben als hun screensaver wachtwoord kan deze tool handig zijn bij het achterhalen hiervan.

Hoe werkt het?
Windows 95/98 slaat het gecodeerde wachtwoord op in de registry:
\HKEY_CURRENT_USER\Control Panel\desktop\SCREENSAVE_DATA
Wachtwoorden die bestaan uit characters >31 en <127 worden gedecodeert, mocht het programma de character niet herkennen zet het er <?> voor in de plaats. De maximale password lengte die herkent wordt door dit programma is 18. Ook de stukjes registry door regedit geexporteerd worden ondersteund, dit bied dus de mogelijkheid om dit snel op te slaan en dan later de boel te decoderen.

Decoderen
De windows representeerd ieder character door twee characters in de gecodeerde string. Elk character heeft een vaste waarde op een bepaalde plek zo zal als het eerste character een 'a' is dit altijd door dezelfde twee characters in de string gerepresenteerd worden, onafhankelijk van de lengte van het wachtwoord en de volgende characters. Ik heb geen algoritme kunnen ontdekken representatie en de plaats van het character. Hierdoor werd ik genoodzaakt dit op te lossen met tabellen. In dit programma zitten dus 18 tabellen die de charcters tussen 31 en 127 representeren met steeds 2 characters. Dit is dus het grootste gedeelte van de code.

Gevonden bugs mbt de screensaver in OSR2
1 Wachtwoorden worden allemaal door windows in Uppercase gezet, hierdoor neemt het aantal mogelijke coderingen drastisch af.
2 Elk charachter in de wachtwoord string wordt gerepresenteerd door telkens 2 characters in de gecodeerde string. Met als laatste 2 characters '00' om de gecodeerde string af te sluiten. Dit heeft dus als nadeel dat de lengte van het wachtwoord rechtstreeks af te leiden is uit de gecodeerde string. 3 Als je een wachtwoord insteld langer dan 14 characters denkt windows dat je geen wachtwoord ingesteld hebt en zal dus het op een toets drukken in de screen saver niet om het wachtwoord vragen maar gewoon de screensaver afsluiten. (MAJOR BUG)
4 Verder zit er nog een buffer overflow in, als je een wachtwoord instelt dat langer is dan 19 character dan gaat windows op zijn gezicht. Je krijgt geen blauw scherm, maar gewoon een error melding. Helaas werkt daarna het geheel niet meer goed en ben je gedwongen windows opnieuw op te starten.

Ik mag hopen dat deze bugs er in windows 98 uit gehaald zijn.

De informatie in 't Klaphek dient slechts een educatief doel. Gebruik van deze informatie zou strafbaar kunnen zijn. De redaktie wijst iedere verantwoordelijkheid voor gebruik door lezers van de in 't Klaphek opgenomen informatie af. De mening van een auteur weerspiegelt niet noodzakelijkerwijs de mening van de redaktie of uitgever.