skip to content
Mastering Assembly programming : from instruction set to kernel module with Intel processor Preview this item
ClosePreview this item
Checking...

Mastering Assembly programming : from instruction set to kernel module with Intel processor

Author: Alexey Lyashko
Publisher: Birmingham, UK : Packt Publishing, 2017.
Edition/Format:   eBook : Document : EnglishView all editions and formats
Rating:

(not yet rated) 0 with reviews - Be the first.

Subjects
More like this

Find a copy online

Links to this item

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...

Details

Genre/Form: Electronic books
Material Type: Document, Internet resource
Document Type: Internet Resource, Computer File
All Authors / Contributors: Alexey Lyashko
OCLC Number: 1007702230
Description: 1 online resource (1 volume) : illustrations
Contents: Cover --
Title Page --
Copyright --
Credits --
About the Author --
About the Reviewer --
www.PacktPub.com --
Customer Feedback --
Table of Contents --
Preface --
Chapter 1: Intel Architecture --
Processor registers --
General purpose registers --
Accumulators --
Counter --
Stack pointer --
Source and destination indices --
Base pointer --
Instruction pointer --
Floating point registers --
XMM registers --
Segment registers and memory organization --
Real mode --
Protected mode --
segmentation --
Protected mode --
paging --
Long mode --
paging --
Control registers --
Debug registers --
Debug address registers DR0 --
DR3 --
Debug control register (DR7) --
Debug status register (DR6) --
The EFlags register --
Bit #0 --
carry flag --
Bit #2 --
parity flag --
Bit #4 --
adjust flag --
Bit #6 --
zero flag --
Bit #7 --
sign flag --
Bit #8 --
trap flag --
Bit #9 --
interrupt enable flag --
Bit #10 --
direction flag --
Bit #11 --
overflow flag --
Remaining bits --
Summary --
Chapter 2: Setting Up a Development Environment --
Microsoft Macro Assembler --
Installing Microsoft Visual Studio 2017 Community --
Setting up the Assembly project --
GNU Assembler (GAS) --
Installing GAS --
Step 1 --
installing GAS --
Step 2 --
let's test --
Flat Assembler --
Installing the Flat Assembler --
The first FASM program --
Windows --
Linux --
Summary --
Chapter 3: Intel Instruction Set Architecture (ISA) --
Assembly source template --
The Windows Assembly template (32-bit) --
The Linux Assembly template (32-bit) --
Data types and their definitions --
A debugger --
The instruction set summary --
General purpose instructions --
Data transfer instructions --
Binary Arithmetic Instructions --
Decimal arithmetic instructions --
Logical instructions --
Shift and rotate instructions --
Bit and byte instructions --
Execution flow transfer instructions --
String instructions --
ENTER/LEAVE. Flag control instructions --
Miscellaneous instructions --
FPU instructions --
Extensions --
AES-NI --
SSE --
Example program --
Summary --
Chapter 4: Memory Addressing Modes --
Addressing code --
Sequential addressing --
Direct addressing --
Indirect addressing --
RIP based addressing --
Addressing data --
Sequential addressing --
Direct addressing --
Scale, index, base, and displacement --
RIP addressing --
Far pointers --
Summary --
Chapter 5: Parallel Data Processing --
SSE --
Registers --
Revisions --
Biorhythm calculator --
The idea --
The algorithm --
Data section --
The code --
Standard header --
The main() function --
Data preparation steps --
Calculation loop --
Adjustment of sine input values --
Computing sine --
Exponentiation --
Factorials --
AVX-512 --
Summary --
Chapter 6: Macro Instructions --
What are macro instructions? --
How it works --
Macro instructions with parameters --
Variadic macro instructions --
An introduction to calling conventions --
cdecl (32-bit) --
stdcall (32-bit) --
Microsoft x64 (64-bit) --
AMD64 (64-bit) --
A note on Flat Assembler's macro capabilities --
Macro instructions in MASM and GAS --
Microsoft Macro Assembler --
The GNU Assembler --
Other assembler directives (FASM Specific) --
The conditional assembly --
Repeat directives --
Inclusion directives --
The include directive --
File directive --
Summary --
Chapter 7: Data Structures --
Arrays --
Simple byte arrays --
Arrays of words, double words, and quad words --
Structures --
Addressing structure members --
Arrays of structures --
Arrays of pointers to structures --
Linked lists --
Special cases of linked lists --
Stack --
Queue and deque --
Priority queues --
Cyclic linked list --
Summary for special cases of linked lists --
Trees --
A practical example --
Example --
trivial cryptographic virtual machine --
Virtual machine architecture. Adding support for a virtual processor to the Flat Assembler --
Virtual code --
The virtual processor --
Searching the tree --
The loop --
Tree balancing --
Sparse matrices --
Graphs --
Summary --
Chapter 8: Mixing Modules Written in Assembly and Those Written in High-Level Languages --
Crypto Core --
Portability --
Specifying the output format --
Conditional declaration of code and data sections --
Exporting symbols --
Core procedures --
Encryption/decryption --
Setting the encryption/decryption parameters --
f_set_data_pointer --
f_set_data_length --
GetPointers() --
Interfacing with C/C++ --
Static linking --
Visual Studio 2017 --
Static linking --
GCC --
Dynamic linking --
Assembly and managed code --
Native structure versus managed structure --
Importing from DLL/SO and function pointers --
Summary --
Chapter 9: Operating System Interface --
The rings --
System call --
System call hardware interface --
Direct system calls --
Indirect system calls --
Using libraries --
Windows --
Linking against object and/or library files --
Object file --
Producing the executable --
Importing procedures from DLL --
Linux --
Linking against object and/or library files --
Object file --
Producing the executable --
Dynamic linking of ELF --
The code --
Summary --
Chapter 10: Patching Legacy Code --
The executable --
The issue --
PE files --
Headers --
Imports --
Gathering information --
Locating calls to gets() --
Preparing for the patch --
Importing fgets() --
Patching calls --
Shim code --
Applying the patch --
A complex scenario --
Preparing the patch --
Adjusting file headers --
Appending a new section --
Fixing the call instruction --
ELF executables --
LD_PRELOAD --
A shared object --
Summary --
Chapter 11: Oh, Almost Forgot --
Protecting the code --
The original code --
The call --
The call obfuscation macro --
A bit of kernel space --
LKM structure. LKM source --
.init.text --
.exit.text --
.rodata.str1.1 --
.modinfo --
.gnu.linkonce.this_module --
__versions --
Testing the LKM --
Summary --
Index.
Responsibility: Alexey Lyashko.

Reviews

User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...

Tags

Be the first.

Similar Items

Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


Primary Entity

<http://www.worldcat.org/oclc/1007702230> # Mastering Assembly programming : from instruction set to kernel module with Intel processor
    a schema:MediaObject, schema:Book, schema:CreativeWork ;
    library:oclcnum "1007702230" ;
    library:placeOfPublication <http://id.loc.gov/vocabulary/countries/enk> ;
    schema:about <http://experiment.worldcat.org/entity/work/data/4532580272#Topic/assembly_languages_electronic_computers> ; # Assembly languages (Electronic computers)
    schema:about <http://dewey.info/class/001.642/e23/> ;
    schema:author <http://experiment.worldcat.org/entity/work/data/4532580272#Person/lyashko_alexey> ; # Alexey Lyashko
    schema:bookFormat schema:EBook ;
    schema:datePublished "2017" ;
    schema:description "Cover -- Title Page -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Intel Architecture -- Processor registers -- General purpose registers -- Accumulators -- Counter -- Stack pointer -- Source and destination indices -- Base pointer -- Instruction pointer -- Floating point registers -- XMM registers -- Segment registers and memory organization -- Real mode -- Protected mode -- segmentation -- Protected mode -- paging -- Long mode -- paging -- Control registers -- Debug registers -- Debug address registers DR0 -- DR3 -- Debug control register (DR7) -- Debug status register (DR6) -- The EFlags register -- Bit #0 -- carry flag -- Bit #2 -- parity flag -- Bit #4 -- adjust flag -- Bit #6 -- zero flag -- Bit #7 -- sign flag -- Bit #8 -- trap flag -- Bit #9 -- interrupt enable flag -- Bit #10 -- direction flag -- Bit #11 -- overflow flag -- Remaining bits -- Summary -- Chapter 2: Setting Up a Development Environment -- Microsoft Macro Assembler -- Installing Microsoft Visual Studio 2017 Community -- Setting up the Assembly project -- GNU Assembler (GAS) -- Installing GAS -- Step 1 -- installing GAS -- Step 2 -- let's test -- Flat Assembler -- Installing the Flat Assembler -- The first FASM program -- Windows -- Linux -- Summary -- Chapter 3: Intel Instruction Set Architecture (ISA) -- Assembly source template -- The Windows Assembly template (32-bit) -- The Linux Assembly template (32-bit) -- Data types and their definitions -- A debugger -- The instruction set summary -- General purpose instructions -- Data transfer instructions -- Binary Arithmetic Instructions -- Decimal arithmetic instructions -- Logical instructions -- Shift and rotate instructions -- Bit and byte instructions -- Execution flow transfer instructions -- String instructions -- ENTER/LEAVE."@en ;
    schema:exampleOfWork <http://worldcat.org/entity/work/id/4532580272> ;
    schema:genre "Electronic books"@en ;
    schema:inLanguage "en" ;
    schema:name "Mastering Assembly programming : from instruction set to kernel module with Intel processor"@en ;
    schema:productID "1007702230" ;
    schema:url <http://proquest.safaribooksonline.com/?uiCode=stanford&xmlId=9781787287488> ;
    schema:url <http://ra.ocls.ca/ra/login.aspx?inst=conestoga&url=http://proquest.safaribooksonline.com/9781787287488> ;
    schema:url <http://VH7QX3XE2P.search.serialssolutions.com/?V=1.0&L=VH7QX3XE2P&S=JCs&C=TC0001943936&T=marc&tab=BOOKS> ;
    schema:url <http://lib.myilibrary.com?id=1038625> ;
    schema:url <http://proquest.safaribooksonline.com/?uiCode=ohlink&xmlId=9781787287488> ;
    schema:url <https://www.safaribooksonline.com/library/view/-/9781787287488/?ar> ;
    schema:url <http://proxy.ohiolink.edu:9099/login?url=http://proquest.safaribooksonline.com/?uiCode=ohlink&xmlId=9781787287488> ;
    schema:url <https://proquest.safaribooksonline.com/9781787287488> ;
    schema:url <https://ebookcentral.proquest.com/lib/liverpool/detail.action?docID=5061660> ;
    schema:url <http://proquest.safaribooksonline.com/?fpi=9781787287488> ;
    schema:url <https://ezproxy.spl.org/login?url=https://proquest.safaribooksonline.com/9781787287488> ;
    schema:url <http://proxy.library.carleton.ca/login?url=http://proquest.safaribooksonline.com/?uiCode=carleton&xmlId=9781787287488> ;
    wdrs:describedby <http://www.worldcat.org/title/-/oclc/1007702230> ;
    .


Related Entities

<http://experiment.worldcat.org/entity/work/data/4532580272#Person/lyashko_alexey> # Alexey Lyashko
    a schema:Person ;
    schema:familyName "Lyashko" ;
    schema:givenName "Alexey" ;
    schema:name "Alexey Lyashko" ;
    .

<http://experiment.worldcat.org/entity/work/data/4532580272#Topic/assembly_languages_electronic_computers> # Assembly languages (Electronic computers)
    a schema:Intangible ;
    schema:name "Assembly languages (Electronic computers)"@en ;
    .

<http://lib.myilibrary.com?id=1038625>
    rdfs:comment "Connect to MyiLibrary resource." ;
    .

<http://proquest.safaribooksonline.com/?uiCode=stanford&xmlId=9781787287488>
    rdfs:comment "Available to Stanford-affiliated users." ;
    .

<http://ra.ocls.ca/ra/login.aspx?inst=conestoga&url=http://proquest.safaribooksonline.com/9781787287488>
    rdfs:comment "5 simultaneous users allowed through Safari Technical Books" ;
    .

<http://www.worldcat.org/title/-/oclc/1007702230>
    a genont:InformationResource, genont:ContentTypeGenericResource ;
    schema:about <http://www.worldcat.org/oclc/1007702230> ; # Mastering Assembly programming : from instruction set to kernel module with Intel processor
    schema:dateModified "2019-02-11" ;
    void:inDataset <http://purl.oclc.org/dataset/WorldCat> ;
    .

<https://ezproxy.spl.org/login?url=https://proquest.safaribooksonline.com/9781787287488>
    rdfs:comment "An e-book available through full-text database." ;
    .

<https://www.safaribooksonline.com/library/view/-/9781787287488/?ar>
    rdfs:comment "from Safari" ;
    rdfs:comment "(Unlimited Concurrent Users)" ;
    .


Content-negotiable representations

Close Window

Please sign in to WorldCat 

Don't have an account? You can easily create a free account.