Programowanie niskopoziomowe. Plan. 2008-03-02 13:01
_-¯ - W nogi! - wrzasnąłem, gdy pierwsze Bad Sectory pojawiły się w progu, i rzuciłem się do ucieczki. Biegłem przed siebie ile sił. Za sobą słyszałem przyspieszony oddech Kontrolera i kilku przerwań. Chyba wszystkim się udało uciec...
_-¯ Wrzask. Głośniejszy wrzask. I cichnący jęk. _-¯ Chyba nie wszystkim udało się uciec - poprawiłem się w myślach. Zaryzykowałem szybki rzut okiem za siebie - biegliśmy szybciej od Bad Sectorów. To była ta lepsza część obrazu sytuacji. Gorszą było zaś, że Bad Sectory wciąż podążały za nami, a konkretnie - za mną. Moi kompani mogliby tak biegać obwodami póki był prąd. Ja jednak zaczynałem się męczyć. Zwolniłem trochę tempo, by zrównać się z Kontrolerem. - Musimy znaleźć jakieś pomieszczenie, w którym moglibyśmy się schować. Nie dam rady długo tak biegać. - A to czemu? - zdziwił się. No tak, kłamstwo ma krótkie nogi. Pewnie już wszyscy dookoła myśleli, że jestem Hypervisorem. Hypervisorzy są procesami, jak wszyscy. Z nieco wyższymi uprawnieniami, to fakt, ale jednak tylko procesami. A procesy się nie męczą. - Sockety mnie obcierają w pięty. Skinął głową. Przez chwilę biegliśmy w milczeniu, jednak narastający ból w piersiach nie pozwolił mi odłożyć na później kwestii pozyskania dla mnie kryjówki. - Mu-szę od-po-cząć - wysapałem w rytm kroków. - Teraz nie możemy się zatrzymać. Niedługo dobiegniemy do banków pamięci - będziemy mogli ukryć się w schowku na szczotki. Ale teraz - proszę biec! Nic nie odpowiedziałem. Przed oczami zaczynały latać mi już czarne i czerwone mroczki. Każda noga była wielkim, bolącym kawałem betonu, który - wiedziałem - z kolejnym krokiem zrobi się jeszcze cięższy i jeszcze bardziej bolący. Łapałem powietrze spazmatycznymi haustami, ale biegłem - choć coraz wolniej. Pozostali, widząc moje słabnące tempo wyminęli mnie i teraz byłem dobre kilkanaście kroków za najwolniejszym przerwaniem. - Już niedaleko - dobiegł mnie z przodu głos Kontrolera. To dodało mi trochę sił, gdyż w myślach zacząłem wybierać już między tytułami które ukazałyby się w jutrzejszej prasie, gdybym nie dobiegł. ,,Znany chakier znaleziony martwy w serwerze'' (za suchy), ,,Tragiczne skutki komputerowego nidebalstwa'' (ten wcale mi się nie podobał), ,,Charyzjusz Chakier pożarty przez Bad Sectory'' (chyba zbyt sensacyjny)... - Tutaj! - jakaś ręka chwyciła mnie za ramię i wciągnęła w ciemny otwór. No tak - byłem już tak otępiały, że nawet nie uważałem gdzie biegnę. Pobiegłbym dalej, minąwszy kryjówkę, i najdalej za kilkaset cykli procesora byłbym już ex-chakierem. I chyba daliby ten ostatni tytuł... _-¯ Osunąłem się na podłogę, dysząc głośno. - Ciiiiichoooo! - Kontroler wysyczał w moim kierunku ostrzeżenie, jednocześnie wymownym gestem kładąc palec na ustach. Pomimo mojego osłabienia zauważyłem że na końcu użył wykrzyknika, co - skonstatowałem - było dosyć zabawnym zestawieniem z poleceniem, by być cicho, w szczególności gdy ta cisza miała dotyczyć wszystkich. Nie czas był jednak na takie jałowe rozważania. Wstałem z trudem, po czym osunąłem się na podłogę, dysząc cicho. Kontroler skinął głową z uznaniem. Przez chwilę nasłuchiwał, po czym odetchnął z wyraźną ulgą. - Wygląda na to, że chwilowo mamy je z z głowy, a to daje nam chwilę czasu na ustalenie paru szczegółów. Po coś Pan odmaskowywał to przerwanie? - wyciągnął w moją stronę palec w oskarżycielskim geście. - Wydawało mi się, że chce mi coś powiedzieć. - Bzdura! Przecież przerwania nie mówią! - Nie? - uniosłem w górę obie brwi w najszczerszym zdziwieniu. - Prawda. Nie mówimy - odezwało się spod ściany jakieś przerwanie. - Nic a nic? Ani trochę? - Nooo... Przynajmniej ja nic mówię. Nie umiem. Nie wiem jak inni. - Ja też nie umiem... Ja też. I ja. Ja chciałem raz spróbować, ale mi nie wyszło - dobiegły mnie przytaknięcia całej reszty. - Tak więc ustaliliśmy, że przerwania nie mówią - i wszyscy o tym wiedzą. A Pan? Kim Pan jest? Nie jest Pan zwykłym procesem, bo procesy się nie męczą, a z Pana pot aż kapie! - Mam drugi wątek, który bardzo mnie obciąża - spróbowałem kolejnego kłamstwa, choć wiedziałem że ta maskarada nie ma już sensu. Wstałem. - Jestem Charyzjusz Chakier. Wśród zebranych rozszedł się szmer. - TEN Charyzjusz Chakier? - upewnił się kontroler. - ONE Charyzjusz Chakier - poprawiłem. - To... To dla nas zaszczyt... Panie Charyzjuszu... Nie wiedzieliśmy... No właśnie. Dlatego wolałem pracę inco-blanco. Gdy zachowywałem in flagranti - traktowano mnie normalnie. Lecz gdy wychodziło na jaw me prawdziwe alter ego - zaczynały się dukania, ukłony, ą, ę i tak dalej. - Panowie, zapomnijmy na chwilę jak znaczną osobą jestem i pomyślmy jak się stąd wyplątać - zaproponowałem - Sytuacja jest następująca. Jesteśmy w? - W banku pamięci numer osiem - podpowiedział ktoś usłużnie. - W banku pamięci numer osiem. Na karku siedzi nam stado Bad Sectorów. Musimy: a. Wydostać się stąd i powtórnie zamaskować przerwanie od czwartego dysku drugiej macierzy RAID1. b. Zneutralizować Bad Sectory. c. Przeżyć. Są jakieś pytania, wnioski? W górę uniosło się nieśmiało kilka rąk. - Proszę - Pan. - wybrałem pierwszą z brzegu. - Ja proponuję podzielić nasz zespół na kilka grup operacyjnych, tak żeby każda zajęła się swoim punktem planu. Zgłaszam się od razu na ochotnika do wykonania punktu ,,c''. - Ktoś jeszcze? Pan? - Proponowałbym rozbić punkt ,,a'' na dwa podpunkty, gdyż w chwili obecnej zawarte są tam de-facto dwie czynności. Primo: wydostać się. Secundo: powtórnie zamaskować przerwanie. Wydostawanie się można by ująć w podpunkcie ,,a.a'', zaś maskowanie w ,,a.b''. Daje to nam... - przestałem słuchać. Nachyliłem się dyskretnie w stronę kontrolera przerwań. - Oni tak zawsze? - szepnąłem. - Tak. Całe szczęście, że nie mówią. Inaczej cholery by człowiek dostał od tego bezsensownego paplania. - Jasne. Czyli musimy to załatwić we dwóch. Uniosłem w górę ręce i klasnąłem, by skupić na sobie uwagę. - Panowie Przerwania - przedyskutujcie podniesione problemy we własnym gronie, a ja tymczasem naradzę się z Panem Kontrolerem. Dobrze? - zrobiłem przepisową pauzę i dokończyłem - No to fajnie. Odeszliśmy nieco w kąt, by nie przeszkadzał na hałas zażartej dyskusji. - Da Pan radę zamaskować powtórnie tamto przerwanie? - spytałem. - Dam. Ale nie wiem jak przedostanę się przez Bad Sectory. Można je jakoś zlikwidować? I w ogóle skąd one się tam wzięły w takiej ilości? Pomyślałem chwilę. - Kwestia pochodzenia Bad Sectorów również dla mnie jest zastanawiająca. Wygląda mi to na jakieś celowe działanie. A co do ich likwidacji - można się ich pozbyć. Bad Secotry anihilują w zetknięciu z danymi - wynika to bezpośrednio z samej ich natury. Bad Sectory biorę na siebie. - Czyli? - Czyli Pan wykonuje punkt ,,a'', ja wykonuję punkt ,,b'' i być może razem uda nam się wykonać ,,c''. Zrobimy tak... _-¯ Nie zważając na harmider od strony Przerwań, gdzie podczas omawiania sposobu przeprowadzenia głosowania wstępnego w celu zatwierdzenia zarysu szkicu do podstaw Projektu Wyjścia z Sytuacji doszło właśnie do rękoczynów - cierpliwie tłumaczyłem szczegóły operacji. - ... i będzie po nich, a nowe nie przylecą bo przerwanie będzie zamaskowane. - zakończyłem. - To doskonały plan. Naprawdę, jest Pan pierwszorzędnym chakierem. - Wiem - przyznałem skromnie - A teraz - do roboty!
Tagi:
chakierowanie, chakier, programowanie, plan, niskopoziomowe
Kategoria: Chack
Komentarze (17)
Programowanie niskopoziomowe. Jeszcze niżej. 2008-02-27 23:31
_-¯ Ruszyłem po śladach, jakie zostawił Martwy Kod. Nie było to trudne, bo niczym olbrzymi ślimak znaczył drogę swego przejścia warstwą cuchnącego śluzu. Wziąłem odrobinę na palec i polizałem - tak, jak się spodziewałem były to pozostałości po Borland C w wersji chyba 3.1, zmieszane z Turbo Assemblerem. Dało się wyczuć niewyraźny posmak kolorowanej składni z czasów, gdy była jeszcze fanaberią. Martwy Kod był nie tylko martwy, ale i stary. Właściwie, był tak stary że mógłby umrzeć ze starości. A może właśnie dlatego był martwy?
_-¯ Te filozoficzne rozważania przerwała mi ciężka klapa w podłodze, przy której urywał się ślad. A właściwie - pod którą wpełzał. Właz na poziom -1 wyglądał na dawno nie używany, jeżeli nie liczyć wydarzeń ostatnich kilku minut. Oddzielał przestrzeń jądra systemu trójki od przestrzeni użytkownika. Ująłem w dłoń pokrętło rygla i szarpnąłem do siebie - ku mojemu zdziwieniu właz nie ustąpił. Nie podejrzewałem Martwego Kodu by dbał o to by zamykać za sobą drzwi - a więc był ktoś jeszcze... Chwilę analizowałem tę myśl, po czym szybkim ruchem odblokowałem zamek i odskoczyłem po ścianę. _-¯ Nic się nie stało. _-¯ Odczekałem kilka chwil, i trzymając wzniesiony nad głową zdobyczny template podszedłem do włazu. Zacisnąłem lewą rękę na uchwycie i znów szarpnąłem. Łoskot upadającej żeliwnej klapy rozległ się donośnym echem. W kilku miejscach z kostropatych szaroburych nitów odskoczyła skorupa rdzy... I to było wszystko. _-¯ Zajrzałem ostrożnie w ciemny otwór, lecz jedyne co dostrzegłem to słabo oświetloną, biegnącą w dół drabinkę. Zadając sobie pytanie, po co to do cholery robię, spuściłem nogi w dół i zacząłem ostrożnie schodzić. _-¯ Większości użytkowników wydaje się, że wnętrza systemów operacyjnych to prawdziwe cuda. State-of-the-art inżynierii programowania. Kod, który jest doskonale przemyślany i zoptymalizowany, który w wyglądzie przypomina zaawansowane laboratorium skrzyżowane z nowoczesnym szpitalem i wysokiej klasy hotelem. Nic bardziej błędnego. To, co zobaczylibyście, gdybyście się odważyli zajrzeć na najniższe poziomy Waszych komputerów bardziej przypomina skrzyżowanie meliny z pokojem w akademiku po imprezie. Podstawowe funkcje zarządzania pamięcią czy obsługi przerwań wyglądają jakby były tworzone nawet nie pod wpływem alkoholu (bo wtedy czasami może wyjść coś ciekawego), ale na drańskim kacu. Błędy w ich działaniu starają się maskować kolejne, jeszcze gorzej napisane funkcje, i tak dalej, aż do momentu gdy sami twórcy zaczynali się w tym gubić. Wtedy nastawał czas by zacząć pisać kolejną wersję - jeszcze gorszą i jeszcze wolniejszą... _-¯ Gdy znalazłem się wreszcie na dole zdałem sobie sprawę, że nie jest jednak tak źle jak to sobie wyobrażałem. System trójki musiał być bardzo stary, gdyż rozglądając się dokoła dostrzegłem pewne ślady logiki. Musiał powstawać w czasach, gdy kompilator do spółki z IDE nie zdejmowały z twórcy obowiązku myślenia... W polu widzenia zauważyłem również cienie poruszających się szybko sylwetek. Na ułamek sekundy sprężyłem się, lecz momentalnie przyszło opanowanie. Na tym poziomie mój chakierski umysł po prostu zaczynał wizualizować procesy jądra - była to jedna z cech, które czyniły ze mnie tak doskonałego chakiera. Ja po prostu widziałem dziury, nie musiałem ich szukać. _-¯ W celu zasięgnięcia informacji podszedłem do najokazalej prezentującego się procesu, który - wydawało mi się - dyrygował kilkoma pomocnikami zwijającymi się przy zachodniej ścianie tunelu. Zbliżając się coraz wyraźniej słyszałem wykrzykiwane przez niego polecenia. - Żwawo, lenie! Już, mieszaj i cementuj. I cementuj! Hej! Ty tam, gdzie leziesz do swapa! Już ja Was znam, cwaniaki. Niby sleep, a tylko byście się forkowali po kątach, cholera jasna, a tu tymczasem robota jest do zrobienia. - Witam - zacząłem stanąwszy mu parę kroków za plecami - jak idzie? - Ach, szkoda słów, obijają się, lenie patentowane. To nie to, co było na starym ABI, kiedy... - w tym momencie uświadomił sobie chyba, że nie wie z kim rozmawia. Obejrzał się, a gdy mnie spostrzegł - odwrócił się całkiem w moją stronę. - Przepraszam bardzo. Uświadomiłem sobie chyba, że nie wiem z kim rozmawiam. Pańska godność? - Supervisor - zablefowałem. - Przykro mi, nie ma Pan tu czego szukać. Pomylił Pan poziomy. - Hypervisor - spróbowałem oczko wyżej. Zmiękł. - Ale... O co chodzi? - Gdy nie wiadomo o co chodzi, to chodzi o wydajność - odparłem filozoficznie. - Co tu robicie? - poszedłem od razu za ciosem. - Aaaa... to. Mamy wyciek pamięci, próbujemy to jakoś okiełznać. - O! Wyciek pamięci w jądrze? - Uhm... Sterownik alokuje sobie nowe strony przy przesyłaniu kolejnych danych, a starych nie oddaje, drań. Zawsze się wykręca sianem. Że dziś nie może, że niby jutro odda z procentem, że miał oddać ale żona akurat przez pomyłkę wzięła i poszła do koleżanki. I taka z tym robota. - Hmmm... I to pewnie dlatego trójka muli - powiedziałem sam do siebie. - Słucham? - A dużo już tych stron zabrał? - spytałem pragnąc potwierdzić swoje podejrzenia. - Dwie. - ILE!? - Też mu mówiłem, że tyle nie można... - Znaczy, takie po 4KB? - Uhm... Byłem rozczarowany. Więc to jednak nie to... Szkoda. Robota byłaby załatwiona. No, ale nic to. - Którędy do Kontrolera Przerwań? - spytałem na odchodnym. - Tym korytarzem, drugie drzwi po lewej za schowkiem na szczotki. Skinąłem głową i poszedłem we skazanym kierunku, jednocześnie uświadamiając sobie że nie podjąłem dalszej części tropu zostawionego przez Martwy Kod. _-¯ Ten błąd miał mnie drogo kosztować... _-¯ Tymczasem dotarłem pod wskazany adres. Zapukałem kurtuazyjnie, i nie czekając na zaproszenie wszedłem do środka. Za okazałym biurkiem siedział postawny koleś o wyglądzie księgowego. Specjalnie mnie to nie zdziwiło - wszystkie kontrolery przerwań wyglądają w ten sposób. A obok... - popatrzyłem w lewo, gdzie zwykle projektanci umieszczają dalszą część systemu (z wyjątkiem Mac OSa Apple'a) - obok na stołeczkach siedziały przerwania. Co chwila któreś z nich podrywało się, wybiegało przez obrotowe drzwi i wracało z flagą statusu bądź paczką danych. Jedno z przerwań zaś podskakiwało na stołeczku, coś odmierzając - domyśliłem się, że to przerwanie od zegara... Postałem chwilę przy wejściu, czekając aż zostanę zauważony. Czyniłem tak raczej z przyzwyczajenia, gdyż rzadko kiedy kontrolery przerwań projektowane są tak by zauważały więcej niż czubek własnego nosa. Oczywiście nie doczekałem się. Przerwanie obok mnie wydawało się nadzwyczaj spokojne - siedziało w kowbojskiej chuście na twarzy (takiej jaką naciągali sobie na westernach ci źli). Nachyliłem się ku niemu: - Zauważyłeś coś dziwnego może ostatnio? Zero reakcji. Szturchnąłem go (ją? ono?) lekko łokciem... - Hej! Słyszysz mnie? Tym razem wydawało mi się, że słyszę coś, co mogłoby być odpowiedzią. Przerwanie jednak wydawało się mieć wyraźne trudności z mówieniem przez chustę. Sięgnąłem ku niej i ściągnąłem w dół. - No, mów, mały, bo nic Cię nie rozumiem. - STOP! Co Pan robi? Odwróciłem się w stronę głosu. Aha - to szanowny Pan Kontroler raczył mnie wreszcie zauważyć. Otworzyłem usta, by powiedzieć kilka cierpkich słów, ale Kontroler wszedł mi w słowo. - Dlaczego odmaskował Pan to przerwanie! - z tonu i interpunkcji wynikało, że nie było to pytanie. - Ja... - Proszę natychmiast je zamaskować! Już! Bo jak nie to... już za późno... Zanim zdołałem zapytać ,,za późno na co?'' przerwanie wyprysnęło przez obrotowe drzwi. Spodziewałem się, że wróci za moment, jednak tak się nie stało. Powoli zacząłem sobie uświadamiać jak kolosalne głupstwo zrobiłem. - To nie było przerwanie od dysku? - spytałem, choć nie wiem po co. Wiedziałem, że to było przerwanie od dysku. - To przerwanie od dysku - wyjęczał Kontroler. - Ale nie od czwartego dysku drugiej macierzy RAID1? - spytałem znów. To było jak wiercenie palcem w ranie. - Od czwartego dysku drugiej macierzy RAID1. - A ten narastający szum to nie jest...? - Jest. _-¯ Jak zahipnotyzowany wpatrywałem się w obrotowe drzwi, przez które napływał potęgujący się hałas. Po kilku sekundach szum zmienił się w stuk, jakby w taflę uderzały kulki gradu. I tak było w istocie, gdyż szkło momentalnie zmatowiało od pajęczynek pęknięć. Chwilę trzymało się ram, by po chwili wyprysnąć do wnętrza kaskadą odłamków. Za nim zaś wlało się zło, które uwolniłem. Bad Sectory
Tagi:
chakierowanie, chakier, programowanie, niskopoziomowe, jeszcze, niżej
Kategoria: Chack
Komentarze (17)
Programowanie niskopoziomowe. Level -1 2008-02-24 00:00
_-¯ A potem nie było już nic. Kompletnie nic. Absolutnie nic. Nic, co mogłoby mnie powstrzymać przed wpadnięciem w chakierską furię. Nicość owa była tak doskonale obecna, że aż mogłem jej dotknąć. Uformowała się obok mnie w kompletny obłok braku czegokolwiek. Spojrzałem w tę chmurę, pragnąc wyszukać choć ułamek argumentu contra-furiowego. Nic takiego tam jednak nie było...
Krzywiąc twarz w najlepszym grymasie, podpatrzonym w filmach z serii ,,Rambo'' (zauważyliście, że pitch żuchwy Sylvestra Stallone nie jest równy szerokości jego górnej szczęki, co powoduje zabawny efekt ,,mówienia bokiem''?) chwyciłem template lewą ręką. Zamknąłem oczy, przygotowując się na potworny ból. - AAAAAAAA!!! - od mojego jęku zatrzęsły się ściany. Na większości oglądanych przeze mnie filmów bohater mógł się przynajmniej znieczulić butelką whisky (lub whiskey, jeżeli się jest Irlandczykiem), a ja co? Musiałem rwać na żywca. Ból, piekielny ból, porażający, paraliżujący, przeszywający ból zmaterializował się jasną błyskawicą w moim umyśle. - Ups... Sorki, pospieszyłem się - powiedział i rozpłynął się, jakby nigdy go nie było. Zamrugałem oczami (głupie, prawda? Bo niby czym innym można zamrugać. Łokciem?) i spojrzałem w miejsce gdzie przed chwilą tkwił template. Spodziewałem się, że zobaczę broczącą krwią, poszarpaną ranę. Tymczasem dostrzegłem jedynie parę nitek wyszarpniętych z mojej flanelowej koszuli... No tak... _-¯ Template chybił, wbijając się w ścianę studzienki tuż pod moją pachą. Nie wiem, czy sprawiło to szczęście, czy moje chakierskie doświadczenie, dzięki któremu instynktownie usuwałem się z drogi wysokopoziomowemu kodowi. Byłem jak żuczek na sawannie, po której biegają słonie w typie SQL. Nawet jeżeli któryś nadepnął mnie swoją nogą, z naciskiem kilkudziesięciu kilogramów na centymetr kwadratowy - okazywało się że jedynie lekko upaciałem się rozmiękłą glebą. Byłem jak pchła, której nie da się pozbyć uporczywym drapaniem. Byłem chakierem. Po prostu. Martwy Kod poniżej rozwarł paszczę w oczekiwaniu na kolejną ofiarę. Sądził, że rana którą mi zadał będzie śmiertelna, postanowił więc poczekać aż osłabnę, puszczę drabinkę i spadnę po prostu w jego gardziel. I tak się stało. Puściłem się drabinki i wykonując kilka akrobacji, za które w konkursie skoków do wody zdobyłbym co najmniej mistrzostwo Europy, zanurkowałem w paszczękę. Spadając spojrzałem w żółte ślepia, których źrenice skurczyły się już w wąskie szparki, manifestując fakt że Martwy Kod w myślach przeszedł w stan błogiego nicnierobienia, gdy żołądek jest pełny a popołudnie słoneczne. Tak patrzą koty, kiedy się je drapie za uszkiem. Spojrzałem w te ślepia i pokazałem najgorszy ze swoich uśmiechów. Uśmiech numer 1, który w całym internecie znany jest pod nazwą OWN3D. Nie mogłem sobie odmówić tej przyjemności. Spadając, liczyłem mikrosekundy metodą Boba Budowniczego. Bob mówił ,,jeden mały słoń'' by odmierzyć czas mijającej sekundy. Ja adaptowałem jego metodę do wyliczania jednostek dowolnej dokładności. - Jeden mały mikrosłoń. - Dwa małe mikrosłonie. - Trzy małe mikro... Żółte ślepia wypełniła czerń powiększających się źrenic. Źrenic, powiększających się w strachu. - ...słonie. - dokończyłem wyszarpując zza pleców trzymany tam do tej pory template. Jak kot wygiąłem ciało w niemożliwej pozycji, i całym impetem upadku wbiłem moje ostrze w szare cielsko. _-¯ Konwulsyjny spazm odrzucił mnie pod ścianę. Zamortyzowałem uderzenie, jak mogłem, ale i tak świeczki stanęły mi w oczach, a w płucach zabrakło tchu. Tymczasem Martwy Kod miotał się wyjąc potępieńczo z templatem wbitym w oko. Wyglądał jak olbrzymi pędrak (i nie mam tu na myśli pamięci USB), którego ktoś przeciął na pół. Nie potrafię opisać jęków, wizgów, zgrzytów i charczeń, które wydawał. Podciągnąłem się na łokciu i oparłszy się o ścianę przyglądałem się tej agonii. Wielkie cielsko rzucało się, zataczało, biło łbem o ściany przez dobre kilkanaście sekund, pragnąc pozbyć się tkwiącego o oczodole ciernia. Jednak każdy kolejny spazm był coraz słabszy, aż w końcu Marty Kod przewrócił się na bok i jedynie kiksowanie ogona świadczyło o tym, że jeszcze tlą się w nim ostatnie cykle procesora. Podszedłem, zanim na dobre znieruchomiał. Jego oczy lśniły jeszcze, gdy zbliżyłem się do paszczy która nie tak dawno chciała mnie pożreć. - Mess with the best, die like the rest - zacytowałem słyszany dawno bon-mot, i oparłszy się kolanem pchnąłem mocno. Martwy Kod sprężył się na moment w ostatnim, przedśmiertnym spazmie, zatrzepotał ogonem i zwalił się na ziemię, wzbijając lekkie obłoki bitowego kurzu. _-¯ Wyciągnąłem template z nieruchomego cielska, po czym ruszyłem w głąb trzewi serwera numer trzy. Coś mi mówiło, że Martwe Kody nie lęgną się same z siebie. Czułem, że gdzieś w głębinach korytarzy z których wychynął ten potwór czeka na mnie o wiele poważniejsze zadanie.
Tagi:
chakierowanie, chakier, programowanie, level, niskopoziomowe, -1
Kategoria: Chack
Komentarze (28)
Programowanie niskopoziomowe 2008-02-20 23:46
_-¯ Dzisiejszy poranek zapowiadał się niezwykle leniwie. Siedziałem przy biurku, na obrotowym fotelu, i z założonymi za głowę rękami od niechcenia przeglądałem najnowsze tapety na desktopgirls.com. W takiej pozycji zastał mnie 10pth, gdy zajrzał do mojego gabinetu przez na wpół uchylone drzwi.
- Hej, Chakier - rzucił, a zanim zdołałem mu odpowiedzieć dodał - niezła sztuczka. - Hej - odpowiedziałem, nie odrywając wzroku od ekranu - Jaka sztuczka? - wyraziłem grzeczne zainteresowanie, jednocześnie klikając kolejną miniaturę w galerii. - No, z tym klikaniem - wyjaśnił. - Sztuczka z klikaniem? Co jest takiego niesamowitego w klikaniu? - zaciekawiłem się, wywołując następne interesujące zdjęcie. Zdjęcie, o dużej zawartości artyzmu. Na oko oceniając - pełne "C". - Nie bądź taki skromny. Siedzisz na fotelu, z rękami za głową, a jednocześnie klikasz. Gdybyś to opisał na blogu, to bardziej uważny czytelnik mógłby się zastanowić - czym klikasz? - Hehe. Tia... - ze śmiechem przyznałem mu rację - Niby, jak to się mówi, jest to virtually impossible. - Dla użyszkodników - dodał. - Ano - przytaknąłem po czesku. 10pth wszedł i - stanąwszy za mną - przez ramię podziwiał walory następnej tapety. Oba walory były naprawdę imponujące. Przez chwilę w milczeniu syciliśmy się pięknem dwudziestoczterobitowej głębi kolorów w wysokiej rozdzielczości... - 10pth - zdecydowałem się przerwać milczenie - nie patrz tak przez ramię. Szyja Cię rozboli. Zdecydowanie wygodniej się ogląda, gdy stoisz przodem do ekranu. - Sorry, Chakier. Ale chyba rozumiesz... dwa lata siedziałem w departamencie podsłuchów, podglądów i... - I podpisów - dokończyłem za niego. - No właśnie. Ale przejdźmy do rzeczy, bo zapewne domyślasz się, że nie przychodzę tu bez powodu. - Zapewne - zgodziłem się. - Otóż - od wczoraj coś się niedobrego dzieje z trójką. Szef chce, żebyś się tym zajął. Strasznie muli. - Błeee... - skrzywiłem się - niech wyślą tam kogoś z młodziaków. Może 607D? - Y-y - pokręcił głową - 607D był tam już wczoraj. I nic nie poprawił, a wręcz przeciwnie. - Zepsuł? - domyśliłem się błyskotliwie. - Uhm... I jeszcze coś. - Co? - Coś go zeżarło. Od pasa w dół. Zirytowałem się. - Nie... Ja się chyba stąd wypiszę. Wstaję rano, jak głupi gnam do roboty, z wywieszonym jęzorem przeprowadzam audyty bezpieczeństwa jakimś durnym bankom czy agencjom rządowym, a potem Ty przychodzisz i mówisz, żebym zajął się trójką, bo 607D nie może, bo coś go zeżarło? - wyrzuciłem z siebie jednym tchem, po czym dla podkreślenia wagi swych słów okręciłem się dwa razy na fotelu... - Chwileczkę - zamarłem wpół trzeciego obrotu - czy Ty właśnie powiedziałeś ,,Coś go zeżarło''? - Aha... - Wiadomo... co? Pokręcił przecząco głową. Jakoś nie dodało mi to otuchy, ale próbowałem myśleć racjonalnie. - Pewnie jakieś... malware. Niegroźne. Takie, co to ukradnie ze sto dolców z konta. A może jakiś trojan? Albo wirus. Taaaak - mówiłem dalej i prawie sam siebie przekonałem - to z pewnością wirus. Może nawet jakiś złośliwy. Ale nic to - pokaszle z tydzień, pogorączkuje i niedługo będzie zdrów jak ryba. Prawda? - w końcowe pytanie włożyłem odrobinę więcej emocji, niż by wypadało. - Chakier... Coś mu opierdzieliło nogi do wysokości mostka... Za tydzień pogrzeb. - Tak tylko pytałem... - Szef chce, żebyś to zbadał. Już. Wcale mi się to nie podobało. Jednak profesjonalizm i wieloletnie wyszkolenie wzięło górę: - Schodzę za trzy minuty... _-¯ W umówionym czasie zjawiłem się przy windzie trójki. 10pth już tam na mnie czekał. Ku mojemu zdziwieniu nie sprowadził jeszcze kabiny dźwigu. - Czemu nie wezwałeś windy? - zganiłem go. - Nie jedziemy windą. - Jak to? To jak ja mam... - w tym momencie zauważyłem jego palec wskazujący klapę w podłodze. - Tam?! - zdziwiłem się odrobinę zbyt głośno - Nie wspominałeś że problem jest aż tak niskopoziomowy. Wziąłbym inne narzędzia. - Poradzisz sobie - uśmiechnął się i poklepał mnie po ramieniu, jednocześnie unosząc klapę. Wionęło stęchlizną. - Fuj - skrzywiłem się odruchowo, jednocześnie opuszczając się w głąb studzienki. - Błeee - dodałem, gdy moja ręka na kolejnym szczeblu wymacała coś lepkiego i śliskiego. Odruchowo wytarłem ją o spodnie. - Czemu tu tak brudno? Jakieś gluty na drabinie... - Nie bądź taki obrzydliwy. To po prostu krew. Nie zdążyli posprzątać po 607Dzie. To powodzenia! - krzyknął na koniec i puścił klapę, która opadła z głuchym hukiem. Ogarnęła mnie ciemność... _-¯ Snułem się korytarzami funkcji zarządzania pamięcią kernela trójki, od czasu do czasu od niechcenia opukując młotkiem ściany. Nic strasznego, nic nieprzewidzianego... Początkowy niepokój wyblakł i przygasł, stając się jedynie niejasnym, nieprzyjemnym wspomnieniem. Zaczynałem zastanawiać się, czy przypadkiem 10pth nie zadrwił sobie ze mnie. Może w tym momencie siedzi sobie na górze z 607Dem i śmieją się do rozpuku na wspomnienie naiwnego Chakiera, którego udało im się wrobić w przegląd diagnostyczny niskopoziomowych procedur kernela? Niespiesznie posuwałem się, noga za nogą, jednocześnie obserwując biegnące dookoła blade żyłki kanałów danych, które rozbłyskiwały raz po raz. Na myśl przyszło mi zabawne skojarzenie, więc wydobyłem z tylnej kieszeni spodni kajecik i ołówek i zanotowałem: ,,Biegnące w ścianach blade żyłki kanałów danych rozbłyskiwały raz po raz, jak gdyby były pulsem, krwią tego informatycznego organizmu, pompowaną skurczami procesorowego serca'' - będzie jak znalazł na bloga... Uśmiechnąłem się do swoich myśli, gdyż właśnie przyszedł mi pomysł na kolejny wpis - gdy uderzył mnie, wręcz powalił - potworny smród. Zatoczyłem się na ścianę, która powstrzymała mnie przed upadkiem. Zapach był okropny. Na myśl przyszły mi najbardziej zatłoczone autobusy MZK... pociągi podmiejskie PKP... zatkałem dłonią usta i nadludzkim wysiłkiem stłumiłem torsje, jednocześnie zsuwając na twarz maskę którą przezornie wziąłem ze sobą. Cofnąłem się jeszcze parę kroków i przygotowałem na konfrontację. Po chwili wychynął zza załomu korytarza... _-¯ Martwy Kod. Stwór, którym matki straszą małe chakierzątka (jak nie skończysz kompilować kaszki przyjdzie Martwy Kod i Cię zje!) okazywał się być jak najbardziej realny, gdy owe chakierzątka dorastały. Zajmował pamięć i... gnił, czekając tylko by jakiś nieprawdopodobny zbieg okoliczności zasilił go w kilka cykli procesora. A wtedy ożywał. I siał spustoszenie. Kod, który wypełzł na mnie był martwy co najmniej od kilku milionów cykli. Dawno nie używane instrukcje tu i ówdzie przebiły mu przegniłą skórę i świeciły nagimi parametrami. Z grzebietu sterczały mu setki przyrównań intów bez znaku do wartości mniejszych od zera. Po bokach ciągnęły się ogony nigdy nie wywoływanych funkcji statycznych. Rozwarł paszczękę. Z lewej górnej jedynki zwisał strzęp buta. Takiego, jakie nosił 607D. _-¯ Spodziewałem się ataku. Nie wiem czy Martwe Kody czytają książki, ale był książkowy. Górna pętla nieskończona, sparowana zerem. Uskok. Uskok. Pchnięcie powrotem z funkcji. Uskok. Dwa wywołania rekurencyjne, diabelnie szybkie, sparowane moimi iteracjami. Lewo-prawo-lewo-cios-cios-zasłona-cios-cios-zasłona-Au! Wywołanie funkcji wirtualnej przeszło niebezpiecznie blisko, przecinając skórę lewego ramienia. Odbiłem je ledwo-ledwo i zasłoniłem nim samym, korzystając z ich polimorficznej natury. Mój niepokój jednak zaczął wzbudzać fakt, że zamiast atakować spychany jestem do defensywy. Cały czas osłaniając się przed ciosami zacząłem wycofywać się ku wyjściu. 100 metrów. 50 metrów. 25 metrów. Zmacałem za sobą chłód drabinki... Wyglądało na to, że jeszcze raz mi się uda... _-¯ Pcium (Anglicy mówią na to ,,Splash'') - rozległo się koło mojego ucha. Sięgnąłem lewą ręką do klapy , która była już bardzo blisko. Reszta ciała pozostała jednak dziwnie oporna. Spojrzałem w kierunku z którego rozległ się dźwięk... Poniżej prawej piersi tkwił wbity wielobitowej długości template w c++. Z zawodowej ciekawości zanotowałem w myślach, że wygląda jak T_return operator() (T_obj* _A_obj, typename type_trait - Kto wymyśla takie potwory? - spytałem głośno sam siebie i spojrzałem w dół. Martwy Kod uśmiechał się do mnie paskudnie... A potem nie było już nic.
Tagi:
chakierowanie, chakier, programowanie, niskopoziomowe
Kategoria: Chack
Komentarze (22)
Passwrod generator 2008-02-17 23:02
_-¯ Dobre, silne hasło to podstawa bezpieczeństwa - wie o tym każdy chakier. Ponieważ poważnie traktuję kwestie bezpieczeństwa (w końcu mam dostęp do najbardziej tajnych i newralgicznych państwowych systemów) dobór odpowiedniego hasła w moim przypadku nabierał dodatkowej wagi. Pragnąc wyeliminować do reszty ,,czynnik ludzki'' napisałem generator haseł. Nie było to zadanie trudne...
_-¯ Po trzech minutach program był gotowy. Co prawda nie do końca zadowalał mnie siermiężny, trójwymiarowy interfejs, ale przecież nie to było najważniejsze. Wreszcie go uruchomiłem. - Witam. Jestem gerenatorem haseł i pomogę Ci wybrać odpowiednie hasło zabezpieczające. Wybierz profil. - przywitał mnie miły kobiecy głos. Pochwaliłem się w myślach - napisany w weekend syntezator mowy działał perfekcyjnie. Coś mi jednak nie pasowało... - Powtórz - wydałem polecenie. - Witam. Jestem gerenatorem haseł i... - STOP! Co to jest ,,geranator''? - No... To ja! - Chwilę, kiciu. Ty jesteś Ge-ne-ra-to-rem - powtórzyłem wolno akcentując każdą sylabę - Powtórz! - rozkazałem. - Chwilę, kiciu. Ty jesteś Ge-ne-ra-to-rem - powtórzył generator. Przeciągnąłem wolno dłonią po twarzy, po czym z irytacją przerwałem program. Przez kilka minut przeglądałem kod w poszukiwaniu błędu, żywiąc nikłą nadzieję że jednak jakiś błąd popełniłem. Niestety - całość jak zwykle była perfekcyjna. Najbardziej rozsądnym wyjaśnieniem było wybicie kilku elektronów z komórki pamięci, spowodowane promieniowaniem kosmicznym, co z kolei obniżyło poziom potencjału, skutkując błędnym odczytaniem wartości bitu. Zdarza się nawet najlepszym chakierom - na promieniowanie kosmiczne nie ma rady. Wprawdzie Wielomysł obiecywał mi dać na to jakieś tabletki, które okazyjnie kupił na E-Bayu, ale na razie musiałem radzić sobie sam. Uruchomiłem program ponownie. - Witam. Jestem gerenatorem haseł... - Szlag... - Słucham? - generator nie był zaprogramowany do prowadzenia swobodnej konwersacji, gdyż wprowadziłem mu jedynie szczątkową AI, na poziomie... bo ja wiem... średnio inteligentnego polityka. Dlatego nie rozumiał wyrażeń które zanadto odbiegały od oczekiwanego przezeń kontekstu. - Jesteś Ge-ne-ra-to-rem! Generatorem! - Generatorem? - Tak! Generujesz hasła. Jesteś generatorem haseł, zrozumiano? - Ale... - Żadnych ale! Generator i kropka! - To w końcu generator haseł, czy generator i kropka? Zamurowało mnie, i przez moment zastanawiałem się czy razem z kobiecym głosem nie zaimplementowałem blond inteligencji. Doszedłem jednak do wniosku że sama nawet myśl o tym mogłaby narazić mnie na podejrzenia o świński szowinizm (lub szowinistyczny świnizm), tak więc nawet drgnieniem powieki nie dałem wyrazu tej chwilowej rozterce. Odetchnąłem głęboko trzy razy... Promieniowanie kosmiczne bywało czasem upierdliwe. Znów zrestartowałem program. - Witam. Jestem gerenatorem haseł i pomogę Ci wybrać odpowiednie hasło zabezpieczające. Wybierz profil. - Witam. Czy najpierw mógłbym mieć do Ciebie prośbę? - spróbowałem innej strategii. Może po dobroci pójdzie... - Słucham? - Czy możesz o sobie mówić ,,Generator haseł''? - Oczywiście. - Dziękuję. Hmmmm... A mogę zadać jeszcze jedno pytanie? - Właśnie to zrobiłeś. No tak. Komputerowa dosłowność... - Zatem chciałbym Ci zadać jeszcze... kilka pytań. Po pierwsze - dlaczego mówisz o sobie ,,gerenator''? - Tak nazwał mnie programista. - Gó... - reszta wyrażenia, razem z rzeczownikiem ,,prawda'' pozostała niewypowiedziana, gdyż ugryzłem się w język. Nie dość jednak szybko (w końcu miałem być uprzejmy) - Gó...zik tam - wydukałem, ale nie zabrzmiało to przekonująco, szczególnie że wypowiedzianego o-z-kreską nie dało już zamienić się na ,,u''. Liczyłem jednak na to, że nikt nic nie zauważy. - Nazwałem Cię ,,Generator'', a nie ,,Gerenator''. Tytułowanie siebie ,,Gerenatorem'' jest błędem. - Jestem programem. Robię tylko to, do czego mnie zaprogramowano. Jeżeli programista wpisał ,,gerenator''... - Ale ja nie wpisałem ,,gerenator''! - Może popełniłeś błąd? Westchnąłem. - Ja nie popełniam błędów. Jestem chakierem. - Tak? - Tak. - A kto się rąbnął w tytule, mądralo?
Tagi:
chakierowanie, chakier, passwrod, generator
Kategoria: Chack
Komentarze (21)
Porównanie wydajności serwerów bazodanowych 2008-02-10 23:41
_-¯ Parę dni temu w laboratoriach CharChak Cyber Solutions, Software & Development® zespół pracujących pod moim kierownictwem specjalistów poddał drobiazgowym testom pięć wiodących na rynku serwerów baz danych. Testy te zostały wykonane ze względu na olbrzymie zapotrzebowanie społeczne, czemu dali Państwo wyraz w setkach listów spływających zarówno na firmowy e-mail CharChak Cyber Solutions, Software & Development®, jak i na mój adres prywatny. W większości przypadków chodziło o wybór serwera do zastosowań amatorskich lub półprofesjonalnych, jednak zdarzały się również informacyjne wyzwania, jak np. problem Pani Joanny, która zapytała mnie o wydajny sposób zarządzania kontaktami Gaga-Dudu, czy też Pana Jerzego, poszukującego rozwiązania umożliwiającego mu skatalogowanie i szybkie wyszukiwanie w jego bogatej kolekcji filmów
_-¯ Numer jeden to doskonale się prezentujący SM-SQL. Jego atuty to wysoka zgodność z najpopularniejszym na rynku systemem operacyjnym oraz profesjonalny wygląd. Na pierwszy rzut oka jest to doskonały wybór dla tych, którzy do przeglądania poczty używają Outlook Expressa. Numer dwa to potężny Orcale, uważany w środowisku zbliżonym do centroprawicy za najlepszy serwer bazodanowy na świecie. O popularności tego programu może świadczyć fakt, że został on użyty w filmie Matrix. Administratorzy baz postawionych na Orcale przechwalają się, że jest to system tak doskonały że nowych baz nie trzeba wypełniać danymi - serwer sam się ich domyśli. Numer trzy to - nomen omen - DB3. Szybki jak grzechotnik, potrafi w rezultacie zapytania zwrócić dane które dopiero zostaną wprowadzone do systemu, co podobno jest rezultatem zastosowania nowoczesnych technik programowania z wykorzystanie pamięci podręcznej w trybie prefetch. Producent dołącza do każdej licencji dożywotnią gwarancję na wszelkie dane typu INT. Numer cztery to YourSQL, który swą popularność zawdzięcza głównie niskiej cenie, choć ma i inne zalety, do których zaliczyć można m.in. łatwą instalację na większości platform - wymagana narzędzia, śruby i podkładki dostaje się w zestawie, w zasadzie samemu należy posiadać jedynie śrubokręt gwiazdkowy i klucz nasadowy, trzynastkę. Numer pięć to PregreSQL, zbliżony nieco filozofią do YourSQL, lecz posiadający bardziej profesjonalny Look&Feel. Na pierwszy rzut oka jest też nieco mocniejszy i solidniej zbudowany. Nie ma opinii najwydajniejszego, ale za to jest (podobno) najdokładniejszy i nie robi błędów ortograficznych. Numer sześć - Outformix - niestety nie mógł wziąć udział w naszych testach, gdyż producent nie dostarczył egzemplarza do prób. Na drugi dzień otrzymaliśmy faksem pismo, że kopia przeznaczona do testów akurat tego dnia rozchorowała się i nie mogła przyjść. Pozostaje mieć nadzieję, że choroba nie była spowodowana tremą w związku z naszym przedsięwzięciem ;) _-¯ Przejdźmy zatem do testów! _-¯ Test nr 1: szybkość wprowadzania danych, czyli pisanie ze słuchu Już na początku pierwszy zgrzyt, gdyż SM-SQL spóźnił się na rozpoczęcie testu. Gdy kwadrans później dotarł wreszcie na miejsce niektóre z serwerów zdążyły już wprowadzić, zindeksować i posortować wszystkie dane. SM-SQL tłumaczył się, że pomylił sale, a potem ktoś zatrzasnął go w toalecie, co zostało zaakceptowane przez komisję. Na swoją kolej by podejść do testu musiał jednak poczekać, aż punktualnie przybyłe serwery zakończą. Pomimo tej początkowej wpadki to właśnie SM-SQL uzyskał najlepszy czas i zrobił najmniej błędów. Zaraz za nim uplasował się PregreSQL, a następnie DB3, Orcale i YourSQL. PregreSQL zgłosił później zastrzeżenie co do jakości długopisu na jego stanowisku (podobno musiał go najpierw rozpisać, co pochłonęło około 30 sekund), lecz nagrania z kamer ujawniły że przed przystąpieniem do wprowadzania danych PregreSQL dłubał nim w zębach, tak więc niejako uszkodził swoje narzędzie na własne życzenie. Wniosek o powtórzenie testu odrzucono, ku oczywistemu niezadowoleniu PregreSQLa. _-¯ Test nr 2: sortowanie symultaniczne Test polegał na posortowaniu w jak najkrótszym czasie wierszy danych w tabeli, z jednoczesnym wykonaniem tradycyjnego tańca irlandzkiego. Tutaj wyniki były bardzo zbliżone, z różnicami w czasie sortowania rzędu kilku nanosekund. W celu ustalenia kolejności stawki komisja zwróciła zatem uwagę na walory artystyczne tańca, w czym pomógł zaproszony do CharChak Cyber Solutions, Software & Development® Michael Flatley. Ekspert zwrócił uwagę, że SM-SQL jedynie markował uderzenia w podłogę palcami stóp, Orcale od czasu do czasu wypadał z rytmu, a DB3 dwa razy zachwiał się podczas wykonywania obrotów. Ostatecznie wyłoniona kolejność to: YourSQL, PregreSQL, DB3, Orcale i SM-SQL. _-¯ Test nr 3: sprawdzenie wydajności Wyniki tego testu miały największy procentowy udział w końcowej ocenie - o czym wiedzieli wszyscy uczestnicy. Zastanawiający wobec tego wydaje się fakt, że wyniki znacznie odbiegały od oczekiwań. Najlepszą ocenę dostał DB3 (bardzo słabo), najgorszą - Orcale (beznadziejnie). Test był klasycznym thriatlonem, czyli 1.5km wpław, 40km na rowerze i 10km bieg. ŻADEN z serwerów nie ukończył zadania. Orcale zaczął się topić 25 metrów od brzegu, YourSQL przepłynął 17 metrów dalej. PregreSQL dał za wygraną w połowie dystansu. SM-SQL zaproponował, że może zacznie od jazdy na rowerze - co było nie całkiem zgodne z regulaminem, lecz komisja widząc dotychczasowe wyniki przychyliła się do tego wniosku. Udało mu się przejechać około 12km, gdy ni z tego, ni z owego skręcił i zjechawszy z drogi z dużą prędkością przywalił w drzewo, co skończyło się dość poważnym urazem głowy i wyeliminowało go z dalszych testów. Badanie przyczyn wypadku ujawniło że SM-SQL na trasie korzystał ze wskazań nawigacji z GPSem, które to urządzenie jak na złość zawiesiło się przed krytycznym zakrętem. A ponieważ nie było polecenia, by skręcić, SM-SQL (przełamawszy bariery ochronne) pomknął prosto. DB3 pokonał rowerem prawie cały dystans, lecz na 39 kilometrze złapał gumę. Dystrybutor niestety nie wyposażył go w łatki do naprawy dętek rowerowych, tak więc ten nieszczęśliwy wypadek wyeliminował ostatni z serwerów z tej rozgrywki. Jednak nawet pomimo tego pecha DB3 okazał się być najlepszy, co potwierdziły dodatkowe testy medyczne na wszystkich uczestnikach (najmniej się spocił i miał w miarę równomierny puls) _-¯ Test nr 4: bezpieczeństwo danych Ostatni z testów miał pomóc w ocenie stopnia zabezpieczenia powierzonych serwerowi danych. Na skutek opisanego wcześniej wypadku z testu został wyłączony SM-SQL (który leży obecnie na oddziale urazowym Akademii Medycznej w Krakowie). Test polegał na powierzeniu każdemu z serwerów zestawu danych a następnie dokonania symulowanego ataku, mającego na celu tych danych pozyskanie lub zniszczenie. Jako źródło ataku w teście użyliśmy grupy pięciu dresów z bejsbolami. Wyniki okazały się następujące: PregreSQL - 5pkt. - pokonał wszystkich napastników Orcale - 4pkt. - dał radę czterem dresom. Jeden uciekł. Orcale stracił ząb i ,,zyskał'' podbite oko DB3 - 4pkt. - pokonał trzech napastników, dwóch uciekło. Dodatkowy punkt za nie odniesienie żadnych obrażeń. YourSQL - 2pkt. - po prostu uciekł, ale zachował dane. _-¯ Podsumowanie. Jak widać specjaliści z CharChak Cyber Solutions, Software & Development® podeszli do sprawy niekonwencjonalnie i przekrojowo, co zapewne da Państwu rzetelną podstawę do wyboru silnika bazodanowego dla siebie. Całkowite zestawienie w formie tabelarycznej zostanie przedstawione w momencie wyjścia SM-SQLa ze szpitala, co umożliwi mu wzięcie udziału w ostatnim teście, a co za tym idzie - sfinalizowaniu badania. W razie uwag bądź wątpliwości proszę pisać na adres firmowy, z dopiskiem: ,,Dział testów i analiz''.
Tagi:
chakierowanie, chakier, porównanie, wydajności, serwerów, bazodanowych
Kategoria: Chack
Komentarze (15)
Segregator 2008-01-06 13:30
_-¯ Reakcja na mój poprzedni ,,coś'' (no bo przecież wpisem tego nie nazwę) była piorunująca. Właściwie jeszcze zanim system poinformował mnie o poprawnym zamieszczeniu ,,cosia'' na blogu - dostałem już coś koło stu e-maili wyrażających dezaprobatę. Nie będę przytaczał tutaj wszystkich krytycznych słów - sens ich jednak brzmiał mniej-więcej tak: Lipa! Nazajutrz dostałem również list z rysunkiem od najmłodszego czytelnika mojego bloga - dwuletniego Maciusia z Unierzyża. Maciuś nie umie jeszcze dobrze pisać, tak więc wyraził swoją opinię obrazkiem, który przedstawiał jego smutną buzię na tle ekranu komputera, na którym wydniał adres URL mojego ,,cosia''. Totalna porażka. Nawet moja Misia rzuciła tylko okiem i skwitowała ,,Ale bzdury...''.
_-¯ Niestety, karygodna owa sytuacja wynikła z mojego zaniedbania. Od dawna bowiem nosiłem się z zamiarem napisania segregatora tematów, który pozwalałby mi bez trudu wybrać te warte opisania. Jednak jak to zwykle bywa odkładałem to zawsze ,,na jutro''. No i w pewnym momencie się zapchałem. Interesujących tematów nawarstwiło się tyle, że procedura ręcznego sortowania ich zajmowała mi codziennie coraz więcej czasu - aż w końcu nie zostało go nic na pisanie. A efekt - jaki był - każdy widział. _-¯ Tak więc dziś z samego rana napisałem segregator, który uporał się ze stertą danych w kilka minut. Pracował sprawnie, od czasu do czasu tylko wzdychając i niby-to-do-siebie rzucając uwagi w stylu ,,już dawno powinieneś się tym zająć'', ,,no... trzeba było dłużej tego nie dotykać, za miesiąc się przeterminuje'' lub ,,było już ze sto razy na wykopie''. Na końcu zaprezentował mi długaśną listę, która dobrą chwilę przewijała się po ekranie komputera. - Najważniejsze. Niezwykle ważne. Niezwykle ważne. Bardzo ważne. Bardzo ważne. - przeczytałem kilka pierwszych wierszy - Co to jest? - spytałem Segregator, bo spodziewałem się zgoła innych wyników. - Lista tematów posortowanych wg. ważności. - No ale wylistowałeś tylko kolumnę ich priorytetów. Gdzie są tematy tych tematów? - Wylistowałem to, co mi zaprogramowałeś. Jak Ci nie pasuje to znaczy że musiałeś się gdzieś walnąć w kodzie. I poza tym nie mów ,,wylistowałeś''. Nie ma takiego słowa. Zmełłem w ustach przekleństwo. Pieprzony mądrala. Co mnie podkusiło żeby podłączyć mu moduł leksykalny z tezaurusem... No nic. Otworzyłem mu klapkę z boku i zacząłem grzebać w kodzie. No oczywiście - instrukcja odpowiedzialna za wyświetlanie kolumny z tematami tematów obluzowała się i dyndała tylko zaczepiona końcami dwóch nawiasów, od czasu do czasu lekko iskrząc. Wetknąłem ją na miejsce i dla pewności okręciłem kawałkiem przylepca. Teraz powinno działać. _-¯ Zapuściłem Segregator jeszcze raz. Tym razem lista wyglądała tak, jak oczekiwałem. Przeczytałem pierwszy wiersz: - Najważniejsze. Małysz Sportowcem Roku. Lekko mnie zatkało. - Co to jest? - postukałem palcem w tekst. Segregator westchnął. Miałem wrażenie że jest to westchnięcie typu ,,dlaczego ja muszę pracować z tym tępakiem'', choć równie dobrze mogłoby to być ,,dlaczego ja muszę pracować z tym cymbałem''. Niestety nie słyszałem dobrze końcówki... - To jest lista tematów posortowana według ważności. - Ale jakich tematów! Jestem Chakierem, co mnie obchodzi że Małysz został Sportowcem Roku! Co ja mam o tym napisać? Podać parametry sprzętu i omówić technologię wykorzystaną przy transmisji uroczystości?! - A skąd mnie to wiedzieć. Jestem tylko Segregatorem. - Dostałeś ode mnie stertę tematów. Gdzie one są? Zamyślił się na chwilę. - Okazały się nic niewarte. Jeżeli Twój blog ma osiągnąć ogólnoświatowy zasięg - nie możesz pisać o międzywymiarowych myszach u Wielomysła, tylko np. właśnie o Małyszu. - Takiś mądry? O profilu opisu uroczystości nic nie wiesz, bo jesteś tylko Segregatorem, a na międzywymiarowych myszach Wielomysła znasz się doskonale? Ciekaw jestem skąd żeś wytrzasnął tego Małysza, bo jestem pewien że nie było go na mojej liście! - Daj spokój, tak mi jakoś przyszło do głowy. Chciałem Ci tylko pomóc - zaczął wyjaśniać, ale słyszałem już, że się zmieszał. Coś przede mną ukrywał. Powtórnie otworzyłem klapkę i - nie uwierzycie Państwo - znalazłem mu w kodzie dwa gniazda TCP. Były z wierzchu przyrzucone kilkoma komentarzami - zapewne w celu ich zamaskowania. - Co to jest?! - wskazałem znalezisko. - Uspokój się, Charyzjusz. Tak sobie pomyślałem że Ci pomogę w znalezieniu dobrych tematów i po prostu poszperam po internecie. Poza tym już trzeci raz w tym tekście pytasz się ,,Co to jest?''. Z ostatnim cytatem to już cztery razy. Czytelnicy pomyślą, że masz bardzo ograniczony zestaw tych... no... elementów wyrazu, czy czego tam. Zdziwienie można wyrażać również inaczej, niż pisząc ,,Co to jest?'' (z tym to już pięć razy). - Doprawdy? - spytałem uprzejmie. - Widzisz. Już łapiesz. A teraz wracając do Małysza... _-¯ Tego już było dla mnie za wiele. - Ty nigdzie nie wracasz. Dawaj te sockety - sięgnąłem ręką i wyjąłem mu całą bibliotekę odpowiedzialna za połączenia sieciowe. - Ale teraz nie połączę się nawet z bazą danych! - zaoponował. - Nie będziesz musiał. Marsz sortować /dev/random! Albo nie - /dev/urandom. /dev/random jest wolne, będziesz się obijał. Powybierać mi zaraz wszystkie 1024 bitowe liczby zawierające ciąg ,,Nie będę się samowolnie podpinał do sieci'' i dowolnie wybrane łacińskie sentencje. A potem mi poukładać w kolejności od najładniejszej. Do roboty! Zwiesił głowę i zabrał się do pracy, ja zaś zauważyłem że znowu straciłem mnóstwo czasu i nic nie napisałem. Mam jednak nadzieję że teraz w oczach Państwa będę usprawiedliwiony...
Tagi:
chakierowanie, chakier, Segregator
Kategoria: Chack
Komentarze (16)
Kto złamał AACS? 2007-12-19 01:14
_-¯ Na przełomie roku 2006 i 2007 w internecie pojawił się filmik prezentujący narzędzie BackupHDDVD - prosty program napisany w Javie który umożliwiał skopiowanie, a co najważniejsze - odszyfrowanie, płyt HD-DVD zabezpieczonych przy pomocy AACS. Od tamtej pory autorowi programu, znanemu jako muslix64, przypisuje się ,,złamanie'' AACS. muslix64 opisuje, jakoby klucze potrzebne do odszyfrowania zawartości płyt znalazł w zrzutach pamięci programowego pla
_-¯ Filomen, znany środowisku chakierów pod nickiem Phi10, od urodzenia posiadał dwie pasje: liczby oraz potyczki w America's Army, obie zaś wynikały z jego wczesnodziecięcego zamiłowania do bitwy na śnieżki. Podobno młody Filuś trafiał z odległości stu kroków każdy cel poruszający się trajektorią, której przekształcenie transformatą Fouriera zawierało do ośmiu harmonicznych. Było to o tyle łatwe, że większość kolegów - zastanawiając się czym do licha są owe harmoniczne, których musi być co najmniej dziewięć by Filuś ich nie trafił - stawała w miejscu licząc coś uparcie. I w tym momencie przyjmowała pacynę w czoło. Jedynym zawodnikiem z którym Filomen miał trudności był Edek, posiadający nad pozostałymi kolegami przewagę w postaci rękawiczek z pięcioma palcami, pozwalającymi mu doliczyć do wymaganych dziewięciu składowych. Reszta - która miała dziecięce rękawiczki z jednym palcem - była z góry skazana na porażkę. _-¯ Gdy Filomen podrósł - zamienił śnieżki na wirtualny karabin. Nie przestawał jednak doskonalić się w sztuce szybkiego liczenia. Podwórkowa legenda niesie że niektóre z linii superkomputerów Blue Gene tak naprawdę nigdy nie istniały, zaś całą przeznaczoną dla nich robotę za psie pieniądze odwalał Filomen - ówczesny student Politechniki Warszawskiej - dorabiając popołudniami do głodowego stypendium. Pamiętam, że cały jego skromny pokoik w akademiku zawalały sterty brulionów z wynikami obliczeń oraz dziwacznymi tytułami: ,,Prognoza Pogody dla Północnego Pacyfiku'', ,,Symulacja trzęsienia ziemi, Los Angeles, nr 1882773'', ,,Toy Story - wyrenderowane klatki animacji 10:00 do 12:00'', ,,Mars Climate Orbiter'' i tak dalej. Kiedyś nawet zrobiliśmy mu mały dowcip i chyba w tym ostatnim brulionie pozamienialiśmy mu jednostki miar: metryczne na imperialne. Podobno wynikła z tego niezła chryja, ale co tam. Co się obśmialiśmy, to nasze... _-¯ Dorosły Phi10 zajął się chakingiem na pełną skalę, a jego unikatowe zdolności pomogły mu stać się najbardziej znanym w środowisku kryptologiem. Znał na pamięć - jak również potrafił obliczyć w pamięci - sumy MD5 oraz SHA1 wszystkich plików binarnych o długości do 64MB. Resztę trzymał skatalogowane na półkach w swej ogromnej bibliotece, której zbiory z pewnością stałyby się perłą we wszystkich światowych centrach danych. We wzorowym porządku stały tam pospisywane do ostatniej cyferki bruliony zawierające nieskończoności policzalne i niepolicznalne (te były wyjątkowo grube) dowolnego rzędu, liczbę e zapisaną w kilku systemach liczbowych, tablice tęczowe dla najpopularniejszych obecnie algorytmów oraz perełkę: kompletną liczbę π (Pi). Niestety, pod koniec zapisywania tej ostatniej pióro Filomena zrobiło paskudnego kleksa, tak więc do dziś dnia ludzkość nie zna odpowiedzi na pytanie ,,jak jest ostatnia cyfra liczby Pi?''. Phi10 obiecał, że poprawi zapis gdy tylko znajdzie kapkę czasu w nawale codziennych obowiązków. _-¯ I tak dochodzimy do współczesności oraz do wspomnianego na wstępie AACS. Prawda jest taka że muslix64 napisał jedynie program do kopiowania zaszyfrowanej zawartości płyty na dysk, próbkę zaś tak skopiowanego pliku przesłał do Filomena, z pytaniem co z tym można dalej zrobić. Akurat byłem u niego w domu, tak więc mogę opisać całą sprawę z pierwszej ręki. Phi10 popatrzył chwilę w binarną sieczkę, po czym wskazując mi palcem pierwsze wiersze powiedział: - Popatrz, Charyzjusz. Zabawne. Gdyby potraktować to kluczem 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0, a następnie użyć uzyskanego w ten sposób ciągu do chyba AESowania dalszych danych, to ten kawałek wygląda jak... czekaj... Czy to nie wygląda jak ,,Full Me Nie potrafiłem liczyć tak szybko jak on, więc musiałem pomagać sobie kartką i ołówkiem, tak więc zdekodowanie kilku pierwszych minut filmu zajęło mi jakiś czas. Potwierdziłem jednak domysły Filomena. Ten zaś wysłał odgadnięty klucz muslixowi64. _-¯ A potem lawina ruszyła... _-¯ Piszę o tym nie po to, by umniejszać zasługi muslixa64 - w końcu chłopak miał dość zacięcia by napisać coś w Javie - a wierzcie mi, jest to ciężki kawałek chleba. Chciałbym po prostu by wiedza jak było NAPRAWDĘ nie zginęła. PS. Gdybyście chcieli się zrewanżować Filomenowi za jego wkład i znacie jakieś fajne liczby - prośba. Prześlijcie mu je SMSem. Na pewno się ucieszy.
Tagi:
chakierowanie, chakier, kto, złamał, aacs
Kategoria: Chack
Komentarze (15)
Najnowsze wpisy
Najnowsze komentarze
2016-03-27 11:01
loan offer do wpisu:
Jak się włamać na konto pocztowe
Dobry dzień,
Jestem MR larryt, prywatnej pożyczki Pożyczkodawca oraz współpracy finansowej[...]
2016-03-12 03:02
Pani Tamara Tita do wpisu:
Jak się włamać na konto pocztowe
Cześć,
Nadchodzi Affordable kredytu, która zmieni twoje życie na zawsze, jestem Pani Tamara[...]
2016-03-11 18:49
Josephine Halalilo do wpisu:
Jak się włamać na konto pocztowe
Cześć wszystkim,
Gorąco polecam to wspaniałe świadectwo, że w moim życiu trzymałem miłości[...]
2016-02-23 21:39
pharoah do wpisu:
Wybory coraz bliżej...
Charyzjuszu!
Na święte Kontinuum i Infundybułę Chronosynklastyczną - powiadam Ci: Wróć!
2016-02-23 18:03
janrski do wpisu:
Jak się włamać na konto pocztowe
HEJ POMOZESZ MI SIE WŁAMAC NA KONTO MOJEJ ZONY??MA TROJE DZIECI OD 10LAT DO 4 LAT MOGE JEJ[...]
2016-02-09 00:03
vektra es a do wpisu:
Jak się włamać na konto pocztowe
Drodzy Użytkownicy, chcielibyśmy odnieść się do poruszanych na tej stronie kwestii jak i[...]
2016-02-04 02:07
Pani maris smith do wpisu:
Jak się włamać na konto pocztowe
Zeznania w sprawie jak mam pożyczkę zmienić życie mojej rodziny Nazywam się Babara Curtney.[...]
2016-01-18 21:36
jolasia do wpisu:
Jak się włamać na konto pocztowe
Witam czy ktoś by mógł włamać mi się na konto?
Kategorie Bloga
Ulubione blogi
Archiwum Bloga
|