Online: 0x07D (125)
haker.iиfø  — Etyczny hacking_
Spreading knowledge like a virus.

 haker.info Blog

Podpięcia do funkcji API za pomocą Detours

   Dawid Farbaniec    790 słów

Podpięcia (ang. hooks) do funkcji mogą mieć różne zastosowania. Jednym z nich jest np. możliwość monitorowania wywoływanych funkcji przez wybrany program. Pozwala to częściowo na analizę zachowania aplikacji, czyli "co program robi". Ogólną sztukę przechwytywania wywołań funkcji określa się po angielsku frazą API hooking. Istnieją też negatywne zastosowania tego typu mechanizmu. Można go spotkać też w 🦠 złośliwym oprogramowaniu (ang. malware). Podpięcie pozwala przechwycić wywołanie funkcji i np. zafałszowanie jej wyniku. Wyobraźmy sobie funkcję, która wyświetla listę procesów, zakładane jest podpięcie, następuje przechwycenie, a argumenty (lista procesów) są modyfikowane poprzez usunięcie wybranych pozycji. W ten właśnie sposób ☣️VXer może ukryć swój złośliwy proces. W tym wpisie jednak zostanie przedstawione etyczne zastosowanie API hooking'u 🧐. Dla ułatwienia działań początkującym i ogólnej wygody użyta będzie biblioteka Microsoft Detours. Czytaj dalej »

Tagi: security  visual-cpp 

Mowa szesnastkowa (ang. hex speech)

   Dawid Farbaniec    450 słów

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. Przedstawione frazy to wartości liczbowe zapisane w systemie szesnastkowym (nazywanym też w skrócie hex). Mimo, że są to liczby to na pierwszy rzut oka da się tam dopatrzeć słów z języka angielskiego. Jeśli chodzi o użycie tych wartości to oprócz tego, że fajnie wyglądają, są używane do oznaczania różnych miejsc w kodzie. Taka wartość na pewno bardzo szybko się rzuci w oczy np. analizując program w debuggerze i obserwując wartości rejestrów. Daje to wyraźny sygnał. Czytaj dalej »

Tagi: c-sharp  inne 

Proces w systemie Windows (inspekcja struktury PEB)

   Dawid Farbaniec    480 słów

Proces w systemie Windows to uruchomiona w pamięci kopia aplikacji. Program, który jest plikiem wykonywalnym może być uruchomiony wielokrotnie i zostanie wtedy utworzone wiele procesów. Każdy proces musi mieć przynajmniej jeden wątek. Informacje o określonym procesie przechowuje struktura EProcess. Należy pamiętać, że budowa tej struktury oraz struktur i pól w niej zawartych może zmieniać się wraz z wersjami systemu Windows. Czytaj dalej »

Tagi: reverse-engineering  security 

Podstawy arytmetyki komputerowej

   Dawid Farbaniec    1340 słów

Dla niektórych ten wpis może być tylko przypomnieniem, ale postanowiłem to jednak opisać. Rozpocznę od wyjaśnienia czym jest system liczbowy. System reprezentacji liczb pozwala zapisywać liczby z użyciem określonego zbioru znaków. Dwa bardzo ważne w informatyce systemy liczbowe oprócz dziesiętnego, którego używamy na co dzień to system binarny (dwójkowy) oraz heksadecymalny (szesnastkowy). Czytaj dalej »

Tagi: inne 

Sentymentalnie? Malware made in Poland (ok. 2000 roku)

   Dawid Farbaniec    240 słów

W tym wpisie przedstawiono wybrane historyczne konie trojańskie z okolic roku 2000 kiedy wielu nastolatków łącznie ze mną chciało zostać hakerami. Wyjaśniono również ogólną zasadę działania tego typu aplikacji. Klasyczny koń trojański jest niczym innym jak aplikacją sieciową o architekturze klient–serwer. Program typu serwer jest uruchamiany na atakowanym komputerze i nasłuchuje na określonym porcie na polecenia. Czytaj dalej »

Tagi: inne 

Nanomity — metoda utrudniająca zrzuty pamięci

   Dawid Farbaniec    1190 słów

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. Podczas wykonania programu przy trafieniu na nanomit, sterowanie zostaje przekazywane do specjalnej procedury, która decyduje o dalszej ścieżce wykonywania kodu. Czytaj dalej »

Tagi: masm64  reverse-engineering  security  visual-cpp 

Wykrywanie okna określonego narzędzia

   Dawid Farbaniec    730 słów

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. Czytaj dalej »

Tagi: c-sharp  masm64  reverse-engineering  visual-cpp 

Idea „beczułek z miodem” (ang. honeypot)

   Dawid Farbaniec    510 słów

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. Taki zasób-przynęta jest celowo wystawiany na ataki hakerskie i pozwala on zbierać wiele informacji. Czytaj dalej »

Tagi: anti-malware  security  websecurity 

Kod relokowalny/wstrzykiwalny (x64)

   Dawid Farbaniec    3020 słów

Każdy początkujący, który interesuje się analizą i zwalczaniem zł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). Typowe programy komputerowe są zależne od odwołań do zasobów takich jak np. funkcje interfejsu systemowego (API) czy po prostu dane potrzebne aplikacji (napisy, liczby itd.). Natomiast kod relokowalny powinien być self–contained, czyli tłumacząc opisowo: zawierać w sobie to co jest mu potrzebne do działania. Dzięki temu, gdy zostanie umieszczony gdziekolwiek w pamięci komputera, to nadal będzie działał poprawnie, a nawet miał możliwość przeniesienia swoich fragmentów w inne miejsca (ang. (self–)relocation). Czytaj dalej »

Tagi: masm64  reverse-engineering  security 

Web Parameter Tampering (w tym Overposting)

   Dawid Farbaniec    680 słów

Nazwą zawartą w tytule (Web Parameter Tampering) określa się zbiór podatności w aplikacjach internetowych, które polegają na manipulowaniu parametrami używanymi podczas przesyłania żądań HTTP. Określenie Web Parameter Tampering w wolnym tłumaczeniu z języka angielskiego oznacza manipulowanie czy też fałszowanie parametrów w aplikacji webowej. Nieoczekiwane modyfikacje danych przesyłanych jako parametry żądania mogą prowadzić do błędnego działania witryny. Przykładowym scenariuszem może być zmiana wartości zamówienia w sklepie internetowym czy też np. modyfikacja wypowiedzi innych użytkowników na forum internetowym. Czytaj dalej »

Tagi: asp-net-mvc  security  websecurity 

Podatność CSRF/XSRF w aplikacjach webowych

   Dawid Farbaniec    450 słów

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. Jest to znany i popularny atak, ale nadal można spotkać niezabezpieczone aplikacje czasem z niewiedzy, czasem z niedbałości programisty. W tym wpisie pragnę przybliżyć bardziej szczegółowo błąd typu Cross-Site Request Forgery. Czytaj dalej »

Tagi: asp-net-mvc  security  websecurity 

Bajt zabójca (ang. rogue byte) — metoda przeciw deasemblacji

   Dawid Farbaniec    650 słów

Narzędzia typu deasembler (ang. disassembler) to jedne z podstawowych programów, które są używane w inżynierii odwrotnej kodu (RCE). Pozwalają one uzyskać kod w języku Asembler z analizowanego pliku wykonywalnego *.exe. W tym wpisie zaprezentowano prostą metodę, która pozwala oszukać deasemblery, a w połączeniu z dodatkowymi technikami 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ę. Czytaj dalej »

Tagi: masm64  reverse-engineering  security 

Format plików PE/PE32+ dla początkujących

   Dawid Farbaniec    1520 słów

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+. Czytaj dalej »

Tagi: pe-file-format  reverse-engineering 

Metodyki wytwarzania oprogramowania

   Dawid Farbaniec    770 słów

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). Czytaj dalej »

Tagi: inne 
Strona 1 z 2
_queue: 0

 Projekty

 Tagi


 Archiwa

 Ostatnie komentarze

Dawid napisał komentarz do Dekodowanie kodu Aztec 2D z dowodu rejestracyjnego
 19 października 2020 o godzinie 13:51
Fisper napisał komentarz do Dekodowanie kodu Aztec 2D z dowodu rejestracyjnego
 19 października 2020 o godzinie 12:42
kosmita napisał komentarz do Podpięcia do funkcji API za pomocą Detours
 14 września 2020 o godzinie 09:10
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. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.