|
ASEMBLER PROGRAMOWANIE
FARBANIEC D. wydawnictwo: HELION, 2019, wydanie Icena netto: 47.10 Twoja cena 44,75 zł + 5% vat - dodaj do koszyka Asembler
Programowanie
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!
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
216
stron, Format: 16.0x23.0cm, oprawa miękka
Po otrzymaniu zamówienia poinformujemy pocztą e-mail lub telefonicznie, czy wybrany tytuł polskojęzyczny lub
anglojęzyczny jest aktualnie na półce księgarni.
|