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)
Ballada o SQLittle 2008-02-13 22:11
_-¯ Dawno temu, za górami,
Gdzieś na skale zamek stał. Mieszkał król w nim, wraz z synami, A tych synów siedmiu miał. Pierwszych sześciu - nie lichota. Każdy z nich był chłop na schwał. A najmłodszy był sirota, SQLittle zaś się zwał. Biadał ojciec oraz bracia: Cóż wyrośnie z niego, cóż? Boż ciamajda z niego, pacia, I - nie ukrywajmy - tchórz. Mawiał król doń - synu drogi, Z braci przykład musisz brać! Rozprostować nieco nogi, A nie tylko w Quake grać! SQLittle, krnąbrne dziecię Za nic jednak rady miał. Ciągle siedział w internecie, Lub kernel kompilował. Tak mijały mu godziny, Wciąż w komputer wściubiał nos, Nie miał kumpla, ni dziewczyny, No a ojcu siwiał włos. Aż pewnego dnia straszliwa Dotarła na zamek wieść: Że poczwara obrzydliwa Poddanych zaczęła jeść! Nikt nie wiedział, skąd się wzięła, Ani jaką miała płeć. Ot - po prostu przyfrunęła I poczęła ludzi żreć Król, gdy wszystko to usłyszał Podniósł w górę nagi miecz, I do synów swych wykrzyczał: Trza potwora przegnać precz! Ale synom, moi mili, Entuzjazmu było brak, I się wcale nie kwapili Ruszać na bitewny szlak. Jeden na drugiego zerka, Drugi na trzeciego znów. Tego boli głowa, nerka, No - po prostu - szkoda słów. Gdy to zoczył król - oniemiał, Po czym w rozpacz wielką wpadł. Czuł się, jakby synów nie miał. Z żalu - koniec miecza zjadł. SQLittle, widząc żałość Ojca, rzecze jemu sam: ,,Ojcze, wybacz mi zuchwałość... Ja smokowi radę dam!'' ,,SQLittle? Oszalałeś? Ty smokowi radę dasz? W życiu miecza nie trzymałeś, A do tego pryszcze masz! Nie, syneczku, nie dla ciebie To zadanie. Słuchaj mnie. Jeszcze stwora Cię za...bije No i pożre zwłoki Twe!'' SQLittle zaś odrzecze: ,,Ach mój królu! Pozwól mi! W Quake poczwar tych ja przecież sfragowałem miliard trzy!'' Tak więc poszedł w bój śmiertelny, Tam, gdzie jak głosiła wieść, Potwór czekał nań piekielny. I nie wracał niedziel sześć. Wreszcie wrócił. W glorii, w chwale, Dzierżąc w garści smoka łeb. Pisały o tym żurnale Oraz cały World Wide Web. Tu się kończy ta ballada Powiem więc na koniec Wam Że choć mnie już nie wypada Też czasami w Quake gram...
Tagi:
chakierowanie, chakier, o, ballada, sqlittle
Kategoria: Ogólne
Komentarze (27)
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)
Blazing Saddles 2008-02-09 14:12
_-¯ Dziś kolejny wpis z kategorii ,,A must C!'', czyli Płonące siodła w reżyserii Mela Brooksa. Film zaprezentuje telewizja TVN dzisiaj o godzine 16:05
_-¯ Jak zwykle mała przystawka w celu zaostrzenia apetytu, czyli Lili von Shtupp w megaprzeboju saloonów. _-¯ Dzieło ma status kultowego w całym chakierskim środowisku, zaś wiele z jego scen było inspiracją do powstania nowych chakierskich narzędzi i technik. Najsłynniejszą wydaje się być ,,Niger's Bait'' (nazywana także Niger's Byte, czyli Bajt Murzyna), którą to techniką posłużył się LomoX w szeroko opisywanym przez elektroniczne media ataku na serwery kalifornijskiego Ku-Klux-Klanu w marcu 2003 roku.
Tagi:
chakierowanie, chakier, blazing, saddles
Kategoria: A must C!
Komentarze (0)
Hipnoza zapachu 2008-02-08 22:27
_-¯ Nie próbowałem się szarpać.
- Niespodzianka, Charyzjuszku - usłyszałem koło mojego ucha głos, który poznałbym wszędzie. _-¯ Jodyna... Wiele lat upłynęło odkąd widzieliśmy się po raz ostatni... Od tamtej pory staraliśmy się nie wchodzić sobie w drogę, gdyż byliśmy świadomi zagrożenia które stwarzaliśmy wzajemnie swoją obecnością. Byliśmy jak materia i antymateria, gotowe unicestwić się w eksplodującej błyskawicy namiętności. Nie mogąc być ze sobą podświadomie zniszczyliśmy nasz krótkotrwały związek, zamieniając gorzką słodycz niespełnionej miłości w żrący kwas wiecznej nienawiści. Chciałem ją o coś zapytać. Dlaczego to robi, dlaczego rozdrapuje stare rany, co chce osiągnąć? Pytań było tak wiele... Uniosłem brwi w niemym geście zdziwienia - automatycznym grymasie, którego i tak nie była w stanie zauważyć. - Nie unoś brwi w niemym geście zdziwienia. I tak nie jestem w stanie go zauważyć - skonstatowała - Raz - eksplozja uszkodziła skrzynkę z bezpiecznikami, więc jest ciemno. Dwa - stoję za tobą, głąbie! Pac! Ostatni wyraz został zaakcentowany uderzeniem w potylicę. Zabolało. - Au! - zdołałem tylko wyjęczeć. Ponieważ chwyt trzymających mnie do tej pory rąk zelżał, spróbowałem się odwrócić. Jednak w tym samym momencie czyjeś palce wczepiły się w moje włosy i brutalnie odgięły głowę do tyłu. Była w tym jednak również jakaś perwersyjna pieszczota... Trzymając mnie wciąż za włosy Jodyna zbliżyła swoją twarz do mojej, na odległość kilku centymetrów. Poczułem zapach jej perfum, a wspomnienia wróciły z siłą tsunami... - Jodyna... - wyszeptałem tylko. - Charyzjusz... Spojrzałem w jej oczy. Gdyby nie liczyć (jak zdołałem się zorientować) kilkunastu uzbrojonych funkcjonariuszy dokoła, zagruzowanego korytarza i płonącej serwerowni - było jak wtedy. Jak dawniej... - Jodyna... - Charyzjusz... Jej chwyt zelżał. Nie szarpnąłem się jednak w tył, nie wyrwałem się. Wciąż patrzyłem w jej oczy... Świat dokoła zatracał ostrość, rozmywał się w nic nieznaczące plamy barw, które powoli zlewały się ze sobą i bladły, stapiając się z niedostrzegalnym tłem. Chciałem coś powiedzieć, jednak zanim zdobyłem wydobyć głos ona położyła mi palec na ustach, gestem nakazując milczenie. - Och, Charyzjusz... - wyszeptała wreszcie. - Och, Jodyna... Jej zapach hipnotyzował. Nie było sensu dłużej hamować naszej namiętnośći... _-¯ Misia zapaliła lampkę nocną i silnie potrząsnęła moim ramieniem. - Charyzjusz! Obudź się! Hej! Niechętnie otworzyłem oczy i nieprzytomnie rozejrzałem się dokoła. Parę razy zamrugałem, chcąc strzepnąć przyklejone do powiek resztki snu. - Co jeeeeest? - spytałem tłumiąc ziewnięcie. - Ja się pytam, co jest. Rzucasz się po łóżku, ściągasz ze mnie kołdrę, a przez ostatnie pół godziny nic nie robiłeś tylko się przewracałeś z boku na bok jęcząc ,,och Jus..cośtam''. Justyna czy Jodyna, nie wiem. Coś Cię gryzie? - Ja... Rzeczywistość napływała kolejnymi falami, wymywając ostatnie okruchy sennych marzeń. - Ja... po prostu miałem ciężki dzień, kochanie. Pogładziła mnie po włosach. - Już dobrze, Charyzjusz. Już nic. To pewnie przez te bzdurne książki, które czytasz. Sięgnęła pod poduszkę i wydobyła sfatygowany tomik kieszonkowego wydania ,,Niesamowitych Przygód Horacjusza Hwasta''. Odłożyła go na szafkę obok łóżka. - Śpij. Majster mówił że jutro będziecie lać nowe fundamenty na budowie. Musisz się wyspać. Dobranoc. Cmoknęła mnie w czoło i zgasiła światło. Zacisnąłem powieki, pragnąc zatrzymać jeszcze na moment twarz cudownej Jodyny, namalowanej mroczkami powidoków. W miarę jednak jak moje oczy na powrót przyzwyczajały się do ciemności obraz gasł, aż w końcu zostałem sam...
Tagi:
chakierowanie, chakier, hipnoza, zapachu
Kategoria: Ogólne
Komentarze (17)
Najnowsze wpisy
Najnowsze komentarze
2017-06-30 05:56
DANIELS LOAN COMPANY do wpisu:
Jak się włamać na konto pocztowe
Cześć, Mam na imię Adam Daniels.
Jestem prywatny pożyczkodawca, który dają kredyt prywatnych[...]
2017-06-27 11:05
Mr Johnson Pablo do wpisu:
Jak się włamać na konto pocztowe
Cześć,
Czy potrzebujesz pożyczki? Możesz się rozwiązywać, kiedy dojdziesz. Jestem[...]
2017-06-27 06:09
greg112233 do wpisu:
Jak się włamać na konto pocztowe
Witam wszystkich, jestem Greg z Gruzji, jestem tutaj dać
Zeznania na
Jak po raz pierwszy[...]
2017-06-21 16:10
Iwona Brzeszkiewicz do wpisu:
Jak się włamać na konto pocztowe
Czesc, kochanie. Czy wciaz szukasz pomocy. Nie szukaj dalej, poniewaz senator Walter chce i[...]
2017-06-15 14:20
kelvin smith do wpisu:
Jak się włamać na konto pocztowe
Brak zabezpieczenia społecznego i brak kontroli kredytowej, 100% gwarancji. Wszystko, co musisz[...]
2017-06-13 06:20
Gregs Walker do wpisu:
Jak się włamać na konto pocztowe
Uwaga:
Jest to BOOST CAPITAL CENTRAL TRUST FINANCE LIMITED. Oferujemy wszelkiego rodzaju[...]
2017-06-13 06:09
Gregs Walker do wpisu:
Jak się włamać na konto pocztowe
Uwaga:
Jest to BOOST CAPITAL CENTRAL TRUST FINANCE LIMITED. Oferujemy wszelkiego rodzaju[...]
2017-06-09 16:42
George cover.. do wpisu:
Jak się włamać na konto pocztowe
Witamy w programie Fba loaninvestment
Czasami potrzebujemy gotówki w nagłych wypadkach i[...]
Kategorie Bloga
Ulubione blogi
Archiwum Bloga
|