Chapter 1 : No code present
Chapter 2 : No code present
Chapter 3 : Code present
Chapter 4 : Code present
Chapter 5 : Code present
Chapter 6 : No code present
Chapter 7 : Code present
Chapter 8 : No code present
Chapter 9 : No code present

Errata

- 6 submitted: last submission 15 Aug 2017 

On page 13, in the section PT_DYNAMIC  Phdr for the dynamic segment, it is written:

DT_RELAENT        Size in bytes of a Rela table entry
DT_STRSZ            Size in bytes of string table
DT_STRSZ            Size in bytes of string table
DT_STRSZ            Size in bytes of string table

It should be:

DT_RELAENT        Size in bytes of a Rela table entry
DT_STRSZ            Size in bytes of string table
DT_STRSZ            Size in bytes of string table
DT_STRSZ            Size in bytes of string table

Errata Type: Technical | Page: 27

We can see that the foochu function is a value of 0x80480da,...

Should be

We can see that the foochu function is a value of 0x80480d8,...

Errata Type: Code| Page 32

This: 
The following example for are object code...

Should be:
The following example for our object code...


Errata Type: Code| Page 66

This: 
if (h.ehdr>e_type != ET_EXEC) {

Should be:
if (h.ehdr->e_type != ET_EXEC) {


Errata Type: Code| Page 44

This: 
Once fgets() has been resolved, all future calls to the PLT entry forfgets() will result in a jump...

Should be:
Once fgets() has been resolved, all future calls to the PLT entry for fgets() will result in a jump...

Errata Type: Code| Page 55

This: 
PTRACE_POKTEXT

Should be:
PTRACE_POKETEXT

Errata Type: Code| Page 55

This: 
check out the main pages of ptrace(2) for a listing

Should be:
check out the man pages of ptrace(2) for a listing

Errata Type: Code, Page number 12 PDF:

It is:

uint32_t p_flags; (segment flags, I.E execute|read|read)

Should be:

uint32_t p_flags; (segment flags, I.E execute|read|write)


Errata Type: Code, Page number 13 PDF:

There are three copies of the row:

DT_STRSZ - Size in bytes of string table
DT_STRSZ - Size in bytes of string table
DT_STRSZ - Size in bytes of string table

Should be one:

DT_STRSZ - Size in bytes of string table

Errata Type: Code | Page: 68

It is: h.pt_reg.rip = h.pt_reg.ip 1; 

Should be: h.pt_reg.rip = h.pt_reg.rip - 1;

Errata type: Code l Type: 35

This: 0x80480e8 + (0x80480df + sizeof(uint32_t))

Should be: 0x80480e8 - (0x80480df + sizeof(uint32_t))

The prerequisites for this book are as follows: 

We will assume that you have a working knowledge of the Linux command line, comprehensive C programming skills, and a very basic grasp on the x86 assembly language (this is helpful but not necessary).