Szesnastkowy system liczbowy
(nazywany też heksadecymalnym)
do zapisu liczb korzysta z cyfr od 0 do 9 oraz liter od A do F.
Razem jest to szesnaście znaków.
Nie wiem kto, ale ktoś był tak genialny, że wymyślił by z tego zbioru znaków tworzyć słowa.
Niektórzy czytelnicy może spotkali w kodzie albo gdzieś indziej zapis
np. 0xDEADBEEF, 0xDEADC0DE, 0x00000BAD czy inne.
Określenie nanomit
kojarzy się z mikroskopijnym robotem wielkości rzędu nanometrów. Taką też nazwę nadano znanej od długiego czasu,
ale wciąż używanej metodzie przeciwko inżynierii odwrotnej kodu (ang. RCE).
A dokładnie przeciwko odbudowie kodu analizowanej aplikacji ze zrzutu pamięci procesu.
W prostych słowach technika ta polega na wstrzykiwaniu (zamianie) określonych instrukcji
(przeważnie skoków — JZ, JNZ, JC etc.) w języku Asembler na rozkazy
przerwania INT 3h określane nanomitami.
Ten wpis zawiera opis
prostej i znanej metody przeciwko inżynierii odwrotnej kodu (RCE).
Jej zasada działania polega na wykrywaniu czy okno określonego narzędzia (np. debuggera, disassemblera,
piaskownicy, hex edytora itp.) jest uruchomione. W przypadku wykrycia danego narzędzia
analizowana aplikacja może zmienić swój przepływ wykonania, czyli działać inaczej niż zwykle.
Zbiór metod określanych
jako honeypot (z ang. beczułka z miodem)
jest znany od dość dawna. Nie są one powiązane ściśle z określoną technologią, dlatego honeypot
należy rozumieć jako: idea, filozofia, mechanizm działania czy metoda działania.
W prostych słowach jest to pewien zasób cyfrowy, który służy jako przynęta.
Może to być na przykład: urządzenie w sieci, moduł witryny internetowej, usługa sieciowa i tym podobne.
Każdy początkujący, który interesuje się
analizą i zwalczaniemzłośliwego oprogramowania (malware)
powinien poznać sposób działania kodu relokowalnego (ang. relocatable code) określanego też jako
kod niezależny od miejsca w pamięci (ang. position–independent code) czy wstrzykiwalny (ang. injectable).
Nazwą zawartą w tytule (Web Parameter Tampering) określa się
zbiór podatności w aplikacjach internetowych, które polegają na manipulowaniu parametrami używanych podczas przesyłania
żądań GET czy POST.
Podatność określana skrótem CSRF (czasem XSRF), która występuje
w aplikacjach webowych polega na fałszowaniu żądania poprzez złośliwą stronę tak, aby na docelowej
witrynie wykonała się niezamierzona przez użytkownika akcja. Jeśli użytkownik odwiedza
zamierzoną stronę www, a np. w nowej zakładce przeglądarki otworzy złośliwy link, to możliwe
jest przesłanie żądania do podatnej witryny, korzystając z aktywnej sesji/uwierzytelnienia.
W tym wpisie zaprezentowano prostą metodę, która pozwala oszukać deasemblery,
a w połączeniu z dodatkowymi technikami
(Kod samo-modyfikujący się i inne)
może nieco utrudnić pracę crackerom łamiącym zabezpieczenia oprogramowania.
Nawet jeśli nie zabezpieczasz software'u, to zapraszam do lektury, gdyż kto wie
czy kiedyś pod debuggerem nie spotkasz pliku zawierającego tę metodę.
Pliki wykonywalne, których tak często
się używa w systemie Windows mogą być nieco owiane tajemnicą dla osób niezajmujących się programowaniem niskopoziomowym
i inżynierią odwrotną kodu (ang. RCE).
Pliki wykonywalne z rozszerzeniem *.exe, które tak często uruchamiasz jako użytkownik, a może i
budujesz jako programista posiadają określony format nazywany
PE (z ang. przenośny wykonywalny)
oraz zmodyfikowaną wersję PE32+.
W tym wpisie opisano w skrócie najpopularniejsze metodyki wytwarzania oprogramowania. Przedstawiono czym jest model kaskadowy, iteracyjny czy prototypowanie. Natomiast na końcu znajdziesz wprowadzenie do metodyk zwinnych (Agile).
Program, który sam modyfikuje swój kod, gdy jest już uruchomiony na pewno wzbudzi ciekawość podczas analizy w debuggerze. Technika ta polega na zamienianiu przez program swoich instrukcji podczas wykonywania. Używa się jej np. w zabezpieczeniach antypirackich. Otóż tak, modyfikacja własnego kodu przez proces aplikacji pozwala utrudnić osobom niepowołanym rozpracowanie, a następnie np. złamanie zabezpieczeń plików programu. Kod samo–modyfikujący się znajdzie też zastosowanie w innych miejscach.
Narzędzia typu Remote Administration Tool (w skrócie RAT ) pozwalają na zdalny dostęp i zarządzanie systemem na którym zainstaluje się moduł takiej aplikacji. W samych programach tego rodzaju nie ma wiele złego. Korzystają z nich administratorzy czy dział wsparcia technicznego jakiejś firmy. Aplikacje te jednak stają się niebezpieczne, jeśli zostają użyte do ataków hakerskich. Powstają także wersje RATów zawierające funkcje malware.
W dowodzie rejestracyjnym pojazdu można zauważyć kod dwuwymiarowy. Jest to kod Aztec 2D i jak się można domyślić, w założeniach miał usprawnić odczyt danych z tego dokumentu. Mało by mnie to interesowało, gdyby nie fakt, że sposób kodowania w nim danych - do niedawna - znany był tylko wąskiej grupie ludzi. Taka się wydaje powszechna rzecz ten kod i takie ograniczenia dostępu do informacji.
W interfejsie programowania aplikacji dla Windows® nazywanym w skrócie WinAPI można znaleźć funkcję Beep. Pozwala ona na odegranie dźwięku na głośniczku systemowym. Odgrywany dźwięk jest prosty (takie Beep :) ), ale można ustawić mu częstotliwość (pierwszy parametr) oraz czas trwania w milisekundach (drugi parametr).
Często w mediach terminem haker nazywa się osoby, które łamią zabezpieczenia systemów informatycznych. Nieważne jaki byłby ich cel (zły czy dobry), to według większości mediów to są hakerzy. Wywołuje to sprzeciw prawdziwej społeczności hakerów, którzy chcą wykluczyć cyberprzestępców ze swojej kultury.
Postać Mr. At nawiązuje do
gier z gatunku roguelike/ASCII RPG w których do wyświetlania
grafiki korzysta się ze znaków tekstowych. Znak @ (at) w grach
roguelike przeważnie oznacza postać bohatera.
Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Autor tej witryny w czasie tworzenia treści nie działa w imieniu firm, których technologie czy produkty opisuje — chyba, że jest to jasno oznaczone. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.