Dostałem dzisiaj od znajomego pewne zdjęcie, w formacie JPEG. Zdjęcie przedstawiało osobę, której twarz została zamalowana czarnym prostokątem. Nie było by w tym nic ciekawego, gdyby nie to, że explorer pokazywał na miniaturce twarz niezamalowaną :)
Czytaj dalej...
2010-08-09:
question:blog
(Krótki i chaotyczny post napisany "w biegu") Natrafiłem na pewien problem. Mianowicie, skąd początkujący powinien się uczyć programować? Sieć jest przepełniona materiałami dot. najrozmaitszych języków programowania. Są kursy C, dokumentacja Pythona, manuale Intela do Assembly x86, książki o PHP, etc. Ale to wszystko jest o językach. I dobrze! Ale co z nauką komponowania programów (z braku lepszej nazwy przychodzącej mi do głowy)?
Czytaj dalej...
2010-07-27:
hwframework:medium:c++
Po CONFidence stwierdziłem, że fajnie byłoby się pobawić różnymi starymi rozwiązaniami sprzętowo-software'owymi, typu ANTIC i P/M, HAM6, itd. Jak to osiągnąć?
Czytaj dalej...
Poprzedni post, tj. Wybór studiów a szanse na rynku pracy, wywołał całkiem niezłą dyskusję, zarówno na temat, jak i na różne tematy mniej lub bardziej powiązane z głównym wątkiem, np. "studia (nie) są niepotrzebne", "prawdopodobieństwo może przyjmować (nie) tylko wartości od 0 do 1", czy też temat który chciałbym dzisiaj rozwinąć - "jak udokumentować swoją wiedzę". Zachęcam do lektury, a przede wszystkim, do dyskusji!
Czytaj dalej...
Najczęściej ostatnio pojawiającym się pytaniem na moim mejlu/komunikatorach jest "jakie wybrać studia, żeby znaleźć później dobrą pracę". Czas chyba zająć w tej sprawie "oficjalne" stanowisko.
Czytaj dalej...
2010-07-21:
confidence:lecture:terrible terrible english:windows:hacking:security
Na stronie konferencji CONFidence 2010 pojawiły się nagrania wideo z kilku prelekcji, m.in. z prelekcji mojej i j00ru "Case study of recent Windows vulnerabilities". Nagranie jest w formie do pobrania na dysk (tj. nie ma playera online).
Czytaj dalej...
2010-07-20:
security:php:rant
Wczoraj wieczorem opublikowaliśmy (u j00ru na blogu) trochę starych advisory dotyczących PHP (nic poważnego, jakieś tam prawie nieistotne rzeczy, więc to bardziej wyniki badań niż literalnie "advisory"). W sumie nie tyle chodziło nam o znalezienie jakiś bugów w PHP (noo, trochę też, ale nvm ;p) co o przetestowanie nowej (dla nas) metody audytowania kodu.
Czytaj dalej...
2010-07-20:
hiperdrop:reverse engineering:easy:windows:c++
Przeglądając ostatnio katalogi na dysku znalazłem trochę narzędzi które z jakiegoś powodu ukrywałem i do tej pory nie opublikowałem. Zastanawiam się nad dokończeniem ich podstawowej funkcjonalności i wrzuceniu w końcu na sieć. W każdym bądź razie, jednym z takich narzędzi (które prawie bez zmian nadawało się do publikacji) jest HiperDrop - prosty, konsolowy, tool do zrzucania pamięci procesu, pod Windows.
Czytaj dalej...
2010-07-09:
recon:swars:syndicate wars
Bardzo krótki news - zgodnie z obietnicą, nasza prezentacja z RECON dot. Syndicate Wars Port:
Czytaj dalej...
Wieczorem 12 grudnia 2006 napisałem na OpenRCE, że poszukuje pracy jako RE/programista. Po kilku godzinach otrzymałem maila od Julio Canto z hiszpańskiej firmy Hispasec z propozycją nawiązania współpracy, którą wkrótce faktycznie nawiązaliśmy. Od tego dnia minęły ponad trzy lata i dość nieoczekiwanie wyszło na to, że 19 sierpnia odchodzę z Hispasec, by 6 września rozpoczać pracę u nowego pracodawcy. Niniejszy post jest niejako podsumowaniem mojej współpracy z Hispasec, oraz podziękowaniem dla wspałniałych ludzi z którymi przyszło mi tam pracować :)
Czytaj dalej...
2010-07-07:
recon:lecture
Krótkie info: za parę godzin wylatuje z Wrocławia na RECON (Montreal, Kanada), gdzie dotrę dopiero jutro pod wieczór czasu polskiego (15h czekania na przesiadkę w Monachium FTW!). Tak więc kontakt ze mną może być utrudniony chwilowo, ale mejla będę w miarę możliwości sprawdzał. Mam na najbliższe parę dni zakolejkowany przynajmniej jeden post, więc coś się powinno mimo wszystko na blogu pojawiać ;>
Czytaj dalej...
Sporo gier komputerowych (zresztą nie tylko komputerowych) z elementami RPG stosuje tzw. "skill tree" - czyli drzewko kolejnych umiejętności (zachęcam do wklepania "skill tree" w google images), które dana postać może zdobyć/poznać/posiąść. Drzewko jest zorganizowane w taki sposób, że po poznaniu danej umiejętności odblokowuje się kolejna (lub kolejne) - tak więc aby poznać umiejętność Z, być może trzeba najpierw nabyć umiejętność Y, która wymaga X. Jakieś dwa lata temu wpadłem na pomysł, żeby pomysł ten przenieść do IT (programowania/hackingu/RE) - stworzyłem sobie ogólne drzewko rzeczy które chciałbym poznać (np. architekturę ARM), a potem oddzielne drzewko szczegółowe dla każdej umiejętności z drzewka ogólnego. Co ciekawe, kilku znajomych podłapało pomysł i kilka wieczorów spędziliśmy na projektowaniu takich drzewek i dyskusji jaka kolejność jest dla nauki danej rzeczy najlepsza (lub, jak nam się wydaje która będzie najlepsza ;>).Ostatnio do pomysłu wróciłem, a to za sprawą kilku osób, które próbowały mnie podpytać czego się uczyć (np. w kontekście C++) i w jakiej kolejności. Pomyślałem, że fajnie byłoby stworzyć trochę takich drzewek i rzucić na sieć, ot tak aby początkujący (z danej tematyki) mieli (prawie) pełen obraz czego powinni się uczyć, i jaka jest proponowana (przez osoby które już przez to przeszły, oraz samych zainteresowanych) kolejność. Niemniej jednak moja wiedza jest ograniczona, a mój punkt widzenia strikte przyczepiony do mnie (a więc zawężony do moich doświadczeń), więc projekt będzie od początku otwarty i będę zachęcał Was do udziału :)
Czytaj dalej...
2010-07-02:
hitb:hitb magazine:ezin:hacking:security:reverse engineering
Podczas konferencji Hack In The Box w Amsterdamie (która zaczęła się bodajże wczoraj) został opublikowany trzeci numer wskrzeszonego przez Zarula Shahrina e-magazynu HITB. Trzeci numer, najlepszy moim zdaniem od momentu wskrzeszenia zinu, jest bardzo techniczny i sądzę, że przypadnie wam do gustu. Dodam również, że nie zabrakło polskich akcentów :)
Czytaj dalej...
Projekt konsultacji/korepetycji/lekcji dla początkujących rozpocząłem na początku roku i przez te parę miesięcy "przekonsultowałem" kilkadziesiąt godzin. Niestety, z uwagi na pewne zmiany i reorganizacje czasowe które obecnie czynie, muszę z kilku aktywności zrezygnować... i padło m.in. na owe konsultacje (o czym zresztą osoby chcące się, w ciągu ostatnich tygodni, zapisać na nie, informowałem).
Czytaj dalej...
2010-06-23:
c:c++:easy:gcc:funny
Zarówno GCC, oraz inne kompilatory, jak i same standardy języków C/C++, przewidują pewne rozszerzenia języka, które zazwyczaj adresują jakiś problem, bądź też dodają nową funkcjonalność. Tych rozszerzeń jest masa - w zasadzie każdy popularny kompilator ma niemałą listę takich dodatków, i oczywiście nie zamierzam ich wszystkich opisywać w tym poście. Wspomnę natomiast o dwóch: atrybucie init_priority dla globalnych inicjacji obiektów w GCC C++, oraz znaku dolara ($) w nazwach zmiennych - rozszerzeniu pojawiającym się w różnych miejscach. Przy okazji tego ostatniego, zaprezentuje jedno zadanie z tegorocznego testu na Technika Informatyka (który od dwóch dni krąży po sieci).
Czytaj dalej...
2010-06-08:
random thoughts:easy
Kilka dni nic nie pisałem, a kilka losowych przemyśleń mi się uzbierało. Skorzystam więc z okazji i je zanotuje.
Czytaj dalej...
2010-05-30:
confidence:conference:lecture:windows:security:medium:high
Tylko króciutki (prawie że copy-pejstowany z bloga j00ru) z oryginalnymi "advisory" dotyczącymi błędów które omawialiśmy na CONFidence (a wcześniej na Hack In The Box w Dubaju), oraz ze slajdami które używaliśmy podczas prelekcji na CONFidence (zachęcam do zajrzenia do posty z "relacją" z CONFidence). W owych "advisory" są detale które omawialiśmy na prezentacji, a także kilka dodatkowych informacji na które zabrakło czasu.
Czytaj dalej...
2010-05-30:
confidence:conference:lecture
CONFidence ma jedną zasadniczą wadę - kończy się ;) Ale to w sumie dobrze - przynajmniej człowiek ma okazję uporządkować zdobytą wiedzę, na spokojnie pomejlować z nowo-poznanymi ludźmi, i wygrzebać z szafy starego poczciwego ATARI.
Czytaj dalej...
2010-05-05:
recon:lecture:reverse engineering:re:swars
Kilka miesięcy temu wysłaliśmy z Unavowedem zgłoszenie tematu na konferencję RECON, odbywającą się 9-11 lipca tego roku w Montrealu (Kanada). Wczoraj oficjalnie nasz temat został ogłoszony (a więc i oficjalnie przyjęty)! :)
Czytaj dalej...
2010-05-03:
windows:security:winapi:csrss
Post przekierowujący dla dla czytelników researchujących Windowsa: Matthew opublikował tabelki z opkodami CSRSS (względem systemu, funkcji, etc) na swoim blogu, polecam rzucić okiem: http://j00ru.vexillium.org/?p=349&lang=en :)
Czytaj dalej...
Dwa ostatnie miesiące były dla mnie bardzo pracowite - o czym zresztą przekonały się osoby które próbowały umówić u mnie konsultacje w tym czasie - musiałem jakoś pogodzić wystąpienia na dwóch konferencjach, research dla Hispasec, a także kilka dodatkowych projektów nad którymi pracuje, a przy tym nie wykończyć się fizycznie, ani nie zostać uduszonym przez moją ukochaną (której btw dziękuje za okazywaną cierpliwość ;>). Niemniej jednak sprawy się trochę uspokoiły, więc mogę wznowić konsultacje/korepetycje/lekcje dla początkujących :)
Czytaj dalej...
2010-04-26:
seconference:workshop
Co nie co o warsztatach, które prowadziłem na SEConference, pisałem już wcześniej. M.in. obiecałem wtedy podsumowanie ankiet uczestników, a do tego postanowiłem podzielić się kilkoma spostrzeżeniami.
Czytaj dalej...
Kiedyś moja żona wynalazła gdzieś stwierdzenie, że "ekspert to osoba która popełniła wszystkie możliwe błędy w swojej działce"* - i chyba coś w tym jest. Zauważmy, że programista na poziomie eksperckim/zaawansowanym rzadko kiedy dopytuje się "co zrobić gdy wyskoczył mi taki a taki błąd (np. kompilatora)" - on już te błędy widział, on już je kiedyś popełnił i nauczył się je rozwiązywać. Natomiast pytania od początkujących (a czasem i średnio-zaawansowanych) programistów dotyczą często właśnie tego "co zrobić gdy kompilator rzucił takim a takim błędem". Łącząc cytat z pytaniem, chciałbym zaproponować pewne ćwiczenie :)
Czytaj dalej...
2010-04-22:
hack in the box:hitb:dubai:lecture
Przed chwilą zakończyła się moja prelekcja na Hack In The Box w Dubaju, na której oczywiście być z krwi i kości nie mogłem (z uwagi na Eyjafjallajökull i odwołanie moich lotów), ale którą poprowadziłem przez telefon i stream pulpitu (ciekawe doświadczenie.. ale chyba preferuje irl prowadzić ;>). Slajdy z prezentacji udostępniamy poniżej.
Czytaj dalej...
2010-04-22:
hitb:zin:hacking:security
W drugi dzień konferencji HITB w Dubaju został opublikowany drugi numer e-zinu HITB Magazine. Z Polskich akcentów znajdziemy tam np. artykuł j00ru pt. "Windows Objects in Kernel Vulnerability Exploitation".
Czytaj dalej...
2010-04-20:
lecture:confidence
Na stronię CONFidence - największej organizowanej w Polsce, międzynarodowej konferencji poświęconej hackingowi/security - pojawiła się agenda. Można się z niej dowiedzieć, że w ciągu dwóch dni trwania konferencji, odbędzie się przynajmniej 25 prelekcji - w tym moja i j00ru, podczas której opowiemy od znalezionych przez nas błędach w Windowsie (a jest tych błędów 7). Pojawi się również trochę znanych nazwisk, jak choćby Jacob Appelbaum (cold boot attack).
Czytaj dalej...
2010-04-19:
hack in the box:hitb:dubai:lecture
Cóż... wygląda na to, że ze względu na bałagan który narobił islandzki wulkan Eyjafjoell, mój lot do Dubaju na konferencje Hack In The Box został odwołany. Dla przypomnienia - miałem tam mówić o znalezionych przez j00ru i mnie vulnach w Windowsie. Prawdopodobnie (o ile łącza internetowe i sprzęt na to pozwolą) moja prelekcja na HITB i tak się odbędzie, tylko że będzie to transmisja audio/video, a nie live.
Czytaj dalej...
2010-04-17:
c:c++:code:easy
Czas na jakiś bardziej techniczny post. Dostałem kilka dni temu pytanie, które pozwolę sobie zacytować: "[...] dlaczego nie powinno się deklarować zmiennych w taki sposób: int a = 50; int b[a];". Chodzi tutaj oczywiście o tablice lokalne, które mają wielkość zależną od jakiejś zmienne, być może nawet zależnej od użytkownika/wejścia. Swoją odpowiedź cytuje poniżej:
Czytaj dalej...
Ta sprawa "męczy" mnie już od jakiegoś czasu - coraz więcej producentów różnego rodzaju dóbr zaczyna traktować każdego KLIENTA (tj. płacącego klienta) jak potencjalnego "złodzieja", co chwilę gdzieś miga "kopiowanie tego XYZ jest przestępstwem", "modowanie urządzenia XYZ jest nielegalne", etc. Ale od początku...
Czytaj dalej...
2010-04-13:
windows:security:bughunt:buffer overflow:easy
O pierwszym z bugów znalezionych przez nasz team (w składzie j00ru i ja ;>) informowałem już w lutym. Dzisiaj Microsoft opublikował info o kolejnych 5 (a w zasadzie 6ściu, ponieważ dwa z nich, które dla nas wyglądały jako oddzielne błędy, udało się załatwić jedną zmianą, więc zostały ogłoszone pod jednym numerkiem) :)
Czytaj dalej...
2010-04-13:
lecture:seconference:igk:gamedev:re
Od zeszłego czwartku do wczorajszego późnego popołudnia miałem maraton konferencyjny - w czwartkowy wieczór warsztaty z reverse engineeringu w ramach SEConference w Krakowie (o których wspominałem kilka postów temu), w piątkowy poranek prelekcja "Reverse Engineering for fun and profit" również w ramach SEConference (również wspomniana wcześniej), a 5 godzin później konferencja Inżynierii Gier Komputerowych w Siedlcach (dla odmiany, jako uczestnik ;>; o IGK napiszę w następnych postach).
Czytaj dalej...
2010-04-06:
lecture:seconference
Zgodnie z obietnicą, pragnę Was poinformować iż pojawiła się informacja o rejestracji na warsztaty (w tym moje, opisywane tutaj) na konferencji SEConference. Metoda rejestracji jest jaka jest i wygląda w ten sposób, że od [sic!] godziny 18:00 dnia 7 kwietnia należy wysłać e-mail na rejestracja@seconference.pl z tytułem "Warsztaty", a imieniem, nazwiskiem i tematem warsztatów, na które chce się zapisać, w treści. Zgodnie z informacją widniejącą na stronie konferencji, e-maile przed godziną 18:00 zostaną odrzucone (organizatorzy powiedzieli, że o kilka sekund kłócić się nie będą, ale też, że chodzi o to by wszyscy mieli równe szanse). Anyway, jest limit 20 osób per warsztaty, i obowiązuje zasada 'kto pierwszy ten lepszy', więc zainteresowanych zachęcam do trzymania ręki na pulsie. W razie gdyby limit miejsc nie został wyczerpany od razu po godzinie 18, postaram się o tym poinformować.
Czytaj dalej...
Pierwszy kwietnia się skończył (jakieś 25 minut temu), więc czas najwyższy rozpocząć Secunda Aprilis - drugi kwietnia - dzień w którym wypada powiedzieć co było dowcipem, a co nie :) Ale zacznę od początku...
Czytaj dalej...
2010-03-30:
seconference:lecture:workshop
Na stronie SEConference (i blipie) pojawiły się informacje o przewidzianych warsztatach podczas tegorocznej edycji tejże konferencji. Warsztaty będą trzy - w czwartek wieczorem mój o RE, w piątek wieczorem Piotra Dudka i Piotra Wojtyły o VPN, i w sobotę wieczorem Michała Sajdaka o nie-wiadomo-jeszcze-czym. Warsztaty prowadzone przeze mnie będą spójne z tematyką piątkowej prelekcji - czyli Reverse Engineering :)
Czytaj dalej...
2010-03-25:
seconference:lecture
Czas w końcu ogłosić co będę mówić na SEConference w Krakowie :) A będzie to...
Czytaj dalej...
2010-03-09:
seconference:lecture
Dzisiaj ruszy rejestracja na DARMOWĄ konferencję poświęconą zagadnieniom szeroko-pojętego bezpieczeństwa komputerowego. Co ciekawe - i na pewno wyróżniające tą konferencję spośród innych darmowych - nie dość, że konferencja będzie w tej edycji dwudniowa, to jeszcze odbędą się warsztaty (również darmowe). Jak widać, organizatorzy za punkt honoru postawili sobie udowodnienie, że bezpłatne konferencje również mogą mieć rozmach znany z ich (niektórych) płatnych odpowiedników... i bardzo dobrze :)
Czytaj dalej...
Stało się. Dołączyłem do grona blogerów mniej lub bardziej związanych z security, którzy przyznali się do czytania papieru i nawet napisali o tym na blogu. Jedyna różnica polega na tym, iż zamiast opublikować ów post na swoim blogu, to, gościnnie, wrzuciłem go na bookblog.pl. Zapraszam do zapoznania się z treścią owego postu, oraz do komentowania (tym razem na w/w blogu, a nie tutaj).
Czytaj dalej...
2010-02-22:
lecture:hitb:dubai:windows
Miesiąc temu wysłałem zgłoszenie na konferencje Hack In The Box 2010 odbywającą się w Dubaju, i wczoraj dostałem oficjalne potwierdzenie akceptacji tematu. Tak więc wygląda na to, że 21 i 22 kwietnie będę w Dubaju mówił o błędach w Windowsie znalezionych przez j00ru i mnie :)
Czytaj dalej...
2010-02-13:
confidence:security
Parę dni temu rozpoczęło się Call For Papers na tegoroczną edycję największej polskiej konferencji poświęconej tzw. hardcore security - CONFidence 2010. Dodatkowo w tym roku możemy wpłynąć na wybór miejsca w którym odbędzie się konferencja (dwa znane z poprzednich krakowskich edycji miejsca + jedno nowe). Anyway, jak zwykle, zachęcam do obecności na CONFidence - moim zdaniem najlepszej polskiej konferencji poświęconej bezpieczeństwu :)
Czytaj dalej...
Z projektem konsultacji/korepetycji wystartowałem w listopadzie zeszłego roku - miał on na celu zarówno wsparcie Was (mam tu na myśli osoby raczej początkujące czy średnio zaawansowane) podczas nauki, jak i umożliwienie mi pozyskania dodatkowych środków na inne projekty. Od tego czasu minęło coś koło trzech miesięcy, więc czas na drobne podsumowanie :)
Czytaj dalej...
2010-02-10:
malware:security
Kolejny dzień, kolejny e-mail z malware'em (ostatnio to jakaś plaga). Tym razem to Facebook zmienia zasady i trzeba uruchomić aplikacje żeby się zgodzić na nowe...
Czytaj dalej...
2010-02-09:
windows:csrss:local priv escal:vulnerability:security:hacking
Dzisiaj Patch Tuesday, więc Microsoft opublikował Microsoft Security Bulletin Summary for February 2010. Jedną z luk (których w Summary jest 25) jest "wyresearchowana" przez j00ru i mnie luka (w tej właśnie kolejności, gdyż to j00ru ją znalazł, a później razem doprowadziliśmy do wynalezienia sposobu jej exploitacji) w procesie systemowym csrss.exe, która pozwala m.in. na podniesienie uprawnień lub ujawnienie wrażliwych danych.
Czytaj dalej...
2010-02-09:
malware:security:funny
Drugi dzień i kolejny malware na mejlu. Wiadomość w którym przyszedł jest natomiast odrobinę... niedopracowana :)
Czytaj dalej...
2010-02-08:
malware:security
Ostatnimi czasy sporo malware'u wpada na moją skrzynkę pocztową. Pozwolę go sobie tutaj (czyli na blogu) umieszczać - a nuż ktoś kiedyś dostanie podobny e-mail i będzie się zastanawiać czy to fake czy nie :)
Czytaj dalej...
2010-02-01:
c:c++:easy:programming:asm:x86
Otrzymałem mejlowo (od luqa który zgodził się na publikacje korespondencji ;>) pytanie dotyczące wartości niezainicjowanych elementów częściowo zainicjowanej lokalnej tablicy:
Czytaj dalej...
2010-01-25:
reverse engineering:re:assembler:games:gamedev:x86:asm:windows:linux:macosx:c:syndicate wars
Syndicate Wars jest grą z roku 1996, stworzoną przez, nieistniejące już zresztą, studio Bullfrog. Gra została napisana w C (Watcom) pod DOS extender DOS4GW i oczywiście przestała działać (natywnie, pomijam rozwiązania typu emulatory) wraz z pojawieniem się współczesnych systemów operacyjnych typu Windows z serii NT. Kilka lat temu Unavowed, będący wiernym fanem tej produkcji, zaproponował mi stworzenie portu tej gry na współczesne OSy, takie jak GNU/Linux czy Windows. Port miał polegać na dekompilacji pliku wykonywalnego gry, zlokalizowaniu wszystkich funkcji standardowej biblioteki C, zależności względem DOS4GW i funkcji I/O (dźwięk, klawiatura, grafika, myszka, etc), wymienieniu ich na natywne libc oraz libSDL/OpenAL (czasem przy pomocy pewnych wrapperów, czy wręcz konwerterów), oraz ponowną rekompilacje do plików wykonywalnych. Dzisiejszego wieczoru udało nam (bo to Unavowed był wyraźnym liderem tego projektu) się ów projekt ukończyć, oraz opublikować, i to nie tylko na zakładane systemu GNU/Linux oraz Windows, ale i dodatkowo na Mac OS X!
Czytaj dalej...
Moja dobra znajoma wpadła na pomysł udzielania korepetycji / lekcji z języka angielskiego via Skype. Sądzę, że może zainteresować to osoby które są na bakier z tym językiem, a myślą o ścieżce rozwoju związanej z informatyką (jak wiadomo, po polsku trudno o dokumentacje czy tutoriale z niektórych dziedzin). Również osoby które język znają całkiem nieźle, a chcą go doskonalić (np. zająć się angielskim tematycznym, np. biznesowym, czy też wymowa/akcent przed wystąpieniem w języku eng., ale ofc nie tylko) powinny rzucić okiem na jej ofertę. Osobiście mogę z czystym sercem dodać, że Agnieszka język angielski ma na naprawdę doskonałym poziomie, co zresztą można samemu ocenić np. na jej anglojęzycznym blogu. Z formalnych informacji: Agnieszka jest magistrem filologii angielskiej i ma doświadczenie zarówno w pedagogice, jak i w używaniu języka angielskiego na co dzień (np. w kontaktach biznesowych). Tak więc gorąco zachęcam do skorzystania z wiedzy i doświadczenia mojej znajomej! Na koniec link: http://przepisujemy.org/?korepetycje :)
Czytaj dalej...
Pomysł na tego posta narzucił mi się już jakiś czas temu (czas mierzony raczej w miesiącach niż w dniach czy tygodniach), ale jakoś tak wyszło, że do tej pory nie został zrealizowany. Post będzie poświęcony komunikacji międzyludzkiej, a dokładniej kilku przypadkom które zaobserwowałem podczas swojej "działalności w Internecie", a także wspomnę co nie co o prowadzeniu bloga. Osoby ze sporym doświadczeniem życiowym raczej w tym poście nic nowego nie znajdą, tak więc zachęcam głównie osoby młode do jego przeczytania :)
Czytaj dalej...
2010-01-17:
medium:x86:assembler:windows:win32:exploit:security
Kilka tygodni temu gościł u mnie j00ru, co, jak można się domyślić, skończyło się kilkoma ciekawymi pomysłami. Jednym z pomysłów było wykorzystanie mechanizmu call-gate'ów w pisaniu exploitów na kernel/drivery pod Windows, a konkretniej chodzi o wykorzystanie write-what-where do przekształcenia LDT w Call-Gate, i tym sposobem podniesienie uprawnień kodu z user-land do ring 0. Efektem tychże rozważań jest "papierek" oraz kilka PoC, które można ściągnąć poniżej.
Czytaj dalej...
2010-01-11:
hitb:ezin:medium
Ezin Hack In The Box, który wychodził w latach 2000 do 2005 (razem 37 numerów), doczekał się wznowienia, tym razem jako kwartalnik. Najnowszy numer zawiera 6 artykułów (w tym jeden mój), co przekłada się na 44 strony, w PDF (link niżej). Imho warto ściągnąć i poczytać, kilka ciekawych rzeczy można się dowiedzieć :)
Czytaj dalej...
2010-01-07:
medium:x86:assembler:bochs:virtualpc
Tematyka niniejszego postu będzie bardzo podobna do poprzedniego, czyli nadal pozostaje przy opisywaniu niewielkich, ale imho ciekawych, detali architektury x86. Takie detale często bywają przeoczone przez twórców emulatorów czy wirtualizerów, a więc mogą posłużyć do odróżnienia środowiska wirtualnego, od prawdziwej maszyny. Bohaterem dzisiejszego postu jest rejestr DR6, albo, będąc bardziej precyzyjnym, jego cztery pierwsze bity (0-3) czyli B0 do B3, które mówią o spełnieniu bądź nie spełnieniu warunków breakpointu. Prosiłbym o przeczytanie całego postu przed wyciągnięciem wniosków :)
Czytaj dalej...
2009-12-29:
x86:assembler:bochs:qemu:medium
Ostatnimi czasy przypominam sobie osdev (ostatni raz coś więcej niż boot menu napisałem jakieś 6 lat temu), więc prawdopodobnie parę następnych postów będzie związane z assemblerem, emulatorami x86 oraz podobnymi instytucjami. Dzisiejszy post poświęcę instrukcji bswap reg16 w trybie chronionym, która jak się okazuje może posłużyć np. do detekcji emulatora BOCHS lub QEMU.
Czytaj dalej...
2009-12-23:
reversecraft:assembler:asm
Taki drobny prezent na święta - ReverseCraft Assembler 3 bez spóźnienia, oraz ReverseCraft 8 tydzień wcześniej :)
Czytaj dalej...
2009-12-14:
asi:linux:lecture
W sobotę, a raczej w nocy z soboty na niedziele, odbyło się kameralne spotkanie dyskusyjno-prelekcyjne o tematyce związanej z bezpieczeństwem, zorganizowane przez Akademickie Stowarzyszenie Informatyczne. Miałem okazję w nim uczestniczyć, za równo jako słuchasz, jak i jako spontaniczny mówca (prezentacje od zera robiłem już na spotkaniu, gdy się okazało że można coś powiedzieć ;>). I było świetnie!
Czytaj dalej...
2009-12-11:
re:asm:x86:easy
Na forum UW-Team.org pojawiło się pytanie o wykorzystanie flagi RF (Resume Flag) do detekcji debuggera. Ponieważ nie słyszałem wcześniej o wykorzystaniu tej flagi do anty-dbg, postanowiłem przyjrzeć się bliżej. Poniżej zamieszczam moją odpowiedź na zadane pytanie.
Czytaj dalej...
2009-12-05:
reversecraft:re:blog:assembler
Przed chwilą opublikowałem nowy odcinek, z cyferką 7, ReverseCraft, traktujący o inline hook'ach oraz DLL injection - czyli jest to cofnięcie się odrobinę do podstawowych umiejętności potrzebnych każdemu RE. Odcinek trwa ponad godzinę, z czego 20 minut to część teoretyczna, a 47 to część praktyczna w której pokazuje jak od zera napisać injector DLL oraz jak runtime zaaplikować inline hook przekierowujący wykonania na naszą funkcję. Miłego oglądania!
Czytaj dalej...
Pojawiły się (już parę dni temu) oficjalne wyniki głosowania w ramach konkursu CONFidence Security Evangelist, w tym w kategorii w której mój blog był nominowany, czyli "Blog o bezpieczeństwie IT w języku polskim".
Czytaj dalej...
Drobna zmiana jeśli chodzi o konsultacje/korepetycje/lekcje: po prawej stronie w menu, pod linkiem do szczegółów konsultacji, wrzuciłem małą rozpiskę stałych terminów konsultacji (będzie to poniedziałek 20:00, środa 15:00 i piątek 17:00, 2x po 1h), wraz z informacją czy najbliższy termin jest wolny, czy już zarezerwowany. Wszystkie przyszłe niewypisane terminy w te dni/godziny można uznać za wolne.
Czytaj dalej...
2009-11-29:
reversecraft:re:blog:assembler
Opublikowałem drugi odcinek ReverseCraft: Assembler, opowiadający o budowie pojedynczej instrukcji maszynowej x86, oraz o tym, jak wpływa to na budowę instrukcji w assemblerze (x86, protected mode, 32-bit).
Czytaj dalej...
2009-11-28:
virustotal:project
Przedwczoraj na sieć trafił mój najnowszy twór - VirusTotal Uploader w wersji 2.0. Jest to w zasadzie zupełnie inne narzędzie niż te do których Was przyzwyczaiłem, tj. ma okienko (nie jest konsolowe), jest przetestowane i skierowane dla szerszego odbiorcy - a to głownie za sprawą tego iż tworzyłem je w ramach Hispasec.
Czytaj dalej...
2009-11-23:
confidence:confidence 2.0:lecture:c++:python:security
Poniżej zamieszczam linki do prezentacji (PDF) z mojej prelekcji "Practical security in computer games", oraz wersję 0.0.1 alpha SilkProxy. O tym ostatnim parę słów: jest to multi-tunel napisany w C++, skryptowalny w Pythonie, który może służyć kilku do kilku rzeczy, takich jak analiza protokołu, fuzzing ruchu sieciowego puszczonego przez tunel, czy jako proxy. Wersja którą publikuje to wersja którą używałem podczas badań do prezentacji, i jest to wersja robocza, tj. nie wszystko jeszcze działa jak bym chciał, interfejs jest nieudokumentowany i brakuje jeszcze części funkcjonalności - tak więc póki co jest to raczej ciekawostka dla programistów niż coś z czego faktycznie można korzystać. Niemniej jednak zachęcam do rzucenia okiem (w pliku http.py jest prosty przykład użycia; uruchamia się to ./SilkProxy skrypt.py, samo ./SilkProxy też zadziała; do skompilowania trzeba posiadać pythona z headerami/libami do C, oraz GCC (może być MinGW)) ;>
Czytaj dalej...
2009-11-21:
confidence:lecture:blog
Wczoraj skończył się drugi dzień CONFidence 2.0, a tym samym druga (w tym roku) edycja CONFidence. Siedzę właśnie w pociągu relacji Warszawa-Wrocław (podróż ponad 6 godzin), więc mam troszkę czasu żeby podsumować ostatnie 2 dni, a zarazem dokończyć przerwany wątek.
Czytaj dalej...
2009-11-20:
lecture:confidence:blog
Od wczoraj trwa CONFidence 2.0 i mimo iż jest troszkę mniejsza niż majowa edycja, to w żadnym wypadku nie jest słabsza.
Czytaj dalej...
2009-11-17:
lecture:confidence:reversecraft:blog
Już za dwa zaczyna się kolejna, druga w tym roku, edycja Confidence, oznaczona numerkiem 2.0. W związku z czym standardowo siedzę i "dopracowuje" prezentacje (a tak na prawdę testuje jeszcze ostatnie gry), i zastanawiam się o której pójdę spać... W każdym bądź razie, krótkie 'do zobaczenia na Confidence' dla osób które się tam wybierają, zachęcam do wysłuchania mojej prelekcji (chyba że coś ciekawszego będzie w drugiej sali ;>), oraz krótkie 'do zobaczenia po Confidence' dla reszty czytelników ;>
Czytaj dalej...
Na forum uw-team.org exylum zadał pytanie: "czy znak przy konwersji liczb zmiennoprzecinkowych ("," lub ".") zależy od systemu na jakim pracujemy, ustawień regionalnych itp.?". Ponieważ pytanie mnie zaciekawiło, to trochę poszperałem tu i tam, odpowiedziałem na forum i w końcu stwierdziłem że napisze (metodą Kopiego=Pasta) o tym również tutaj, być może kogoś również to zaciekawi.
Czytaj dalej...
2009-11-13:
easy:windows:re:assembler
Szybkie info. j00ru opublikował wczoraj na swoim blogu tablicę nazw i numerów syscalli Win32k (aka shadow table, wykorzystywanej przez user32.dll, gdi32.dll i DirectX) - http://j00ru.vexillium.org/win32k_syscalls/ (w zasadzie jest bardzo podobna do tej z Metasploit, oczywiście z tą różnicą, że zawiera syscalle win32k, a nie kernelowe). Jeżeli lubisz grzebać w niskopoziomowych rzeczach, to na pewno chcesz rzucić na to okiem!
Czytaj dalej...
Od wczoraj (a w zasadzie przedwczorajszej nocy) w sieci jest głośno o nowym języku programowania, stworzonym przez ludzi z Google. Język nazywa się Go i leży między królestwem języków niskopoziomowych (jak C/C++) a królestwem języków wysokopoziomowych (jak Python, Java czy C#) (twórcy mówią o nim 'system programming language') - czyli próbuje łączyć zalety jednych (kompilacja do kodu natywnego, szybkość działania, etc) i drugich (garbage-collector, natywne wsparcie dla wielowątkowości, etc). Wczoraj wieczorem stwierdziłem, że przetestuje ten język i przeportowałem jeden ze swoich raytracerów na niego. Po tym pierwszym rzucie oka stwierdziłem, że podzielę się paroma przemyśleniami (wszystko zawarte w tym poście należy traktować jedynie jako moją opinię, wyrobioną po około 5 godzinach pisania w tym języku; zastrzegam że opinia może mi się zmienić ;>).
Czytaj dalej...
2009-11-06:
c:c++:code:easy
Jak nauczyły nas stare procesory i kompilatory, if'y bywają kosztowne - każdy if tłumaczony jest na jeden lub dwa skoki (w zależności czy to if czy else if), a skoki miały zwyczaj czyścić kolejkę instrukcji do wykonania w CPU, przez co były dość kosztowne. W związku z czym szukało się innych metod na zapisanie serii if'ów, np. za pomocą operacji matematycznych lub logicznych, które były mniej kosztowne (gdy występowały w niewielkiej ilości) niż skoki które czyściły kolejkę instrukcji. Oczywiście nowe procesory pozwalają na oznaczenie bardziej prawdopodobnych skoków (druga grupa prefiksów, prefiksy 2E (branch not taken) i 3E (branch taken)), a nowe kompilatory C/C++ pozwalają oznaczyć czy warunek w if będzie bardziej czy mniej prawdopodobny (patrz __builtin_expect), a nawet można skorzystać z profilerów i samemu sformułować if'y tak aby testowały zawsze te mniej czy bardziej prawdopodobne warunki (oczywiście trzeba wiedzieć jak kompilator tłumaczy kod, ale nie jest to specjalnie trudne). Niemniej jednak czasami nachodzi człowieka ochota żeby zastąpić parę if'ów jakimś ładnym działaniem matematycznym, a tym samym... utrudnić sobie życie ;>
Czytaj dalej...
2009-11-05:
secday:easy:php:security
Na SecDay 2009 mówiłem m.in. o tym, że PHP może z zewnątrz przyjmować nie tylko stringi (int'y są też przekazywane jako stringi), ale również arraye (tablice). Jak prezentowałem, niespodziewanymi arrayami można wywołać całkiem niezłą masę warningów, a dodatkowo czasami zmylić logikę skryptu i doprowadzić do pewnych nieoczekiwanych przez twórcę rezultatów (osoby które nie widziały prelekcji, zachęcam do jej obejrzenia). Podczas prelekcji pokazywałem kilka raportów z wynikami testu paru funkcji PHP, obiecując że ów raporty udostępnię - co niniejszym czynie.
Czytaj dalej...
2009-11-04:
gamedev:compo:easy
Xa na serwisie GameDev.pl zaproponował compo na stworzenie gry z wykorzystaniem tylko i wyłącznie 3ch raytrace'owanych kul. Czas jest do najbliższej soboty, godz. 23:59.
Czytaj dalej...
2009-11-04:
blog:confidence
Po raz drugi w tym roku odbywa się konkurs CONFidence Security Evangelist, w którym możecie głosować na najciekawsze waszym zdaniem blogi i serwisy poświęcone security, oraz na najbardziej zasłużone persony świata security.
Czytaj dalej...
Postanowiłem przeprowadzić drobny eksperyment, a jednocześnie rozwiązać problem, który mają osoby początkujące, które próbują ze mną porozmawiać w sposób ciągły i "bez-lagowy" (co ostatnio jest nietrywialne, z uwagi na dużą ilość czasu którą poświęcam na pracę/projekty/etc).
Czytaj dalej...
Na sieci znalazł się nowy serwis poświęcony tematyce security - http://niebezpiecznik.pl. Serwis prowadzony będzie m.in. przez Piotrka Koniecznego, co w zasadzie może stanowić gwarancje "ciekawości" materiału oraz szerokiego targetu docelowego, jako że imo Piotrek pisze ciekawie zarówno dla profesjonalistów, jak i dla osób interesujące się bezpieczeństwem tylko hobbystycznie.
Czytaj dalej...
2009-10-28:
reversecraft:re:blog
Opublikowałem szósty odcinek ReverseCraft (serii o reverse engineeringu), w którym pokazuje jak szukać OEP, oraz mówię o sytuacjach w których nie jest to konieczne.
Czytaj dalej...
2009-10-24:
reversecraft:re:blog:assembler
Po niemałych kłopotach technicznych (takich "na własne życzenie" pod tytułem "zmieniłem system na Linuxa i nie wszystko zadziałało jak należy") udało mi się nagrać i opublikować pierwszy odcinek serii ReverseCraft Assembler, traktujący oczywiście o podstawach języka assembler na platformę x86 (32-bit, PM). Odcinek trwa aż 1h 15m, i dedykowany jest dla osób początkujących oraz takich które zacięły się chwilę później, lub czują że nie do końca wiedzą o co w assemblerze chodzi.
Czytaj dalej...
2009-10-21:
blog:code:easy
Bardzo często zgłaszają się do mnie osoby które programują stosunkowo niedługo, lub właśnie rozpoczynające swoją przygodę z programowaniem, i pytają o to jaką książkę bym polecił do języka XYZ, czy znam jakiś dobry tutorial, ewentualnie jak rozwiązać dany problem (np. jak poprawić błąd kompilacji lub błąd logiczny), czy jaką funkcję użyć aby uzyskać określony efekt. Przez ostatnie 10 lat które "spędziłem" w Internecie takich rozmów odbyłem dziesiątki, jeśli nie setki. Tak więc wychodząc na przeciw przyszłym programistom, postanowiłem stworzyć Poradnik początkującego programisty (słowo "poradnik" jest tutaj kluczowe). Zapraszam do lektury!
Czytaj dalej...
2009-10-20:
reversecraft:re:blog
Czas w końcu wygłosić oficjalne stanowisko, jako że zasypujecie mnie pytaniami w komentarzach, na gg/jabberze i mailowo ;>
Czytaj dalej...
2009-10-15:
secday:lecture:icewall:malware:security:bugs
Jak w nazwie tematu:
Czytaj dalej...
Co jakiś czas przychodzi mi do głowy trochę różnych tematów które jakoś nie mogą trafić do oddzielnego posta, a jednak chciałbym się nimi podzielić. Czas na październikową porcję!
Czytaj dalej...
2009-10-12:
lecture:confidence:confidence 2.0
Jak pisałem już wcześniej w tym roku odbędzie się jeszcze jedna edycja (najlepszej Polskiej moim zdaniem) konferencji Confidence, tym razem w Warszawie. Jako że agenda jest już dostępna, to pozwolę ją sobie (jak zwykle) przedstawić i skomentować.
Czytaj dalej...
2009-10-12:
lecture:video:secday:php:security
Zgodnie z obietnicą wrzuciłem online swoją prelekcję z SecDay 2009. Na początek jeszcze pewna uwaga - prelekcja była nagrywana aparatem z wbudowanym mikrofonem, tak że ani jakość dźwięku, ani jakość obrazu nie są najcudowniejsze jakie można sobie wymarzyć. Natomiast nagranie imho da się mimo wszystko oglądać. Korzystając z okazji chciałbym podziękować oshogbo//vx za filmowanie wszystkich prelekcji ludzi z Vexillium i Hispasec: Thx m8! ;>
Czytaj dalej...
2009-09-23:
secday:lecture
SecDay, SecDay, i po SecDay, jak wszystko dobre, niestety i SecDay się skończył. Konferencja była, moim zdaniem, bardzo udana, za równo z punktu widzenia prelegenta (tj. mikrofon mi działał ;>), jak i słuchacza (tj. prelekcje były ciekawe i fajnie poprowadzone ;>).
Czytaj dalej...
2009-09-13:
c:python:perl:ruby:php:easy
Zawsze myślałem że umiem dzielić liczby całkowite i obliczać resztę z takiego dzielenia, ale jak to zwykle bywa, życie zweryfikowało moją ocenę sytuacji, i powiedziało mi "nie umiesz dzielić!". Otóż wziąłem do ręki pewien podręcznik do matematyki (do liceum) w którym definicja dzielenia całkowitego i reszty z dzielenia kapkę odbiegała od mojej. Ofc będąc programistą od razu rzuciłem się do kompa żeby sprawdzić "jak to tam wygląda", i okazało się że nie ma jednej spójnej wersji...
Czytaj dalej...
2009-09-10:
reversecraft:recraft:re
Najpierw zła wiadomość: niestety kolejny odcinek ReverseCraftu ukaże się najprawdopodobniej dopiero po konferencji SecDay. Na szczęście jest również i dobra wiadomość: razem z szóstym odcinkiem ReverseCraftu pojawią się dwa odcinki serii o assemblerze x86. Dodatkowo strona www projektu dostanie kilka dodatków - będzie to (w końcu) możliwość uploadowania zadań via WWW (przyspieszy to cały proces oceniania, choćby dlatego że do kompa na którego będzie upload mam dostęp z każdego zakątka globu, a nie tylko z lab), ranking, oraz shoutbox (tak dla ułatwienia komunikacji między nami). Po za tym dla osób które rozwiążą zadania lub zrezygnują z ich rozwiązywania będą udostępniane dodatkowe odcinki w których pokazuje jak zrobić dane zadanie oraz prezentuje najciekawsze rozwiązania nadesłane przez Was.
Czytaj dalej...
2009-09-04:
conference:confidence:confidence2009
Wygląda na to że, zgodnie z obietnicą orgów, będzie druga edycja Confidence w tym roku, tym razem w Warszawie. I dobrze, Confidence to imo najlepsza polska konferencja dot. security/hacking/etc, więc w żadnym wypadku nie zamierzam narzekać na przesyt ;>
Czytaj dalej...
2009-09-01:
php:security:easy
Czas na kolejną część tematyki PHP internals! Tym razem będzie o popularnym formacie PNG, oczywiście w kontekście obsługi tego formatu przez funkcje getimagesize.
Czytaj dalej...
2009-08-31:
museum:blog:b200:80c88
Dzisiaj coś z zupełnie innej beczki - mój pierwszy laptop. Wbrew pozorom nie był to ani Pentium 1, ani nawet 386, a coś jeszcze starszego, czyli gratka dla osób zainteresowanych informatyczną archeologią.
Czytaj dalej...
2009-08-26:
secday:security:lecture
Agenda konferencji SecDay jest już prawie kompletna, co oznacza między innymi że i ja podesłałem w końcu swój temat ;>. Tym razem będę mówił o czymś na pograniczu web security i standardowego bughuntingu, a konkretniej o "internalsach" PHP z punktu widzenia pentestera aplikacji webowych ("wnętrzności" PHP na moim blogu są ostatnio popularne).
Czytaj dalej...
2009-08-25:
php:security:easy
Czas na drugą część (tak, to oznacza że była część pierwsza ;>) posta o getimagesize. Tym razem skupie się bardziej na tym jak getimagesize robi to do czego została stworzona - czyli jak odczytuje wielkość z poszczególnych formatów graficznych. Będzie również o tym dlaczego getimagesize nie powinno się używać do sprawdzania czy uploadowany plik faktycznie jest obrazkiem.
Czytaj dalej...
2009-08-21:
php:security:easy
Funkcja getimagesize jest, moim zdaniem oczywiście, jedną z bardziej interesujących funkcji wchodzącej w skład standardowego zestawu funkcji PHP (tak, standardowego, mimo iż jej dokumentacja leży w sekcji pełnej funkcji GD). Czemu ta funkcja jest taka interesująca? Po pierwsze, jej implementacja jest długa, a jak wiadomo, dużo kodu = dużo mniejszych lub większych bugów. Po drugie, funkcja ta bardzo często jest wykorzystywana w sposób niewłaściwy, przez co do kodu wprowadzane są pewne interesujące bugi.
Czytaj dalej...
2009-08-19:
re:easy:video:reversecraft
Krótki news: przed chwilą wrzuciliśmy z Unknow'em ReverseCraft #5. Tym razem tematem są packery - prezentuje ogólną zasadę działania protektorów oraz pokazuje jak zrobić prosty packer (w C++). ReverseCraft jak zwykle dostępny jest w formie online oraz do ściągnięcia (linki na stronie z odcinkiem).
Czytaj dalej...
2009-08-14:
compo:code:easy:mininews
Szybkie news: dostałem parę dni temu (thx mulander) info o bardzo fajnym compo organizowanym przez NullCode.pl, a polegającym na rozwiązaniu pewnego zadania programistycznego w jak najmniejszej ilości znaków (tj. kod źródłowy ma mieć jak najmniej znaków). Osobiście uwielbiam tego typu zabawy, więc zachęcam do udziału (a nuż wam też się spodoba). Link do topików z compo: http://nullcode.pl/konkursy-f43.html.
Czytaj dalej...
2009-08-12:
hardware:router:starcraft
Dzisiejszy post będzie trochę z innej bajki. Mianowicie, od jakiegoś pół roku dysponuje nowym routerem typu SOHO w domu - właśnie tytułowym DI-524 (rev.B), który zastąpił wysłużonego DI-604. I od pół roku miałem problem żeby pograć 2v2 w StarCraft'a siedząc z team partnerem po tej samej - wewnętrznej - stronie routera. Aż do wczoraj...
Czytaj dalej...
2009-08-03:
security:windows:medium:re:cpp
Dwa miesiące temu pisałem o trojanach bankowych, o tym że niektóre zmieniają ustawienia DNS, inne dodają listę domen, używanych przez instytucje finansowe, do pliku c:\windows\system32\drivers\etc\hosts. Oczywiście obie z powyższych czynności kończą się przekierowaniem nieświadomego użytkownika na stronę phishingową (i niestety również często utratą pewnej ilości pieniędzy).
Czytaj dalej...
2009-08-01:
reversecraft:re:easy
Z tygodniowym opóźnieniem na sieć trafia kolejny, czwarty wg stosowanej numeracji, odcinek ReverseCraft. Wszelkie informacje o czym jest odcinek, linki do playera i pliku, oraz dodatkowe materiały znajdują się jak zwykle na stronie projektu, czyli re.coldwind.pl.
Czytaj dalej...
Jak w tytule - w końcu zrobiłem kanał RSS na stronce ReverseCraft.
Czytaj dalej...
Dzisiaj będzie o pewnym ciekawym błędzie znalezionym w kodzie znajomego, oraz o pewnym linku znalezionym w refererach. Link prowadził do...
Czytaj dalej...
2009-07-08:
re:easy:video:reversecraft
Z drobnym (no dobra, prawie tygodniowym, więc nie takim drobnym ;>) opóźnieniem na sieć powędrował trzeci eps ReverseCraft - mojego video-kursu reverse engineeringu. Tym razem udało się wszystko ładnie zsynchronizować, i online na raz trafiła wersja do oglądania via www (http://videoarty.pl/play_reverse03_reverse_pamiec_proces_i_pe.html), oraz wersja do ściągnięcia (http://www.uw-team.org/index.php?id=videoarty&dzial=reverse). Dodatkowe materiały, takie jak slajdy, cała masa linków, jakiś kawałek kodu i lista zadań (w tym jedno z przygotowanym przeze mnie EXEkiem) dostępne są jak zwykle na stronie projektu, czyli http://re.coldwind.pl. Miłego oglądania!
Czytaj dalej...
2009-07-05:
php:c:c++:funny:security:malware:windows
Z powodów różnych na moim blogu kapkę cicho się zrobiło ostatnio, ale zapewniam że to przejściowe. Niemniej jednak czas zacząć nadrabiać zaległości, i napisać o tym i owym.
Czytaj dalej...
2009-06-20:
re:reversecraft:easy
Drugi odcinek ReverseCraft trafił na sieć, i jest do ściągnięcia na stronie serwisu UW-Team (jutro lub pojutrze będzie dostępna również wersja do oglądania online). Po za tym stworzyłem pewną drobną stronkę z materiałami do kursu: re.coldwind.pl.
Czytaj dalej...
2009-06-06:
re:security:easy:malware
Tak się zdarzyło ostatnio że wróciłem do analizy trojanów. Powrót został uczczony prawie 24-godzinny maratonem z różnymi zagranicznymi bankerami, i widać że gdy ja zajmowałem się innymi rzeczami, to autorzy trojanów nie spali - wymyślali coraz to nowe metody żeby ich malware był... jeszcze słabiej skonstruowany :p
Czytaj dalej...
2009-06-04:
secday:lecture:wroclaw
Do listy konferencji na których się pojawię został dopisany SecDay. Póki co wiadomo że konferencja ta odbędzie się 21-22 września we Wrocławiu, oraz że organizuje ją ten sam człowiek który organizował SekIT (o którym pisałem) oraz SysDay (o którym również pisałem) - Łukasz Błażys.
Czytaj dalej...
2009-05-27:
security:easy:blog:rant
Czytając ostatnio pewne doniesienia prasowe, czy też posty na pewnych blogach, rzuciło mi się w oczy kilka kwestii, o których postanowiłem poblogwać, a w zasadzie porantować ;D
Czytaj dalej...
W niedzielę po raz kolejny postanowiłem pobawić się w wizualizację plików. Wizualizacja plików to temat długi i szeroki, i nawet są strony jej poświęcone, na których to autorzy prezentują kolorowe bitmapki przedstawiające pliki - często 1 do 1, czyli 3 kolejne bajty w pliku traktowane są jako wartości RGB. W moim przypadku natomiast zamiast RGB, będzie X i Y.
Czytaj dalej...
2009-05-20:
re:easy:confidence:crackme:c++
W końcu jakiś techniczny post! A post poświęcony będzie crackme ESET'u, które to było do połamania na tegorocznej edycji CONFidence z numerkiem 2009. Crackme (przygotowanym specjalnie na confidence) pozwoliłem sobie udostępnić (@Marcin/Jakub w razie czego dajcie znać, to zdejmę ;>), tak aby osoby nieobecne na confi również mogły się pobawić:
Czytaj dalej...
2009-05-19:
confidence:blog
Jak pisałem wczoraj, i zresztą już wcześniej, miałem okazję być na tegorocznym CONFidence i, spoilerując już na samym początku, sądzę że była to najlepsza konferencja na jakiej do tej pory byłem :)
Czytaj dalej...
Witam ponownie po parodniowej przerwie! Wygląda na to że dodanie informacji o binarce uzyskanej od diabla spowodowało wrzucenie mojego bloga na wykop (nie pierwszy raz zresztą), a to z kolei spowodowało znaczy wzrost ilości zapytań, a to z kolei spowodowało kilka crashy apacha na poprzednim (taaak, już poprzednim) hostingu, co spowodowało iż admini wycięli dostęp do bloga ;) Oczywiście, jak to zwykle bywa, zbiegło się to z moim wyjazdem na CONFidence 2009 (świetna konferencja btw, napiszę coś o niej później), więc nie mogłem natychmiast zareagować ;(
Czytaj dalej...
2009-05-13:
botnet:security:easy
Znajomy (hi diabel! (nie, to nie znaczy że jestem wyznawcą szatana) UPDATE: widziałem propozycję by 'hi diabel' zmienić na 'ave satan', ale chyba nie przejdzie ;D) podesłał mi screena i pewien pliczek. W skrócie: wygląda na to że ktoś zbiera sobie zombie na NK huh. Zacznijmy od screena:
Czytaj dalej...
2009-05-12:
windows:bat:re:winapi:easy:asm:c:c++:tools
Wczoraj j00ru dał mi znać że mój add-on do cmd.exe, dodający jakże to ważną funkcjonalność (tj kolorki), nie funkcjonuje poprawnie na Windows 7 RC - w związku z czym rzuciłem okiem, i tak oto powstała wersja 0.004d!
Czytaj dalej...
2009-04-29:
re:easy:video:reversecraft
Wczoraj wieczorem została upubliczniona 3cia i zarazem ostatnia część pierwszego odcinka mojego kursu, a w zasadzie serii videotutoriali, o reverse engineeringu. Ostatnia część dostępna jest tam gdzie zwykle, czyli na serwisie uw-team.
Czytaj dalej...
2009-04-28:
asm:easy:boot:blog
Pewnego razu Xa, który bardzo lubi eksperymentować z OS'ami, chciał zainstalować dodatkowy system operacyjny - nazwijmy go "Gamma System" - na swoim komputerze, na którym był już pewien system - nazwijmy go "Alpha OS". Traf chciał że za równo "Gamma System" jak i "Alpha OS" nie miały boot loaderów które pozwoliły by wybierać który system ma być bootowany, a w dodatku, każdy loader był na tyle indywidualny, że to właśnie on musiał zostać użyty - więc powstał problem. Oczywiście, jak to zwykle bywa, użycie LILO czy GRUB odpadało z przyczyn różnych. W związku z czym dostałem questa - zrobić żeby to jakoś działało.
Czytaj dalej...
2009-04-26:
reversecraft:re:easy
Wczoraj wczesnym rankiem (a tak na prawdę późną nocą) na UW-team.org została umieszczona druga część pierwszego odcinka mojego kursu RE.
Czytaj dalej...
2009-04-22:
re:easy:video:reversecraft
Wczoraj wieczorem na serwisie UW-Team pojawiła się pierwsza część (a tak na prawdę to pierwsza część pierwszej części - pierwszy odcinek ma 3 części po 30-40 minut) mojego kursu poświęconego Reverse Engineeringowi (nazwanemu Reverse Craft). Videoart chwilowo dostępny jest tylko do pobrania, ale pewnie niedługo będzie można go również oglądać online (jak tylko będzie stream to dam linka - pewne kłopoty z wielkością video są). Pierwszy odcinek ma być niejako poglądowy i pokazać 'o co w tym RE chodzi' - kolejne odcinki będą miały charakter bardziej edukacyjny ;>
Czytaj dalej...
2009-04-19:
seconference:lecture:security
Wczoraj wieczorem wróciliśmy z Krakowa, a konkretniej z wyjazdu na SEConference 2009 - konferencji o której się rozpisywałem już wcześniej. W dużym skrócie, konferencja na prawdę dała radę - poziom był niezły, prelekcje bardzo ciekawe - szczególnie podeszły mi wykłady (w kolejności chronologicznej) Piotr Łaskawca o web fuzzingu, Piotra Koniecznego o haxxowaniu fizycznych urządzeń codziennego użytku (automaty do koli, windy, czytniki kodów, takie tam) oraz Borysa Łąckiego o sumkach które krążą w undergroundzie (tj. ile trzeba zapłacić na wynajęcie botnetu, etc.). Inne wykłady również trzymały poziom, więc podsumowując, konferencja była na prawdę dobra (szczególnie że była darmowa)!
Czytaj dalej...
2009-04-15:
seconference:lecture
Ostatnio coś mało postów się tu pojawia, ale proszę się nie martwić - to sytuacja przejściowa ;>. W piątek rozpoczyna się krakowska konferencja SEConference, o której zresztą już pisałem, i to nie raz. Jak też pisałem, będę tam mówić o "Praktycznym podejściu do testowania bezpieczeństwa implementacji obsługi formatów danych" (tak tak wiem, przesadziłem z długością tematu, ale spoko, postaram się żeby był ciekawszy niż brzmi). Co ciekawe, na konferencje zarejestrowało się około 170 osób, i to w pierwsze 2 tygodnie rejestracji (potem rejestracje orgowie musieli zamknąć z powodów lokalowych)!
Czytaj dalej...
2009-04-05:
asm:easy:c++:debuging:gdb
Wyrażenie "assemblerowe źródło" mi jakoś nie leży, ale po 15 minutach straconych na próbę wymyślenia czegoś lepszego, co określało by źródło kawałka funkcji stworzonej w assemblerze, i jednocześnie było dość zwięzłe, stwierdziłem że musi zostać. Wracając do tematu, a w zasadzie dopiero go rozpoczynając, dzisiaj będzie o pewnym sposobie którym się wspomogłem podczas gonitwy za bugiem w pewnej dość rozbudowanej funkcji napisanej w asmie (dialekt NASM). Ów funkcja miała wyszukiwać w obrazie biblioteki (w pamięci, MACH-O) adres podanej metody z podanej klasy (objc), z podanej biblioteki na OS X, i składała się z trzech czy czterech zagłębień pętli. No i oczywiście nie działała jak należy, a ręczne debugowanie tego przyjemne nie było (potem się okazało że cały pomysł nie do końca działa, ale to historia na inny dzień).
Czytaj dalej...
2009-03-31:
blog:security:windows:sysday:medium:lecture
Wczoraj, we Wrocławiu, rozpoczęła się konferencja SysDay 2009, o której pisałem już wcześniej. Pojawiło się masę ciekawych osób, było kilka ciekawych prelekcji - m.in. zawsze ciekawa prelekcja Dariusza Puchalaka o SSH, prelekcja o socjotechnice prowadzona przez Rafała Podsiadłego - która co rusz przeradzała się w żywą dyskusję, prelekcja Sławomira Kobusa z F-secure o Symbian OS (bardzo inspirująca swoją drogą, muszę się przyjrzeć temu systemowi) oraz prelekcja Michała Majchrowicza o m.in. XSSach (huh, nie wiedziałem że można użyć /asdf/ zamiast "asdf" - np. javascript:alert(/asdf/)... ciekawie wyszło moim zdaniem ;>). Tego dnia również ja miałem swoją prelekcję, którą udało mi się jakoś wychrypieć (jestem kapkę przeziębiony, i szczerze się bałem że stracę głos podczas prelekcji... na szczęście orgowie zorganizowali mi szklankę ciepłej wody, i udało się stracić głos dopiero PO prelekcji ;D).
Czytaj dalej...
2009-03-24:
blog:igk:gamedev:gdpl
Kilkudniowa konferencja Inżynierii Gier Komputerowych 2009 organizowana przez Akademie Podlaską (w Siedlcach) dobiegła końca - wczoraj późnym wieczorem trafiłem z powrotem do Wrocławia, a teraz próbuje ogarnąć sprawy które przez te kilka dni się nazbierały. (Tak na prawdę kilka już ogarnąłem, i zrobiłem krótką przerwę żeby naklepać tego posta ;>).
Czytaj dalej...
Na GDPL pojawiły się wyniki (dostępne również tutaj). Zgodnie z moimi przewidywaniami Krzysiek K. zasłużenie wygrał ;>. Drugi był maskl ex aequo ze mną, a trzeci Reg. Pełna lista miejsca znajduje się poniżej:
Czytaj dalej...
2009-03-16:
gamedev:c++:opengl:windows:linux:easy:game
Wczoraj wieczorem od godziny 17:00 do 20:00 odbyło się trzygodzinne compo zorganizowane przez GDPL (a konkretniej przez meehav'a). Tematem przewodnim była 'gra w której jest za równo świnia jak i krowa' (oryginalny temat, przyznaje). Mimo ogólnego braku czasu, stwierdziłem że 3h w niedzielę wieczorem znajdę, i (po akceptacji propozycji przez górę - czyli moją ukochaną żonę ;>) również udało mi się wziąć udział.
Czytaj dalej...
2009-03-14:
macosx:objc:easy:re
Nadszedł dzień w którym rzuciłem w końcu okiem na programowanie aplikacji niekonsolowych na Mac'a. Aplikacja na Maca zazwyczaj tworzy się przy użyciu języka Objective C (z którym jeszcze styczności nie miałem) oraz API Cocoa (OSX'owski odpowiednik WinAPI; kiedyś był jeszcze Carbon). Z punktu widzenia programisty składnia Objective C bardzo mi się spodobała, ale przyznaje szczerze, że Objective C z punktu widzenia RE jest jeszcze ciekawsze ;>
Czytaj dalej...
2009-03-11:
security:macosx:easy
Jak moi stali czytelnicy wiedzą, od jakiegoś czasu dysponuje MacBookiem z OS X'em. W końcu stwierdziłem że fajnie byłoby sprawdzić jak wygląda exploiting standardowych rodzajów błędów na OS X'ie. Muszę przyznać że raz czy dwa OS X mnie pozytywnie zaskoczył. Natomiast ten post będzie o innym "razie", gdy niespodzianka nie była pozytywna (pod względem bezpieczeństwa), ale niewątpliwie była (hermetycznie) komiczna ;>
Czytaj dalej...
2009-03-09:
c++:medium:assembler:windows:linux:macosx
Historia zaczyna się jak zwykle. Pisałem pewną aplikację, która generowała pewne pliki testowe. Pliki były do siebie podobne, więc wyciągnąłem wspólny czynnikprzed nawias - zrobiłem generowanie wspólnej podstawy pliku, a potem porobiłem funkcje które zmieniały podstawowy plik (file shader, tylko w GF 15200 GTX! ;>), po czym ów nowy plik był zapisywany. Oczywiście musiałem posiadać pewną tablicę/wektor z tymi funkcjami, którą grzecznie uzupełniałem o każdą dopisaną funkcję. Po 38 funkcji się znudziłem...
Czytaj dalej...
2009-03-07:
seconference:lecture
Kolejna konferencja na której pojawię się jako "ekspert" (ekspert (rzeczownik) - człowiek przyjeżdżający spoza miasta i pokazujący slajdy LUB człowiek który zrobił wszystkie możliwe błędy z danej dziedziny) to SEConference. Tak że trochę o niej pospamuj^H^H^H^H^H^H^H^H napiszę, a nóż ktoś się pojawi na moim wykładzie :D
Czytaj dalej...
2009-03-06:
lecture:sysday
Stara egipska zasada mówi: "jeśli masz 10 minut na napisanie posta na blogu, i nie wiesz co napisać, to napisz o jakiejś konferencji", tak więc, napiszę co nie co o SysDay 2009.
Czytaj dalej...
W poprzednim poście pisałem o narzędziu do pomiaru entropii, natomiast kwestię "po co komu pomiar entropii" zostawiłem wtedy na któryś kolejny post. Czas ów postu właśnie nadszedł.
Czytaj dalej...
2009-03-02:
re:entropy:easy:c++
Jest pewien tool, stworzony przeze mnie i j00ru, który już jakiś czas temu miałem wrzucić na sieć, ale jakoś tak kod był niepiękny, i nigdy nie było czasu żeby go uładnić. Aż w końcu w weekend będąc u rodziców wziąłem laptopa i przepisałem kod na czysto.
Czytaj dalej...
2009-02-21:
blog:easy:spam
Ostatnio pisałem o spamie w polu referrer nagłówka HTTP - ktoś wymyślił żeby wrzucać tam linki (czasem okraszone BBCodem) prowadzące do sklepów z viagrą, penisami, i powiększaniem zegarków. Najwyraźniej nadeszła nowa, lepsza, fala ów spamu - od wczoraj u mnie w referrerach pojawia się, nie jeden, a kilka linków do różnych sajtów, z czego ostatni to jakaś podstrona mojego bloga, pierwsza to spam, a czasem pojawia się jeszcze jakaś inna niezwiązana stronka.
Czytaj dalej...
2009-02-18:
sysday:igk:blog:confidence:seconference
W najbliższym czasie w Polsce odbędzie się kilka ciekawych (tj takich które planuje odwiedzić, więc wg mnie są ciekawe) konferencji, i stwierdziłem że napiszę parę słów o nich - a nóż któryś z czytelników się skusi pojawić, i będzie okazja do wspólnego napicia się soku pomarańczowego, czy innego piwa.
Czytaj dalej...
2009-02-10:
easy:blog:funny
Ostatnio mam trochę na głowie, więc i wpisów na blogu niedużo. Ale stwierdziłem że uzbierało się kilka drobnych tematów które nie zajmą mi za wiele czasu, więc o nich napiszę.
Czytaj dalej...
2009-02-03:
excphook:re:windows:security:c++
Wczoraj udało mi się posiedzieć chwilkę nad ExcpHook'iem, w związku z czym prezentuje dzisiaj wersję 0.0.5-rc2 (to jest drugi release candidate wersji alpha 0.0.5, tak, wiem, mam dziwne numerowanie wersji).
Czytaj dalej...
2009-02-02:
easy:security:funny
Dostałem właśnie, na mejla firmowego, taki oto spam:
Czytaj dalej...
2009-02-02:
winapi:windows:c++:easy:re
Sprawiłem sobie parę dni temu książkę "Windows Via C/C++ (Wydanie piąte)" by Jeffrey Richter i Christophe Nasarre, ot tak aby doszlifować moje WinAPI. Pomysł zakupu okazał się bardzo dobry - już na 50 stronie znalazłem pewną przydatną reverserowi ciekawostkę, którą pozwolę sobie zacytować:
Czytaj dalej...
2009-01-31:
medium:windows:c++:asm:security:buffer overflow:return-oriented exploiting
Dzisiaj będzie trochę strikte technicznego security - napiszę co nie co o technice zwanej "return-oriented programming" lub "return-oriented exploiting" lub "ret-to-libc bez wywołań funkcji" lub "ret-to-anything". Jak zwykle podzielę się swoimi spostrzeżeniami co do ów techniki, ponieważ jak zwykle papierki zacząłem czytać po użyciu techniki, zamiast przed nią (to to moje upodobanie do odkrywania koła na nowo).
Czytaj dalej...
Jak widzicie, Xa zgodnie z "groźbą" dostarczył nowy lay ;> Pewne rzeczy jeszcze nie są do końca ostylowane, a i jakieś poprawki w ostylowanych już rzeczach się pewnie też trafią. Ale ogólnie nowy lay _jest_.
Czytaj dalej...
Kilka dni spokoju ode mnie było (przeziębienie i takie tam). Czas z tym Skończyć :D
Czytaj dalej...
2009-01-20:
win7:windows:winapi:easy:re
Zrobiłem jeszcze parę porównań w exportach między Windowsem Vista SP1, a Windowsem 7 beta.
Czytaj dalej...
Dzisiejszy post nie będzie już o cmd.exe i BATach. Zamiast tego dzisiaj będzie trochę rysowania w C++, a konkretniej rysować będziemy nie my, a funkcje sin oraz cos.
Czytaj dalej...
2009-01-16:
windows:bat:re:winapi:easy:asm:c:c++
Begin teh Update
Czytaj dalej...
2009-01-14:
bat:windows:easy:opengl:c++
Zgodnie z obietnicą, dzisiaj będzie o wykorzystaniu OpenGL w skryptach .BAT. Chciałbym jednak od razu przypomnieć, że .BAT z szybkością dużo wspólnego nie ma ;> (mimo to pod koniec co nie co o optymalizacji napiszę i tak).
Czytaj dalej...
2009-01-11:
win7:windows:winapi:easy:re
W końcu od wczoraj oficjalnie (bo nieoficjalnie już od jakiegoś czasu) można ściągnąć Windows 7 wersję BETA. Ściągnąłem, zainstalowałem (ładnie wygląda), i zacząłem grzebać.
Czytaj dalej...
2009-01-10:
bat:windows:medium
UPDATE: Zgodnie z obietnicą (z końca tego postu) wrzuciłem post o OpenGL w .BAT.
Czytaj dalej...
2009-01-09:
blog:amiga600:rant
Nie wiem co jest z tym tygodniem, ale co wpadnie mi w ręce jakiś nowy kawałek sprzętu, to muszę spędzić sporo czasu próbując go uruchomić (a wszystko przez software!).
Czytaj dalej...
2009-01-03:
cpc464:basic:easy
Noc się skończyła, i dane przesyłane z CPC na PCta również skończyły się przesyłać (zrzut pamięci, jeśli kogoś interesuje, można ściągnąć tutaj). Kod z CPC również przepisałem - listing jest na końcu postu.
Czytaj dalej...
2009-01-02:
cpc464:easy:windows:c++:winapi
W oczekiwaniu na nowy programator (który pewnie przyjdzie "pod koniec tygodnia") stwierdziłem że przydałoby się przerzucić zrzut RAM'u z Amstradzika na PCta. Powstało pytanie - jak to zrobić nie mając żadnych kabelków, dyskietek, etc? Okazuje się że jest pewien (pewnie nie jeden), bardzo zabawny moim zdaniem, sposób ;D
Czytaj dalej...
2008-12-30:
cpc464:easy:basic
Ogólnie rzecz biorąc, dobrze jest mieć żonę. A szczególnie taką, która znajduje w przysłowiowej szafie starego Amstrad-Schneider CPC 464 (64k Colour Personal Computer). Tak więc dostałem nową zabawkę (yeey kolejna ciekawa architektura do rozpoznania ;D), o której pewnie kilka postów z czasem się pojawi.
Czytaj dalej...
W menu po prawej w sekcjach (pod linkami do postów) dodałem link do działu z małymi kawałkami kodu które kiedyś tam naklepałem. Są to raczej proste rzeczy, przeznaczone dla bardziej początkujących czytelników, ale z czasem postaram się tam jakieś ciekawostki też powrzucać.
Czytaj dalej...
Jakiś tydzień temu czytałem na pewnym forum długi post o grach które pojawiły się w ciągu ostatnich 18 lat:
Czytaj dalej...
2008-12-16:
re:malware:windows:security:easy
W moje ręce dostał się pewien szkodnik, którego najciekawszym punktem był entrypoint użyty do uruchomienia szkodnika po reboocie systemu.
Czytaj dalej...
2008-12-07:
assembler:macosx:easy
Panowie z Apple chyba lubią stare toolsy. Ostatnio grzebiąc z Unavowed'em przy pewnym projekcie (o którym napisze przy innej okazji), a konkretniej, próbując ów projekt przeportować na Mac OS X'a, natrafiliśmy na pewną przeszkodę która przedstawiła się nam jako Apple Inc version cctools-698.1~1, GNU assembler version 1.38. Jest to defaultowy assembler (as) używany na (aktualnym) Mac OS X, i najwyraźniej pamięta on jeszcze czasy gdy na chleb mówiłem 'bep' a na muchy 'tapty' (oby to 1.38 oznaczało tylko inną numeracje, ponieważ - dla porównania, obecna wersja wg. wiki to 2.19, mój MinGW twierdzi że ma wersje 2.18.50, w roku 2000 była wydana wersja 2.11, a w obecnym changelogu as najstarszy wpis dotyczy wersji 1.93.01).
Czytaj dalej...
Na moją skrzynkę trafiły dzisiaj dwie identyczne spamowe oferty pracy, które wyglądały następująco:
Czytaj dalej...
2008-11-22:
c++:assembler:windows:winapi:medium
Siedząc w pokoju hotelowym na PyCONie naszło mnie żeby sprawdzić co się dzieje jeśli wyczyści się procesowi całą pamięć (lub proces sam sobie ją wyczyści). "Wyczyści" w znaczeniu uwolni co się da (VirtualFree oraz UnmapViewOfFile), a resztę w miarę możliwości wyzeruje. Eksperyment miał za zadanie sprawdzić przy okazji jak zareaguje na to system, oraz inne aplikacje.
Czytaj dalej...
2008-11-06:
c++:gfx:code:easy
Niecałe pół roku temu stwierdziłem że przydała by mi się animowana tapetka, generowana realtime, ale bez użycia akceleracji 3D (tj. bez OpenGL/D3D). Dodatkowymi założeniami był FPS - mógł być bardzo niski, na poziomie 2-3 klatek na sekundę, oraz wykorzystanie kilku core'ów (do 4rech). Jak to w życiu bywa, naklepałem troszkę kodu, po czym zająłem się innymi rzeczami. Efekt może powalający nie wyszedł, ale zdecydowałem się i tak opisać to co mi wyszło - może kogoś to zainteresuje ;> (na obrazki, z wyjątkiem height mapy, można klikać; kod źródłowy dla Windowsa/Maca/Linuxa i filmik są na końcu postu).
Czytaj dalej...
2008-10-24:
lecture:issa:chrome:easy
Miałem dzisiaj przyjemność prowadzić prelekcje na Wrocławskim spotkaniu ISSA. Prezentacja wraz z filmami dostępna jest tutaj. Wszelkie uwagi mile widziane, szczególnie te krytyczne ;>
Czytaj dalej...
2008-10-22:
vista:windows:winapi:c:c++:format bug:security:easy
Rozmawiałem ostatnio z oshogbo z mojego teamu o format bugu, i gdy doszliśmy do testowania przykładowego kodu, okazało się że to co powinno działać - tag %n, nie działa. Co ciekawe, problem wydawał się dotyczyć jedynie Windowsa Vista, ponieważ na XP wszystko śmigało aż miło. Postanowiłem kapkę wgłębić się w problem, i oto co się dowiedziałem...
Czytaj dalej...
2008-10-20:
re:malware:windows:security:easy:winapi
Jakiś czas temu analizowałem pewien malware, na który nałożony został bardzo ciekawy paker...
Czytaj dalej...
2008-10-13:
c:c++:race condition:windows:easy:winapi
Dzisiaj będzie post wyrwany z kontekstu. Post będzie dotyczył funkcji gettimeofday na Windowsie, a raczej jej braku.
Czytaj dalej...
Jakoś tak mam zwyczaj ostatnio newsy zaczynać od "no, w końcu mam chwilę czasu żeby coś napisać". Tym razem... nie będzie inaczej ;D
Czytaj dalej...
2008-09-30:
re:easy:windows
Wygląda na to że 13 października zaczyna się pierwszy etap Hacker Challenge - amerykańskiego konkursu dla RE. Z tego co widzę w tym roku o połowę obcięli wysokość nagród, widać kryzys faktycznie im zalazł za skórę. Anyway, zachęcam RE do zainteresowania się tym konkursem - wszystkie miejsca są nagradzane.
Czytaj dalej...
2008-09-30:
security:easy
W piątek w nocy C++ mnie wchłonęło, i wypuściło dopiero w poniedziałek rano (z krótkimi przerwami na sen, i na skok do kina na Babylon A.D., który moim zdaniem jest całkiem niezły, i bardzo klimatyczny, chociaż zakończenie... cóż, widać że studio skróciło film o 70 minut wbrew woli reżysera, nic tylko czekać na wersję reżyserską), więc dopiero teraz kolejny obiecany post hehe.
Czytaj dalej...
2008-09-25:
security:easy
Trochę się u mnie sprawy uspokoiły, więc wracam do opisywania zadanek z tegorocznego SD6. Z uwagi na późną godzinę dzisiaj opisze tylko jedno, a opisy kolejnych znajdą się w następnych dniach. Dodam że polskojęzyczni czytelnicy mogą znaleźć rozwiązania na oficjalnym forum SD6, natomiast, z uwagi na to że większość zadań była skonstruowana tak, że istniało kilka rozwiązań, oraz z uwagi na fakt iż mojego bloga czytają również osoby nie związane z językiem polskim, i tak opisze zadanka z SD6 po swojemu ;>
Czytaj dalej...
Nadal jestem niestety trochę przeziębiony, i większość czasu spędzam kurując się, więc ponownie krótki news (ale mam nadzieje że jutro już coś ciekawego merytorycznie napiszę).
Czytaj dalej...
Szybki news. Wrzuciłem na server moją prezentacje (z filmikami) z SekIT (24mb).
Czytaj dalej...
Za jakieś dwie godziny wyruszam (razem z kanedaaa) na SekIT, nową konferencję z działki bezpieczeństwa komputerowego. Jakoś tak wyszło że tym razem jako prelegent - czyli będę przez 45 minut się produkował na scenie ku uciesze (taką mam przynajmniej nadzieje) publiki ;> A mówił będę o bankerach, czyli trojanach bankowych. Będzie ogólny przegląd, kilka filmików, i sporo machania rękami. Prezentację z filmikami wrzucę po SekIT gdzieś tutaj.
Czytaj dalej...
2008-09-10:
security:easy
Dziś wieczorem rozpoczęła się druga część etapu 1, więc mogę w końcu napisać coś o zadaniu pierwszym.
Czytaj dalej...
2008-09-10:
rant:easy:chrome
Post będzie trochę ostrzejszy niż zwykle.
Czytaj dalej...
2008-09-09:
security:rant
Jak zainteresowanym wiadomo, wczoraj o 20 rozpoczął się pierwszy dzień interenetowego etapu Security Days 6. Termin nadsyłania zadanek wstępnie został ustalony na dzisiaj na godzinę 21, jednak z powodu ataku (DDoS podobno) na główną stronę konkursu został przesunięty na jutro na 21. Cóż, szkoda, bo chciałem opisać już dzisiaj pierwsze zadanie praktyczne, które było moim zdaniem odpowiednie na dzień pierwszy - dość proste, ale nawet ciekawe. Cóż, niestety będę mógł o tym napisać dopiero jutro ;>
Czytaj dalej...
2008-09-08:
security:easy:chrome
Pod moim postem o sandboxie w Chrome (po angielskiej stronie bloga) wdałem się w dyskusję z AlienRancherem czy hookowanie funkcji (czy tez 'przechwycenia' jak to Google określa) są faktycznie mechanizmem bezpieczeństwa. Szczerze powiem że wydawało mi się że tak, i nawet spodobał mi się ten pomysł. Natomiast okazało się iż faktycznie hookowanie funkcji służy do zapewnienia kompatybilności z pluginami (bo chyba nie samego renderera?) które nie radzą sobie w przyciętym środowisku. Tak na prawdę więc hookowanie funkcji służy ewentualnemu zezwoleniu na dostęp do niektórych plików/kluczy do których plugin w restrykcyjnym środowisku nie miałby dostępu, a do których dostępu by wymagał żeby poprawnie działać.
Czytaj dalej...
2008-09-06:
security:easy:chrome:windows
Przy okazji pojawienia się ponownie informacji o tym że Google Chrome ściąga pliki bez pytania na bugtraq wznowiła się dyskusja o tym czy jest to bug, feature, czy może vuln (luka w bezpieczeństwie).
Czytaj dalej...
2008-09-05:
chrome:security:buffer overflow:windows
Krótka ciekawostka. Na liście FD pojawiło się info o Remote Buffer Overflow w Chrome (by Le Duc Anh - SVRT - Bkis), wymagającym jednak nieznacznej ingerencji usera - kliknięcia 'Zapisz jako...' (buffer overflow ma miejsce w obsłudze tagu <title>). Researcher udostępnił dwa exploity PoC, jeden uruchamiający kalkulator (dostosowany podobno pod XP SP2, jednak u mnie coś on nie działa), oraz drugi po prostu crashujący cały browser. Należy zaznaczyć że CAŁY chrome się crashuje, a nie tylko pojedynczy tab - widać błąd ma miejsce w browserze, lub jest w jakiś magiczny sposób przenoszony z renderera do browsera.
Czytaj dalej...
2008-09-04:
chrome:easy:windows:security:re
Wczoraj miałem okazję się przyjrzeć 'piaskownicy' zawartej w Google Chrome. Ale po kolei...
Czytaj dalej...
Coś dzisiaj szał na pisania o nowo-wydanej przeglądarce Google, więc i ja coś napiszę, a co ;>
Czytaj dalej...
Kolejny post z cyklu 'w co można pograć w wolnym czasie'. Dzisiaj będzie o Urban Terror - freeware'owym FPS na opensource'owym engine'ie Quake 3 (tak na prawdę UrT jest modem typu total-conversion do Q3).
Czytaj dalej...
Po prawej stronie w menu pojawił się dział Projects. Wrzuciłem do niego na razie jeden projekt z początku tego roku - wirtualną maszynkę stworzoną na potrzeby pewnego compo.
Czytaj dalej...
2008-08-28:
security:easy
2008-08-26:
security:easy:blog
Bardzo krótki news...
Czytaj dalej...
2008-08-26:
windows:winapi:c:c++
Zainspirowany postem noglorp'a na OpenRCE zdecydowałem się pobawić w końcu fiberami pod Windowsem, i okazało się że to całkiem interesujący temat.
Czytaj dalej...
2008-08-25:
python:c++:easy
Jakieś 14 lat temu dorwałem w swoje łapki UFO: Enemy Unknown (w USA wypuścili grę pod zmienionym tytułem X-COM: UFO Defense, wolę europejski tytuł), strategiczno-ekonomiczno-taktyczną grę wydaną przez jednego z ówczesnych liderów rynku gier komputerowych - firmę Microprose (firma wypuściła takie tytuły jak choćby Civilization, Colonization czy Transport Tycoon). Gra była solidna, za równo od strony fabularnej, graficznej, jak i samego gameplay'u. Gra polegała na kierowaniu organizacją zwalczającą wrogich najeźdźców z kosmosu, za równo od strony strategiczno-ekonomicznej (budowa baz, badania, etc), jak i taktycznej (sterowanie pojedynczymi jednostkami na polu bitwy). UFO:EU doczekał się drugiej części (opartej na tym samym engine'ie) - mowa o X-COM: Terror from the deeps, która sprowadzała akcję pod wodę. Potem była część 3cia - X-COM: Apocalypse (na nowym silniku), która ograniczyła świat gry do jednej metropolii, i niestety wtedy też rozstałem się ze serią (coś mi nie podeszła ta 3cia seria, straciła na klimacie imho).
Czytaj dalej...
2008-08-18:
c:c++:assembler
Ostatnio miałem okazję tworzyć w C++ (MinGW g++) pewną małą bibliotekę do runtime-patchów. W pewnym momencie zaszła potrzeba stworzenia funkcji w całości w assemblerze, bez żadnych dodatków ze strony kompilatora, czyli po prostu chodziło o funkcję "naked". Niestety, o ile kompilatory rodem z Redmond udostępniają atrybut __declspec(naked) dla x86 [Visual C++ Language Reference - naked (C++)], to kompilatory z GNU Compiler Collection obsługują "naked" jedynie w portach kompilatorów dla ARM, AVR, IP2K i SPU [Using the GNU Compiler Collection (For GCC version 4.3.0) - Function Attributes]. Powstał więc pewien problem który miałby kilka rozwiązań:
Czytaj dalej...
Witam na moim nowym blogu!
Czytaj dalej...