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.
|