Asembler. Programowanie
Товар
Характеристики
Описание
Asembler. Programowanie
Dawid Farbaniec
Asembler naprawdę jest dla każdego!
- Masz zamiar nauczyć się programować niskopoziomowo?
- Chcesz poznać język Asembler dla architektury x86-64?
- Pragniesz wykorzystać przydatne narzędzia programistyczne?
Jeśli chociaż na jedno z powyższych pytań odpowiedziałeś twierdząco, jesteś na dobrej drodze! Książka Asembler. Programowanie bezboleśnie i szybko wprowadzi Cię w tajniki programowania niskopoziomowego, nauczy instrukcji języka Asembler, przedstawi podstawowe informacje o sposobach zapisu liczb i kodowania znaków, zaprezentuje architekturę x86-64 i zasadę działania kompilatorów, a także pokaże narzędzia programistyczne, które z pewnością wzbogacą Twój warsztat.
Dzięki lekturze dowiesz się, jak za pomocą Asemblera tworzyć aplikacje działające w systemach Windows, jak korzystać w nich z danych tekstowych, plików i usług sieciowych, a także jak skutecznie łączyć je z programami napisanymi w języku C++. Poznasz też podstawy Asemblera MSIL/CIL i WebAssembly, jak również sposoby wykorzystania tego języka w inżynierii odwrotnej kodu oraz narzędzia, które mogą się do tego przydać. Całość uzupełnia wyczerpujący opis instrukcji procesorów x86(-64) wraz z praktycznymi przykładami ich zastosowania.
- Systemy liczbowe i kodowanie znaków
- Podstawy działania kompilatorów
- Architektura procesorów x86(-64)
- Przegląd narzędzi programistycznych
- Podstawy Asemblera x86 i x86-64
- Zmienne, stałe, typy i struktury
- Instrukcje sterujące i wywoływanie funkcji
- Korzystanie z konsoli i okien dialogowych
- Zastosowanie danych tekstowych
- Użycie plików i funkcji sieciowych
- Łączenie Asemblera z kodem C++
- Asembler i inżynieria odwrotna kodu
- Podstawy Asemblera platformy .NET
- Podstawy WebAssembly
- Opis instrukcji procesorów x86(-64)
Rozwiń skrzydła! Naucz się Asemblera!
O autorze książki
mgr inż. Dawid Farbaniec ukończył kierunek Informatyka na Karpackiej Państwowej Uczelni w Krośnie (dawniej Państwowa Wyższa Szkoła Zawodowa im. Stanisława Pigonia w Krośnie). Swoją przygodę z programowaniem rozpoczął pod koniec szkoły podstawowej, kiedy dostał pierwszy komputer (Intel Celeron 333Mhz, 128 MB RAM, 6 GB HDD). Zafascynowany językiem Asembler, wirusami komputerowymi i tematyką cybersecurity. Chętny do pomocy i dzielenia się wiedzą. W 2011 roku zdobył certyfikat Microsoft IT Academy: C#.NET Programowanie obiektowe
Spis treści:
- Słowem wstępu
O książce
O autorze
- Część I Wprowadzenie
- Rozdział 1. Od początku
1.1. Systemy liczbowe
1.2. Liczby ze znakiem i bez znaku
Wartość rozszerzona z zachowaniem znaku
1.3. Kod ASCII i Unicode
1.4. Systemy operacyjne Windows
1.5. Podstawy działania kompilatorów
- Rozdział 2. Architektura procesorów x86(-64)
2.1. Tryby pracy
2.2. Rejestry procesora
2.3. Pamięć operacyjna
2.4. Stos
2.5. Tryby adresowania
2.6. Kod maszynowy
2.7. Format kodowania instrukcji
2.8. Przerwania
2.9. Zestawy instrukcji
2.10. Koprocesor
- Rozdział 3. Narzędzia programistyczne
3.1. Visual Studio i rozszerzenie do programowania w Asemblerze
Tworzenie projektu MASM w Visual Studio
3.2. Alternatywne podejście wyodrębnienie narzędzi konsolowych
3.3. Edytor zasobów
3.4. Edytor heksadecymalny
3.5. Debugger
- Rozdział 4. Wstęp do Asemblera x86
4.1. Trochę historii Asembler dla 16-bitowego podsystemu MS-DOS
4.2. Program Witaj, 32-bitowy świecie Asemblera!
4.3. Składnia wysokopoziomowa w Asemblerze
- Rozdział 5. Wstęp do Asemblera x86-64
5.1. Program Witaj, 64-bitowy świecie Asemblera!
5.2. Debugger analiza programu krok po kroku
5.3. Zmienne i stałe
Typy całkowite
Zmienne o rozmiarze bajta lub ciągu bajtów
Zmienne o rozmiarze słowa
Zmienne o rozmiarze podwójnego słowa
Zmienne o rozmiarze poczwórnego słowa
Zmienne o rozmiarze sześciu bajtów
Zmienne o rozmiarze dziesięciu bajtów
Zmienna o rozmiarze szesnastu bajtów
Typy zmiennoprzecinkowe
Struktury
Stałe
5.4. Instrukcje skoku warunkowego i bezwarunkowego
5.5. Etykiety nazwane i anonimowe
5.6. Metody tworzenia pętli
5.7. Konwencje wywoływania funkcji
5.8. Tworzenie własnych funkcji (procedur)
- Część II Programowanie w Asemblerze x86-64 dla Windows
- Rozdział 6. Podstawy programowania aplikacji Windows
6.1. Tworzenie konsoli tekstowej
6.2. Pobieranie i wyświetlanie danych
6.3. Kolory tła i tekstu w konsoli
6.4. Tworzenie okna dialogowego
6.5. Kontrolki interfejsu graficznego użytkownika
- Rozdział 7. Napisy (ciągi znaków)
7.1. Deklaracja ciągów znaków
7.2. Dyrektywa byte ptr [] i podobne
7.3. Kopiowanie napisów
- Rozdział 8. Informacje o środowisku pracy
8.1. Identyfikacja procesora
8.2. Odczytywanie wersji systemu
- Rozdział 9. Praca z plikami
9.1. Tworzenie plików i folderów
9.2. Zapis danych do pliku
9.3. Odczyt danych z pliku
9.4. Ustawianie wskaźnika pliku
9.5. Usuwanie plików
9.6. Zamykanie uchwytu pliku
- Rozdział 10. Podstawy wielozadaniowości
10.1. Wątki
10.2. Procesy
10.3. Czasomierz
- Rozdział 11. Programowanie sieciowe
11.1. Obsługa protokołu FTP
11.2. Gniazda systemu Windows
Funkcje WinSock
Aplikacja w architekturze klient serwer
- Rozdział 12. Łączenie Asemblera z językiem C++
12.1. Funkcje Asemblera w projekcie Visual C++
12.2. Funkcje wewnętrzne (ang. intrinsics) w Visual C++
Przykład użycia funkcji wewnętrznej (ang. intrinsic)
- Część III Asembler x86-64 w inżynierii odwrotnej kodu (RCE)
- Rozdział 13. Narzędzia używane w RCE
13.1. Podstawowe narzędzia
Odpluskwiacz (ang. debugger)
Deasembler (ang. disassembler)
Edytor szesnastkowy (heksadecymalny)
Identyfikator plików
Edytor zasobów (ang. resource editor)
Dekompilator (ang. decompiler)
13.2. Więcej narzędzi szybsza praca
- Rozdział 14. Format plików Portable Executable
14.1. Ogólna budowa pliku PE
14.2. Przeglądanie struktury pliku PE
- Rozdział 15. Proste metody utrudniające analizę
15.1. Szyfrowanie napisów
15.2. Wykrywanie narzędzi typu debugger
15.3. Dynamiczne wywoływanie funkcji API
15.4. Wykrywanie okna określonego narzędzia
15.5. Śmieciowy kod (ang. junk code)
- Rozdział 16. Modyfikacja plików wykonywalnych PE
16.1. Modyfikacja kodu w debuggerze
16.2. Modyfikacja kodu w edytorze szesnastkowym
16.3. Tworzenie programu typu crack
- Część IV Inne odmiany języka Asembler
- Rozdział 17. Wprowadzenie do MSIL/CIL Asemblera platformy .NET
17.1. MSIL/CIL informacje ogólne
17.2. Program Witaj, świecie! w Asemblerze MSIL
17.3. Dekompilacja uzyskanie kodu pośredniego z pliku EXE
Metody ochrony przed dekompilacją i analizą
- Rozdział 18. Wprowadzenie do WebAssembly Asemblera dla aplikacji webowych
18.1. WebAssembly informacje ogólne
18.2. Program Witaj, świecie WebAssembly!
- Część V Instrukcje procesorów x86(-64)
- Rozdział 19. Asembler x86(-64) instrukcje ogólnego przeznaczenia
19.1. Instrukcje transferu danych
Instrukcja MOV
Instrukcje kopiowania warunkowego CMOVcc
Instrukcja XCHG
Instrukcja BSWAP
Instrukcja XADD
Instrukcja CMPXCHG
Instrukcje CMPXCHG8B/CMPXCHG16B
Instrukcja PUSH
Instrukcja POP
Instrukcje PUSHA/PUSHAD
Instrukcje POPA/POPAD
Instrukcje CWD/CDQ/CQO
Instrukcje CBW/CWDE/CDQE
Instrukcje MOVSX/MOVSXD
Instrukcja MOVZX
19.2. Instrukcje arytmetyczne
Instrukcja ADCX
Instrukcja ADOX
Instrukcja ADD
Instrukcja ADC
Instrukcja SUB
Instrukcja SBB
Instrukcja IMUL
Instrukcja MUL
Instrukcja IDIV
Instrukcja DIV
Instrukcja INC
Instrukcja DEC
Instrukcja NEG
Instrukcja CMP
19.3. Instrukcje logiczne
Instrukcja AND
Instrukcja OR
Instrukcja XOR
Instrukcja NOT
19.4. Instrukcje przesunięć i obrotów
Instrukcje SAL/SHL
Instrukcja SAR
Instrukcja SHR
Instrukcja RCL
Instrukcja RCR
Instrukcja ROL
Instrukcja ROR
Instrukcja SHRD
Instrukcja SHLD
19.5. Instrukcje do operacji na bitach i bajtach
Instrukcja BT
Instrukcja BTS
Instrukcja BTR
Instrukcja BTC
Instrukcja BSF
Instrukcja BSR
Instrukcje SETcc
Instrukcja TEST
Instrukcja CRC32
Instrukcja POPCNT
19.6. Instrukcje manipulacji bitowych
Instrukcja ANDN
Instrukcja BEXTR
Instrukcja BLSI
Instrukcja BLSMSK
Instrukcja BLSR
Instrukcja BZHI
Instrukcja LZCNT
Instrukcja MULX
Instrukcja PDEP
Instrukcja PEXT
Instrukcja RORX
Instrukcje SARX, SHLX, SHRX
Instrukcja TZCNT
19.7. Instrukcje kontroli przepływu
Instrukcja JMP
Instrukcje Jcc
Instrukcje LOOP/LOOPcc
Instrukcja CALL
Instrukcja RET
19.8. Instrukcje do operacji na napisach
Instrukcje MOVS*
Instrukcje CMPS*
Instrukcje LODS*
Instrukcje STOS*
Instrukcje SCAS*
19.9. Instrukcje wejścia-wyjścia
Instrukcja IN
Instrukcja OUT
Instrukcje INS*
Instrukcje OUTS*
19.10. Instrukcje kontroli flag
19.11. Instrukcje różne
Instrukcja LEA
Instrukcja NOP
Instrukcja UD2
Instrukcja CPUID
Instrukcja MOVBE
- Zakończenie
Гарантии
Гарантии
Мы работаем по договору оферты и предоставляем все необходимые документы.
Лёгкий возврат
Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.
Безопасная оплата
Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.