Windows Internals: Dziwne parsowanie ścieżek

Kilka miesięcy temu trafiłem na intrygujący problem z obsługą ścieżek w systemie Windows. Jak się okazało odkrycie to jest dobrze znane w środowisku deweloperów blisko związanych z bebechami tego systemu, ludziom zajmującym się inżynierią wsteczną, bezpieczeństwem i różnym badaczom… Można powiedzieć, że tak naprawdę to nic nadzwyczajnego, dlatego aż dziwne, że wcześniej nie trafiłem na … Czytaj dalej Windows Internals: Dziwne parsowanie ścieżek

AVR w Visual Studio

Visual Studio jest najlepszym środowiskiem IDE pod Windowsem. I nie tylko do windowsowych projektów czy współpracy z kompilatorami dołączonymi w zestawie. Samo IDE może być wykorzystane na różne sposoby, a szczególnie przy użyciu projektu typu Makefile, gdzie można podpiąć dowolne skrypty czy pliki make, używane do budowania projektu. Dosyć często z tej metody korzystałem w … Czytaj dalej AVR w Visual Studio

Syringe – moja mała strzykawka (kodu)

Wydobywając kod firmware z kodu procesu Sealogic (SaeLog #4), w jednym z możliwości związanych z hookowaniem transmisji USB, wspomniałem o technice wstrzykiwania kodu do uruchomionego procesu, wykorzystującej popularną metodę ze zdalnym wątkiem (CreateRemoteThread). Sugerując przy tym wykorzystanie dostępnych w sieci injectorów lub napisanie czegoś własnego. Od tego czasu, w wolnych chwilach, próbowałem okiełznać i uporządkować … Czytaj dalej Syringe – moja mała strzykawka (kodu)

Windows Internals: LastErrorToBreakOn

W kodzie Windowsa można znaleźć czasem ciekawe fragmenty, które skrywają pomocne mechanizmy i sposoby ułatwiające debugowanie różnych elementów, nie tylko systemowych. Część, jeśli nie wszystkie, takie wstawki nie są nigdzie udokumentowane. Zatem nic dziwnego, że dziś znów trafiłem na kolejny taki trick w kodzie systemowym. Mowa tutaj o conditional breakpoint przy ustawianiu kodu błędu, co … Czytaj dalej Windows Internals: LastErrorToBreakOn

Sekcje i segmenty w plikach wykonywalnych (PE)

Mała przerwa od serii zabaw kodem analizatora logicznego. W ostatnim wpisie o ekstrakcji kodu firmware (SaeLog #4) wspomniałem o kilku innych, ciekawych tematach. Jednym z nich była kwestia związana z przechowywaniem stałych danych w sekcji .rdata, o których teraz chciałbym nieco więcej powiedzieć. A szczególnie o tym jak pisanie kodu rzutuje na generowany przez kompilator/linker … Czytaj dalej Sekcje i segmenty w plikach wykonywalnych (PE)

Blood2: Analiza cracka

Kolejna część dotycząca mojej starej ulubionej (ostatnio) gry, którą potraktowałem jako narzędzie analizy i zabawy w reverse enginering. Jak wspomniałem w poprzedniej (pierwszej) części, miałem problem ze znalezieniem odpowiedniego programu neutralizującego wymóg posiadania płyty CD. A wszystko na co trafiłem było jednosegmentowymi aplikacjami DOS-a. A jak wiadomo Windowsy 64-bitowe nie posiadają już subsystemu do odpalania … Czytaj dalej Blood2: Analiza cracka

Blood2: Crack me!

Jak zapewne niektórzy zauważyli na moim twitterze, (który staje się mini blogiem), ostatnio – tweet – uruchamiałem taką starą, wspaniałą grę z przełomu milenium, jaką jest Blood2: The Chosen. W młodości trochę w nią grywałem, jakiś sentyment pozostał. A że chciałem się trochę zrelaksować w weekend, a przy okazji spróbować skonteneryzować i uruchomić tą gierkę … Czytaj dalej Blood2: Crack me!

Co słychać w nadchodzącym C++14

Powolnymi, acz zdecydowanymi krokami zbliża się nowy standard języka C++ oznaczony jako C++14. Niektórzy jeszcze nie oswoili się z C++11, a biznes ciągle w epoce kamienia łupanego – C++98/03, bądź „C z klasami”. A tutaj wkrótce kolejna dawka nowości i emocji. Od czasu wejścia obecnego standardu, komitet nieźle przyspieszył, można powiedzieć, że wreszcie chce nadążać … Czytaj dalej Co słychać w nadchodzącym C++14

QTestSuite

Żeby nie było jakiś nieporozumień, nie przepadam za Qt, pewnie wszyscy odwiedzjący mnie czytelnicy już się domyślili, albo i nie, że preferuję wx-y. Tak wolę wxWidgets, nie lubię Qt-a. To nie znaczy, że w wielu komercyjnych projektach nie korzystałem z tego frameworka, ale prywatnie raczej nigdy nie będę. Od dawno już utożsamiam się z indoktrynacją … Czytaj dalej QTestSuite

Monitorowanie OPS

W poprzedniej notce, namawiałem do eksperymentów, które mogłyby uprościć proces i implementację przedstawionego tam sposobu limitowania operacji. Wspomniałem o możliwości dodania adekwatnego mechanizmu, który byłby w stanie monitorować dane operacje i wyznaczać wartość określającą ilość wykonywanych operacji (np. na sekundę), czyli mierzenie przepustowości. Obecnie nie planuję implementacji takiego mechanizmu monitorowania, ale temat wydaje się ciekawy, … Czytaj dalej Monitorowanie OPS