Nadere kijk op gelekte broncode van Microsoft

De site Kuro5hin heeft de gelekte broncode van Windows 2000 op een vluchtige wijze onder de loep genomen. Hoewel niet met zekerheid te bepalen is of alle code daadwerkelijk door Microsoft geschreven is, wordt er niet verwacht dat derden met opzet zaken hebben toegevoegd om het bedrijf in verlegenheid te brengen. Met name in het commentaar zijn echter wel vele voorbeelden van een laag professionaliteitsgehalte te vinden. Regels als "the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST" ontsieren de broncode. In totaal werden de woorden 'fuck' en 'shit' tientallen keren gevonden, terwijl 'crap' zelfs honderden malen aanwezig is. Daarnaast wordt er soms nogal felle kritiek gegeven op de code van andere applicaties, waaronder die van Microsoft zelf: "The specific idiot in this case is Office95, which likes to free a random pointer when you start Word95 from a desktop shortcut". Op de code van Windows zelf wordt echter geen enkele keer commentaar geleverd.

Windows 2000 LogoDe bovengenoemde imperfecties aan het commentaar geven geen representatief beeld van de totale code. Modules zijn namelijk klein en procedures passen meestal op een scherm, wat samen met in de meeste gevallen gedetailleerd commentaar zorgt voor onderhoudbare broncode. Bovendien werd er bij een oppervlakkige zoektocht geen enkel bewijs gevonden van het gebruik van gestolen open-sourcecode; iets waar geruchten de ronde over deden. Ook wat de veiligheid betreft lijken er weinig problemen te zijn. Met eventuele buffer overflows wordt netjes rekening gehouden, waar dat voor problemen zou kunnen zorgen. Het gedeelte aan netwerkcode is daarnaast klein genoeg, zodat Microsoft snel zal kunnen onderzoeken welke eventuele problemen het uitlekken ervan zou kunnen opleveren. Dat de meeste bestanden gedateerd zijn op 25 juli 2000 zorgt er ook zeker voor dat - in overeenstemming met eerdere door analisten gedane uitspraken - Windows-gebruikers waarschijnlijk weinig te vrezen hebben.

Door Mark Timmer

16-02-2004 • 19:17

108

Submitter: fantom

Bron: Kuro5hin

Reacties (108)

108
103
68
28
4
0
Wijzig sortering
Het lijkt me heel sterk dat normale programmeurs (ik ben er ook eentje, en ik vind mezelf vrij normaal) dit soort termen met zo'n regelmaat gebruiken. Af en toe gebruik je best een "kwinkslag" in je commentaar, maar 100en keren crap en fuck... ik geloof het niet.
Honderden keren van 1 coder is misschien veel, maar je denkt toch niet dat er maar 1 persoon aan deze code werkt?

Als er 100 aan werken is dat 1x p.p., wat natuurlijk helemaal niet veel is...

En in de loop der jaren zijn het er natuurlijk veeeeeeeel meer dan 100 geweest ;)

-7
Een korte verzameling van commentaren die in de loop der tijd in broncode binnen ons bedrijf zijn geslopen:

- TODO-lijsten ter referentie. Die komen meestal van een van de freelancers, zodat hij de volgende keer weet waar hij was. Is geen lang leven beschoren, maar af en toe zie je nog wat oude aantekeningen terug.
- Filmcitaten. Er lopen bij ons een aantal filmfreaks rond. Voorbeeld: als er iets gebeurt, dat echt niet zou moeten gebeuren, dan krijgen we een "Inconceivable error". "Inconceivable!" was de favoriete uitdrukking van een van de slechteriken uit The Princess Bride. :)
- Verwijzingen naar het toenmalige nieuws. Een voorbeeld is de Tilburgse Imam die zei dat iemand zijn vrouw best mag slaan. In een bestand genaamd partner_bewerken.inc heeft hij een heuse vermelding gekregen.
- Vragen in de trant van welke *@^#*@ heeft dit nu weer verzonnen? En het antwoord erbij. :)

Hoewel ik het er mee eens ben, dat het niet altijd even profesioneel staat, is het natuurlijk wel zo dat de klant geen broncode leest en meestal niet eens weet hoe (h/z)ij er bij moet komen.
Het lijkt me heel sterk dat normale programmeurs (ik ben er ook eentje, en ik vind mezelf vrij normaal) dit soort termen met zo'n regelmaat gebruiken.
't Zou je nog verbazen hoeveel output je krijgt als je bijvoorbeeld egrep -ir fuck /usr/src/linux/* typt op een Linux-bak. 't Komt veel vaker voor dan je misschien zou denken ;)
hier de outptput, valt nog mee
Een greep uit de resultaten:

/usr/src/linux/arch/sparc/kernel/ptrace.c:/* Fuck me gently with a chainsaw... */

:D

/usr/src/linux/drivers/net/sunhme.c:/* Only Sun can take such nice parts and fuck up the programming interface

/usr/src/linux/net/core/netfilter.c: /* James M doesn't say fuck enough. */

Dus blijkbaar toch vrij normaal...
Deze vond ik wel leuk...
Wirzenius wrote this portably, Torvalds fucked it up :-)
Af en toe gebruik je best een "kwinkslag" in je commentaar, maar 100en keren crap en fuck... ik geloof het niet.
Waarom niet, kijk eens in de linux kernel 219 Mb aan uncompressed code:

eth0@birdofprey:/usr/src/linux$ egrep -r '(fuck|shit|damn|crap)' * | wc -l
289

289 lines! }>
Niet helemaal correct, je telt zo nl. ook nogal wat Matsushita's
Dat aantal komt meer omdat er realtek 8139 support in de kernel zit, das een fucking crap kaart ;)

Staat ook in de sourcecode als het goed is, hoe slecht realtek kaarten wel niet zijn omdat ze zo ontiegelijk kaal zijn (de driver mag eerst alles 32 bits aligned verzamelen voor het naar de kaart mag, wat nogal wat geheugen-kopieer-acties ten gevolge heeft)

Of de Sun Happymeal driver:
Only sun can take such beatiful hardware and fuck it up so badly.
Happymeal driver zit overigens stampvol met humor :P
Kijk voor de lol de sources van de 3c501 kaart in Linux maar eens na. De programmeur was wsl een standup comedian.
sinds wanneer programmeert Seinfeld? ;)
Nou, mijn collega heeft er ook een handje van om dit soort commentaar in zijn code te zetten, hoor. Ik kijk er niet echt van op. Dat het onprofessioneel staat is wat anders.
Onprofessioneel vind ik wel mee, we zijn tenslotte programmeurs. Maar als je even een stukje code aan wil passen terwijl de klant erbij zit is het een ander verhaal :) Ik hou het dus altijd maar netjes.
Mag dan wel onprofessioneel wezen, maar Microsoft hoefde de code toch eigenlijk nooit te laten zien..

Maar dan nog lijkt me toch raar dat elke programmeur geen moeite heeft met dat soort commentaar ?
Microsoft laat haar code (lijkt mij) wel vaak nalopen.

Mocht dit commentaar en zooi echt wezen dan heeft Microsoft dat echt wel verwijderd voordat ze stukjes code aan overheden moesten laten zien een tijdje terug..
Onprofessioneel is het het schrijven van crappy code, niet het schrijven van crap in commentaar
Idd... een studiegenoot schrijft ook altijd zijn programma's vol met de meest rare commentaren en namen voor variabelen. Maar zijn programma's werken altijd perfect. Alleen degenen die zijn opdrachten moesten nakijken waren er niet echt blij mee.
Daar kun je niets over zeggen op grond van het artikel, want daarin wordt niet de totale hoeveelheid code genoemd.
De bovengenoemde imperfecties aan het commentaar geven geen representatief beeld van de totale code.
Nu ik ken heel wat ontwikkelteams ook van deze bewuste broncode en het verbaast me eerlijk gezegd dat deze woorden in zo'n enorme broncode zo weinig voorkomen.
En hoe vaak heb jij 630Mb aan sourcecode geschreven? Procentueel valt het best mee hoor :)

En idd het is gewoon 'accepted misbehaviour' dat je je soms uitleeft in je commentaar, ik typte straks ook nog de volgende regel:

// TODO: Remove inline definition when fucked up compiler doesn't barf on it

Met dank aan een bug in VC7.1 :)

En voor zover men het wil vergelijken met 'verbal abuse' in Linux: ik denk dat veel devvers zelf even een search op fuck/shit/etc. doen voordat ze een source aan de wereld vrijgeven. Je hebt het hier nog steeds over een stuk closed source software dat nooit bedoeld was voor het grote publiek :Y)
De vraag is eerder wie er aan de code heeft gezeten voor het bij deze mensen kawm. Immers, Microsoft zelf heeft het niet gelekt,maar een andere organisatie.
Net zo onproffesioneel als het volgende commentaar wat ik al paar keer in code heb zien staan:

// Nu volgt een moeilijk stukje code

of

// Ik weet niet meer wat het doet, maar het is een noodzakelijk stukje code

:+
Whah... gewoon een Nederlandse versie van "/* Heavy wizardry follows */
:)
Ik hoop voor de programmeur in kwestie dat zijn code niet zo vol spelfouten zit als zijn commentaren.

Dit gezegd hebbende is het niet zo vreemd dergelijke commentaren toe te voegen; je moet toch een manier vinden je de week door te slaan :Y)
Het verbaast me niets en ik kan het me goed voorstellen. Als je met deadlines werkt, zoals elke normale programmeur, is het uitermate frustrerend dat jouw werk wordt opgehouden door de incompetentie van andere programmeurs die er een zooitje van hebben gemaakt. Als het schrijven van crap en fucking in commentaar de enige uitingen zijn van die frustraties vind ik het reuze meevallen.
Ik ken programmeurs die letterlijk "crap, foo en duck" gebruiken in al hun code.. niks vreemds dus ...
Ook wat de veiligheid betreft lijken er weinig problemen te zijn. Met eventuele buffer overflows wordt netjes rekening gehouden, waar dat voor problemen zou kunnen zorgen.
Op /. is overigens de eerste exploit gebaseerd op gelekte code te vinden, incl proof of concept, dus ik verwacht eigenlijk dat er binnekort wel meer exploits gevonden zullen worden.
Het lijkt erop dat:

1)
Microsoft sourcecode deelt met universiteiten en daar de commentaar regels, m.b.t. de code zelf eruit heeft gehaald. Ik hoop dat M$ nog met een detail verklaring komt.

2)
Dat dit een hoax is. Commmentaar met 10x f#@ck etc, geloof ik niet. Zelf zit ik al 20jaar de IT en dit soort commentaar kom ik niet tegen. Dat anderen dit wel doen, toont hun onproffesionalisme naar de klant.
Toevallig dat ik afgelopen maanden in contact ben gekomen met wat productiecode en heb helaas wel dit soort commentaar in code gezien. Erger zelfs nog: in debugoutput staat het soms ook :'( De kans dat iemand het ooit ziet is te verwaarlozen, maar het staat zo verschrikkelijk onprofessioneel.
Aan code waar ik nog aan het werken ben staat het ook altijd vol met fuck etc, en in de output regelmatig ook. Maakt in mijn opinie ook niet uit, omdat enkel een paar mensen die code/output gemachtigd zijn om dat te mogen bekijken.

Maar dit wordt er achteraf allemaal netjes afgehaald natuurlijk (normaal als een stuk code werkt zoals het moet, en als ik er niet meer naar hoef te kijken)
Is dat nu zo erg dat debug output als commentaar in de souce staat?! Gaat het uit einderlijk niet veel meer zij professioneel zijn dan dat ze professioneel lijken? Met andere woorden dat hun code goed is opgezet en dus stabiel is!
Anoniem: 42145 @mad16 februari 2004 21:29
In de Nintendo 64 'romz' zit btw ook hele leuke commentaren van de programmeurs (achter de programma code, gewoon als ascii). Als cartridge zijnde kun je deze normaal moeilijk lezen, maar met de rom images is dit opeens een stuk makkelijker.

Wat ik zelf het toppunt van onproffesionalisme vindt is nederlandse commentaar, en nog erger nederlandse identifiers. Als nu blijkt dat de (buitenlands sprekende) programmeurs van MS ook niet engelse commentaren in de code hebben verwerkt lijkt me dat wel echt een teken van slechtheid.
Sja NL commentaar vind ik niet erg. Waar ik werk kom ik dat elke dag tegen, maarja veel code is 15-20 jaar oud en toen dachten de eerste 2 programmeurs er echt niet bij na dat hun bedrijf over 20 jaar 1 van de grootste spelers op de wereldmarkt zal worden en er dus ook niet NL talige programmeurs mee aan het werk zullen moeten.
Tegenwoordig wordt dan ook alles in het Engels gedaan, commentaar, variabele namen, functie namen etc, maar al die oudere code is voor een groot deel NL en dat is jammer maar helaas, maar dat zegt helemaal niets over professionaliteit! Commentaar en code boeit geen van de gebruikers, wel dat de applicatie in het Nederlands, Engels, Duits en Frans werkt en dus netjes in de taal van de gebruiker meldt wat er aan de hand is of wat er moet gebeuren.
de klant leest niet altijd de code he, ik bedoel toen ik mijn jobje deed bij Ascom ben ik effe op de programmeer afdeling gewees. man die manne zette dat ook in hun code hoor.

hoewel ik moet toegeven dat er wat werd uitgehaald ook. maar je kunt moeilijk zeggen dat Ascom onprofessioneel is niet, integendeel die mannen waren heel begaan met hun werk.

trouwens als je weet dat de totale code 20 gieg is dan vind ik dat niet meer dan normaal dat er es gevloekt wordt
Ja heel onproffesioneel als je scheldwoorden in de source zet en dan de binaries aan de klant levert!! |:(
De code zal nooit veel fouten enzow bevatten. Deze code werd gebruikt om aan overheden ed te laten zien. Dan halen ze die mogelijke backdoor er echt wel uit. Ze zullen het vast ook nog wel een paar nagelopen zijn op fouten :) Ik denk dat er dus weinig opvallende dingen naar voren zullen komen.
Als dit een code was waarvan ze wouden verzekeren dat ie goed was om te laten zien aan derden dan zouden ze dat gescheld toch wel weggelaten hebben?
Tenzij ze daarmee de echtheid van de code willen aantonen zodat het laten zien van dergelijke "perfecte" code niet te verdacht zou zijn
Het omgekeerde kan ook hé
voor tzelfde geld steken ze deze commentaar erin om da te laten denken.
En zo blijven complottheorien in de wereld :P
In totaal werden de woorden 'fuck' en 'shit' tientallen keren gevonden, terwijl 'crap' zelfs honderden malen aanwezig is

Wat is dit voor stemmingmakerij? Wat maakt mij het uit wat voor comments ze in hun code gebruiken. Ik ben zelf ook wel eens boos op de werking van een bepaald iets, en dit zegt wel dat ze een hecht programmeursteam hadden. Commentaar op de code zelf, dat is veel interessanter.
moet je voor de grap eens in de linux kernel naar dat f woord zoeken. Kom je wel meer dan tientalle keren tegen.
Wat wil je ook met SCO :+
Ik denk dat dit vaak gebeurd hoor net zoals bouwvakkers met elkaar praten alleen daar hoort iedereen het van. Ik heb zelf bijvoorbeeld bij een computerzaak gewerkt en wanneer de klanten het niet konden horen riep het personeel ook de meest bizarre dingen naar elkaar, SBS6 late night is er niets bij.
ben benieuwd of er nu ook meer duidelijkheid komt over het NTFS-filesysteem en de eigenaardigheden van het SMB-netwerkprotocol.
Al denk ik dat het beter is wanneer kernel- en samba developers niet naar deze code kijken, want die zullen het eerst ervan verdacht worden code gejat te hebben.
het SMB protocol is uitvoerig beschreven in RFC's dus dat kun je zelf ook nalezen.

En mocht er NTFS-code instaan, dan zou ik daar als opensource-gemeenschap zeker 's uitgebreid naar kijken. (schrijven naar NTFS is nog immer expirimenteel)

en aan GUI-code heb je niks. (dit zal vast wel de bulk van de gelekte code zijn)
Tjee, er staan een paar honderd scheldwoorden in 600 MB code. Ik ben niet verbaasd.

Troutman's Postulate
Profanity is the one language understood by all programmers.

bron
Anoniem: 106179 16 februari 2004 21:31
Nou kan me er wel wat bij voorstellen, hij programeert tenslotte met een windows bak. Het lijkt erop dat ie een opstart probleem probeert op te sporen! Hoe reageer jij dan als je een log schrijft?

http://mjt.nysv.org/w2k_greps/
Anoniem: 106241 17 februari 2004 14:16
Microsoft gaat er wel flink tegenaan. Dit mailtje kreeg ik in mijn mailbox vandaag:

Geachte heer Sjefke66,

Heden ontvingen wij een verzoek tot directe afsluiting van uw adsl account
uit hoofde van J.K. Weston, handelend namens de firma Microsoft Corporation.

J.K. Weston zou geconstateerd hebben dat via uw adsl aansluiting met IP
adres "ipadres" auteursrechtelijk beschermd materiaal zonder toestemming
van de rechthebbenden wordt gedistribueerd, waaronder de Microsoft's source code
for Windows 2000, and/or Windows NT4,

Ik wil graag opmerken dat -conform onze algemene voorwaarden- illegale
activiteiten op ons netwerk nadrukkelijk verboden zijn, hieronder valt ook
het zonder toestemming beschikbaar stellen van auteursrechtelijk beschermd
materiaal. "provider" distantieert zich nadrukkelijk van dit soort
activiteiten en aanvaardt geen aansprakelijkheid in deze.

Ik verzoek u derhalve per direct alle illegale activiteiten op ons netwerk
te staken en mij dit zo snel mogelijk per email te bevestigen (we laten het
in dat geval bij een waarschuwing).

Bij herhaling van klachten over uw internet gebruik wordt uw account voor
onbepaalde tijd geschorst, waarbij de verplichting tot betaling gehandhaafd
blijft. Ga dus verstandig om met uw internet aansluiting.
Ha! Geen wonder dat ze closed source propageren! Ik zou me ook doodschamen als mijn medewerkers zulke code en commentaar zouden afleveren :)
ga je medewerkers maar controleren dan.

een tipje van ons database sluiertje:
'Dit heeft jve gemaakt. gecontrolleerd, werkent gemaakt. RWA.
'het werkte tot jij tiepfouten maakte in je tabeldefinities, en controle schrijf je anders. JVE

'mutatie drie-en-twintig in de reparatiestroom binnengarantie. als die luizenkop hier tegenover me nou eens besliste wat hij wil hebben? HSA
'dat staat niet profi, zo commentaar tikken. jve
'hij heeft toch luizen, of niet soms? rwa
'ja maar we hebben zes regels commentaar voor één regel code. dat is niet zo netjes. jve
'als jullie nou eens een chatbox gingen programmeren ofzo? geen wonder dat die applicatie zo groot word! rwaan het werk jullie.

dit soort onzin vind je best wel eens terug, en niemand hier zalklagen dat wij onprofessioneel bezig zijn. in tegendeel.
dit soort onzin vind je best wel eens terug, en niemand hier zalklagen dat wij onprofessioneel bezig zijn. in tegendeel.
Ok, ik hap, maar j*zus wat een kleuterklas! Vermeld ff de naam van die organisatie, die gaat van de lijst ...

Op dit item kan niet meer gereageerd worden.