Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Spistreści
Wstęp
1.Funkcje,struktury,klasyiobiektynaniskimpoziomie
1.1.Wywoływaniefunkcjiwjęzykach(bardzo)niskiegopoziomu
1.1.1.CALL,RETikonwencjewywołań
1.1.2.Konwencjewywołańx86
1.1.3.Konwencjewywołańx86-64
1.2.Struktury
1.2.1.„Zgadywanie”wielkościiułożeniaelementówstrukturywpamięci
1.2.2.Rozpoznawaniebudowystrukturlokalnychiglobalnych
1.2.3.Rozpoznawaniebudowystrukturdynamiczniealokowanych
1.3.Klasy,obiekty,dziedziczenieitablicewirtualne
1.3.1.Prostaklasaastruktura
1.3.2.Obiekty=struktury+funkcje+thiscall
1.3.3.Wszystkozostajewrodzinie,czylidziedziczenie
1.4.Podsumowanie
2.ŚrodowiskouruchomieniowenasystemachGNU/Linux
2.1.Wstęp
2.2.PlikiwykonywalneELF
2.2.1.Identyfikacjasystemuiarchitekturydocelowej
2.2.2.Segmenty
2.2.3.SegmentPT_LOAD
2.2.4.SegmentPT_DYNAMIC
2.2.5.Sekcja.dynamic
2.2.5.1.Deklaracjabibliotekzależnych
2.2.5.2.Wczesnainicjalizacjaprogramu
2.3.Środowiskouruchomieniowe
2.3.1.KodPIC
2.3.2.TabliceGOTiPLT
2.3.3.Programładującyld.so
2.3.3.1.Zmienneśrodowiskowe
2.3.3.2.LD_LIBRARY_PATH
2.3.3.3.LD_PRELOAD
2.3.3.4.LD_AUDIT
2.3.4.Zrzucaniepamięciprocesów
2.3.4.1.Systemplików/proc
2.3.4.2.Plikispecjalnew/proc/pid
2.3.4.3.Plikispecjalnemapsimem
2.3.4.4.VDSO
2.3.4.5.Wektoryinicjalizacyjne
2.3.5.Wstrzykiwaniekodu
2.3.5.1.Wersjaptrace(2)
2.3.6.Samomodyfikującysiękod
2.4.Podsumowanie
Bibliografia
3.Mechanizmyochronyaplikacji
3.1.Wstęp
3.2.Przepełnieniebuforanastosie
3.3.Proceduryobsługiwyjątków
3.4.Zapobieganiewykonaniudanych
3.5.Losowośćukładuprzestrzeniadresowej
3.6.Dodatkowemateriały
3.7.Podsumowanie
Bibliografia
4.Metodyprzeciwdziałaniaodbudowiekoduaplikacjizpamięciprocesu
4.1.Wstęp
4.1.1.Zawartośćrozdziału
4.2.Packery,szyfratoryiprotektoryplikówPE
4.3.Emulowaniezabezpieczeń
4.4.Ochronaprzedodbudowąkoduprogramuzapisanegozpamięciprocesu
4.5.Nanomity
4.6.Skradzionypunktrozpoczęciaprogramu
4.7.Przekierowanieiobfuskacjaimportowanychfunkcji
4.9.Podsumowanie
Bibliografia
5.
.NETinternalsformatandRE
5.1.Wstęp
5.2.Formatpliku.NET
5.2.1.JIT,czylidrugistopieńkompilacjiprogramu
5.2.2.JęzykpośredniCIL
5.2.2.1.Przykład1:add()
5.2.2.2.Przykład2:stringWriteTest()
5.2.2.3.Przykład3:programFlowTest()
5.2.3.Dedykowanekontenerymetadanych
5.2.4.Wysokopoziomowastrukturaprogramuzachowanawplikuwykonywalnym
5.2.5.Token
5.2.6.Funkcjenatywne