Piotr Jaczewski

Google Code Search ujawnia całą prawdę o Microsofcie

Wpis wysłany 12 października 2006 do kategorii internet, Varia

Kilka dni temu Google uruchomiło serwis Google Code Search. Usługa, przeznaczona dla programistów, umożliwia przeszukiwanie kodów źródłowych programów, których fragmenty zostały odnalezione w Sieci przez crawlery Google. W zamierzeniu wyszukiwarka miała wspomagać środowisko open-source, czyli programów, których kod źródłowy jest publicznie dostępny i może być dowolnie modyfikowany. Szybko jednak odkryto, że nową wyszukiwarkę można wykorzystać także do mniej zacnych celów. Można więc masowo poszukiwać znanych luk bezpieczeństwa, można także natknąć się na fragmenty programów, które nigdy nie powinny, wedle zamierzeń twórców, zostać upublicznione.

Wsród ujawnionych w ten sposób zasobów znaleziony został kod systemu operacyjnego Microsoft DOS 6.0, na bazie którego powstały między innymi systemy Windows 95 oraz Windows 98. Okazuje się, że jego twórcy w dość radosny sposób podeszli do pracy. Świadczą o tym chociażby niektóre komentarze w kodzie (czyli fragmenty pomijane przez kompilator, służące jedynie programistom). Oto ciekawsze fragmenty kodu MS DOS 6.0, znalezione przez użytkowników serwisu digg:

dev/smartdrv/rtywrt.asm:

; Shit! Fatal error on write-behind! Ask user what to do with
; sleazy popup.

handle_fatal_write_error:
mov al,wrt_unmapped_unit ; get drive code
call warning_pop_up

***

FDisk.c
/* P.S. – To whoever winds up maintaining this, I will */
/* apoligize in advance. I had just learned ‘C’ when */
/* writing this, so out of ignorance of the finer points*/
/* of the langauge I did a lot of things by brute force.*/
/* Hope this doesn’t mess you up too much – MT 5/20/86 */

***

; fuckin’ sixteen-bit machine ought
; to be able to handle a SIXTEEN-BIT
; DISPLACEMENT!!

; I have to use DOS call int 21h/5f02h because DOS call int 21h/4409h
; is not reliable under DOS versions 4.00 and 4.01. (IBM fuck-up).

; BIOS is fucking with us – give up

; Is this a Set PSP call (50h) ?
; Yes, jmp directly to function
else
; fucking jump out of range by *two* bytes!

* The path can be in about a million fucked up forms depending on the level of stupidity in the user.

; Enable interrupts at the start of
; the dispatch code. Otherwise interrupts
; remain disabled through a whole
; shitload of code which is not good.

; Now we’ve got to copy all of that shit into the cache

; Shit! read error. Better invalidate block & bomb!

; Shit! Fatal error on write-behind! Ask user what to do with
; sleazy popup.

; End of WIN386 2.xx compatibility bullshit

***

* Function will add the szSetupPath to the users path statement in the
* autoexec.bat file. The szSetupPath will be the first location in the
* path statement. The path can be in about a million fucked up forms
* depending on the level of stupidity in the user. Here are a few to
* think about. DOS will accept any of these.
*
* PATH=C:foo;C:foobar;…
* SET PATH=C:foo;C:foobar;…
* PATH C:foo;C:foobar;…
* PATH =C:foo;C:foobar;…
* PATH= C:foo;C:foobar;…
* PATH = C:foo;C:foobar;…

Jeżeli podobnie wyglądało tworzenie kolejnych systemów operacyjnych, wiadomo już, skąd tyle narzekań na popularne Windowsy… ;)


15 odpowiedzi do wpisu

  • m 11..

    to sa wszystko SKRÓTY MYŚLOWE

  • marek

    taaaak, szczegolnie ten fragment:
    FDisk.c
    /* P.S. – To whoever winds up maintaining this, I will */
    /* apoligize in advance. I had just learned ‘C’ when */
    /* writing this, so out of ignorance of the finer points*/
    /* of the langauge I did a lot of things by brute force.*/
    /* Hope this doesn’t mess you up too much – MT 5/20/86 */

  • zed

    teraz się nie mów „skrót myślowy”, tylko „semantyczne nadużycie’

  • a322

    Hehe widac ze programowanie sprawialo duzo radosci tworcom, co przeciez jest najwazniejsze ;-)

  • gekon

    To przejrzyjcie sobie kod źródłowy jądra Linuksa. Podobnych kwiatków i michałków tam wiele.

  • lisiujaw

    To chyba mała przesada ze strony microsoftu :D

  • tabris

    widac ze zadne k**** z was nigdy nie bylo programista :P

  • Piotr

    @tabris:

    Ależ, wręcz przeciwnie. Tylko jakoś nigdy nie przyszło mi wyładowywać swoich frustracji poprzez umieszczanie tego typu komentarzy w kodzie źródłowym. Wsród innych programistów, z którymi pracowałem, również takiego zwyczaju nie było. Jak dla mnie, nie świadczy to po prostu o zbyt dużym profesjonalizmie ;)

  • tabris

    @Piotr:

    Zartowalem oczywiscie XD
    Mimo wszystko wiele razy spotkalem z delikatniejszymi przeklenstwami w kodzie, niezaleznie od tego jak profesjonalny byl to projekt. :P
    Mysle ze to nie kwestia frustracji a raczej specyficznego poczucia humoru.

  • ewu

    i znowu nuda–Wirus–na blogu sie pisze o czyms co wszyscy rozumieja a nie tylko ludzie z przedzialkami i w okularach :D

  • koval_ski

    Ja kiedyś pisałem spory projekt na laborki, męczyłem go całą noc bo od niego zależało moje zaliczenie. Po 3:00 każde niepowodzenie lądowało w postaci „kur…” „ja pier… co za chu…” a co niektóre nawet do printf(). A o 7:00 wysłałem go w takiej postaci do prof. :-/ Na szczęście miał poczucie humoru…

  • bear007

    Ekstra, po prostu mnie to ubawilo. Naprawde niezle komentuja. Po prostu taki kod sie latwiej czyta, latwiej niz kod z :normalnmi” komentarzami i jeszce latwiej niz kod bez komentarzy – zapominaja o tym czasem :profesjonalisci:

  • gŻanka

    a mógłby ktos przetłumaczyc bo nie rozumiem :D:D:

  • szoovi

    Haha dobre ;) a tak bajdełej to czy przypadkiem MS DOS nie wykluł się ze strzępów CPMa? … i co do cholery stało się z DR DOSem?

1 Trackback / Pingback dla tego wpisu

Zostaw odpowiedź

Szukasz czegoś?

Możesz skorzystać z formularza by przeszukać moją stronę: