[FREE PDF sample] Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64 1st Edition Dmitry Vostokov ebooks
[FREE PDF sample] Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64 1st Edition Dmitry Vostokov ebooks
com
OR CLICK HERE
DOWLOAD NOW
https://ebookmass.com/product/foundations-of-arm64-linux-debugging-
disassembling-and-reversing-dmitry-vostokov/
ebookmass.com
https://ebookmass.com/product/comprehensive-materials-finishing-1st-
edition-saleem-hashmi/
ebookmass.com
Oxide Electronics 1st Edition Asim K. Ray
https://ebookmass.com/product/oxide-electronics-1st-edition-asim-k-
ray/
ebookmass.com
https://ebookmass.com/product/behavioral-and-mental-health-care-
policy-and-practice-a-biopsychosocial-perspective-ebook-pdf-version/
ebookmass.com
https://ebookmass.com/product/how-things-count-as-the-same-memory-
mimesis-and-metaphor-adam-b-seligman/
ebookmass.com
https://ebookmass.com/product/practitioners-guide-to-operationalizing-
data-governance-mary-anne-hopper/
ebookmass.com
https://ebookmass.com/product/p-o-w-e-r-learning-foundations-of-
student-success-4th-edition-robert-feldman/
ebookmass.com
Wrongful Convictions and Forensic Science Errors: Case
Studies and Root Causes John Morgan
https://ebookmass.com/product/wrongful-convictions-and-forensic-
science-errors-case-studies-and-root-causes-john-morgan/
ebookmass.com
Foundations of Linux
Debugging, Disassembling,
and Reversing
Analyze Binary Code, Understand
Stack Memory Usage, and Reconstruct
C/C++ Code with Intel x64
—
Dmitry Vostokov
Foundations of Linux
Debugging,
Disassembling, and
Reversing
Analyze Binary Code,
Understand Stack Memory
Usage, and Reconstruct C/C++
Code with Intel x64
Dmitry Vostokov
Foundations of Linux Debugging, Disassembling, and Reversing: Analyze
Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++
Code with Intel x64
Dmitry Vostokov
Dublin, Ireland
Preface����������������������������������������������������������������������������������������������xiii
iii
Table of Contents
Chapter 4: Pointers�����������������������������������������������������������������������������33
A Definition���������������������������������������������������������������������������������������������������������33
“Pointers” Project: Memory Layout and Registers����������������������������������������������34
“Pointers” Project: Calculations��������������������������������������������������������������������������36
Using Pointers to Assign Numbers to Memory Cells�������������������������������������������36
Adding Numbers Using Pointers�������������������������������������������������������������������������42
Incrementing Numbers Using Pointers���������������������������������������������������������������45
Multiplying Numbers Using Pointers�������������������������������������������������������������������48
Summary������������������������������������������������������������������������������������������������������������51
iv
Table of Contents
Registers Revisited���������������������������������������������������������������������������������������������65
NULL Pointers�����������������������������������������������������������������������������������������������������65
Invalid Pointers���������������������������������������������������������������������������������������������������65
Variables As Pointers������������������������������������������������������������������������������������������66
Pointer Initialization��������������������������������������������������������������������������������������������67
Initialized and Uninitialized Data�������������������������������������������������������������������������67
More Pseudo Notation�����������������������������������������������������������������������������������������68
“MemoryPointers” Project: Memory Layout�������������������������������������������������������68
Summary������������������������������������������������������������������������������������������������������������79
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
Index�������������������������������������������������������������������������������������������������167
viii
About the Author
Dmitry Vostokov is an internationally
recognized expert, speaker, educator, scientist,
and author. He is the founder of the pattern-
oriented software diagnostics, forensics,
and prognostics discipline and Software
Diagnostics Institute (DA+TA: DumpAnalysis.
org + TraceAnalysis.org). Vostokov has also
authored more than 50 books on software
diagnostics, anomaly detection and analysis,
software and memory forensics, root cause analysis and problem solving,
memory dump analysis, debugging, software trace and log analysis,
reverse engineering, and malware analysis. He has more than 25 years
of experience in software architecture, design, development, and
maintenance in various industries, including leadership, technical, and
people management roles. Dmitry also founded Syndromatix, Anolog.
io, BriteTrace, DiaThings, Logtellect, OpenTask Iterative and Incremental
Publishing (OpenTask.com), Software Diagnostics Technology and
Services (former Memory Dump Analysis Services; PatternDiagnostics.
com), and Software Prognostics. In his spare time, he presents various
topics on Debugging TV and explores Software Narratology, its further
development as Narratology of Things and Diagnostics of Things (DoT),
and Software Pathology. His current areas of interest are theoretical
software diagnostics and its mathematical and computer science
foundations, application of artificial intelligence, machine learning and
ix
About the Author
x
About the Technical Reviewer
Vikas Talan is a senior engineer at Qualcomm
(an American multinational corporation). He is
the founder of S.M.A.R.T Solutions, a technical
company. He also worked at MediaTek and
Cadence in core technical domains. He has
in-depth experience in Linux kernel
programming, Linux device drivers, ARM 64,
ARM, and porting of Android OS and Linux
drivers on chipsets. He hails from Delhi
NCR, India.
xi
Preface
The book covers topics ranging from Intel x64 assembly language
instructions and writing programs in assembly language to pointers, live
debugging, and static binary analysis of compiled C and C++ code.
Diagnostics of core memory dumps, live and postmortem debugging
of Linux applications, services, and systems, memory forensics, malware,
and vulnerability analysis require an understanding of x64 Intel assembly
language and how C and C++ compilers generate code, including
memory layout and pointers. This book is about background knowledge
and practical foundations that are needed to understand internal Linux
program structure and behavior, start working with the GDB debugger, and
use it for disassembly and reversing. It consists of practical step-by-step
exercises of increasing complexity with explanations and many diagrams,
including some necessary background topics.
By the end of the book, you will have a solid understanding of how
Linux C and C++ compilers generate binary code. In addition, you will be
able to analyze such code confidently, understand stack memory usage,
and reconstruct original C/C++ code.
The book will be useful for
• Software testers
xiii
Preface
This book can also be used as an x64 assembly language and Linux
debugging supplement for relevant undergraduate-level courses.
Source Code
All source code used in this book can be downloaded from github.com/
apress/linux-debugging-disassembling-reversing.
xiv
CHAPTER 1
Memory, Registers,
and Simple Arithmetic
emory and Registers Inside
M
an Idealized Computer
Computer memory consists of a sequence of memory cells, and each cell
has a unique address (location). Every cell contains a “number.” We refer
to these “numbers” as contents at addresses (locations). Because memory
access is slower than arithmetic instructions, there are so-called registers
to speed up complex operations that require memory to store temporary
results. We can also think about them as stand-alone memory cells. The
name of a register is its address. Figure 1-1 illustrates this concept.
Language: French
Credits: Laurent Vogel (This book was produced from images made
available by the HathiTrust Digital Library.)
VOYAGE A MONTBARD
AVEC
UNE PRÉFACE ET DES NOTES
PAR
F.-A. AULARD
Eau-forte par Ad. Lalauze
PARIS
ÉDITIONS DES BIBLIOPHILES
Rue de Lille, 7
M DCCC XC
VOYAGE A MONTBARD
Lalauze del. & sc.
TIRÉ A TRÈS PETIT NOMBRE
II
III
C’est en 1785, comme il venait d’être nommé avocat général au
Parlement de Paris, qu’Hérault de Séchelles alla voir Buffon à
Montbard, et son récit piquant et irrévérencieux fut publié la même
année sans nom d’auteur, sous le titre de Visite à Buffon. (Septembre
1785, Paris, 1785, in-8o de 53 pages.) Il est peu vraisemblable qu’il
ait lui-même fait imprimer du vivant de Buffon des pages si
blessantes pour l’amour-propre infiniment susceptible du grand
homme qu’il venait de visiter. Je supposerais volontiers qu’un
indiscret publia, sans y être autorisé, une des copies qu’Hérault de
Séchelles dut, à la mode du temps, faire circuler parmi ses amis.
Quel effet cet impitoyable persiflage produisit-il sur Buffon et sa
famille ? Nous voyons seulement que le fils de Buffon écrivit, le 30
octobre 1785, à Mme Necker : « M. Hérault de Séchelles, qui vient
d’être nommé avocat général, lui ayant demandé la permission de
venir passer quelque temps à Montbard, papa avoit répondu qu’il le
verroit avec plaisir ; mais c’étoit avant de tomber malade. M. Hérault
est arrivé ce matin ; papa le voit de temps en temps, lorsque son
état le lui permet, et je tâche de le suppléer et de tenir compagnie
de mon mieux à ce jeune magistrat, qui prévient beaucoup en sa
faveur et qui est fort aimable et très instruit [3] . » Mais il n’est pas
question, dans la correspondance de Buffon, de l’opuscule satirique
d’Hérault de Séchelles, dont en tout cas la famille du grand écrivain
ne garda pas rancune : nous voyons, en effet, qu’en 1793 l’auteur
de la Visite à Buffon fut un des témoins du fils de Buffon lorsque
celui-ci épousa en secondes noces Betzy Daubenton [4] .
[3] Correspondance de Buffon, dans ses Œuvres complètes, édit. de Lanessan,
t. XIV, p. 303.
[4] Nous empruntons ce renseignement à un article
de M. Maurice Tourneux dans la Revue critique d’histoire
et de littérature, t. XIV, p. 354.
F.-A. Aulard.
VOYAGE A MONTBARD
On m’a dit que le père avoit été attendri jusqu’aux larmes de cet
hommage. Il disoit à son fils : « Mon fils, cela te fera honneur. »
Il termina notre première entrevue, parce que ses douleurs de
pierre lui reprirent. Il m’ajouta que son fils alloit me mener partout,
et me feroit voir les jardins et la colonne. Le jeune comte de Buffon
me conduisit d’abord dans toute la maison, qui est très bien tenue,
fort bien meublée : on y compte douze appartemens complets ; mais
elle est bâtie sans régularité, et, quoique ce défaut dût la rendre
plutôt commode que belle, elle a encore de la beauté. De la maison
nous parcourûmes les jardins, qui s’élèvent au-dessus. Ils sont
composés de treize terrasses, aussi irrégulières dans leur genre que
la maison, mais d’où l’on découvre une vue immense, de
magnifiques aspects, des prairies coupées par des rivières, des
vignobles, des coteaux brillans de culture, et toute la ville de
Montbard ; ces jardins sont mêlés de plantations, de quinconces, de
pins, de platanes, de sycomores, de charmilles, et toujours des
fleurs parmi les arbres. Je vis de grandes volières où Buffon élevoit
des oiseaux étrangers qu’il vouloit étudier et décrire. Je vis aussi la
place d’une fosse qu’il avoit comblée, et où il avoit nourri des lions et
des ours. Je vis enfin ce que j’avois tant désiré de connoître, le
cabinet où travaille ce grand homme : il est dans un pavillon que l’on
nomme la tour Saint Louis. On monte un escalier : on entre par une
porte verte à deux battans ; mais on est fort étonné de voir la
simplicité du laboratoire. Sous une voûte assez haute, à peu près
semblable aux voûtes des églises et des anciennes chapelles, dont
les murailles sont peintes en vert, il a fait porter un mauvais
secrétaire de bois au milieu de la salle, qui est carrelée, et devant le
secrétaire est un fauteuil : voilà tout. Pas un livre, pas un papier ;
mais ne trouvez-vous pas que cette nudité a quelque chose de
frappant ? On la revêt des belles pages de Buffon, de la
magnificence de son style et de l’admiration qu’il inspire. Cependant
ce n’est pas là le cabinet où il a le plus travaillé : il n’y va guère que
dans la grande chaleur de l’été, parce que l’endroit est extrêmement
froid. Il est un autre sanctuaire où il a composé presque tous ses
ouvrages, le Berceau de l’Histoire naturelle, comme disoit le prince
Henri, qui voulut l’aller voir, et où J.-J. Rousseau se mit à genoux et
baisa le seuil de la porte. J’en parlois à M. de Buffon. « Oui, me dit-il,
Rousseau y fit un hommage. » Ce cabinet a, comme le premier, une
porte ouverte à deux battans. Il y a intérieurement un paravent de
chaque côté de la porte. Le cabinet est carrelé, boisé et tapissé des
images des oiseaux et de quelques quadrupèdes de l’Histoire
naturelle. On y trouve un canapé, quelques chaises antiques
couvertes de cuir noir, une table sur laquelle sont des manuscrits,
une petite table noire : voilà tous les meubles. Le secrétaire où il
travaille est dans le fond de l’appartement, auprès de la cheminée.
C’est une pièce grossière de bois de noyer. Il étoit ouvert ; on ne
voyoit que le manuscrit dont Buffon s’occupoit alors : c’étoit un
Traité de l’aimant. A côté étoit sa plume ; au-dessus du secrétaire
étoit un bonnet de soie grise dont il se couvre. En face, le fauteuil où
il s’assied, antique et mauvais fauteuil sur lequel est jetée une robe
de chambre rouge à raies blanches. Devant lui, sur la muraille, la
gravure de Newton. Là Buffon a passé la plus grande et la plus belle
portion de sa vie. Là ont été enfantés presque tous ses ouvrages. En
effet, il a beaucoup habité Montbard, et il y restoit huit mois de
l’année : c’est ainsi qu’il a vécu pendant plus de quarante ans. Il
alloit passer quatre mois à Paris, pour expédier ses affaires et celles
du Jardin du Roi, et venoit se jeter dans l’étude. Il m’a dit lui-même
que c’étoit son plus grand plaisir, son goût dominant, joint à une
passion extrême pour la gloire.
Son exemple et ses discours m’ont confirmé que qui veut la
gloire passionnément finit par l’obtenir, ou du moins en approche de
bien près. Mais il faut vouloir, et non pas une fois ; il faut vouloir tous
les jours. J’ai ouï dire qu’un homme qui a été maréchal de France et
grand général se promenoit tous les matins un quart d’heure dans sa
chambre, et qu’il employoit ce temps à se dire à lui-même : « Je
veux être maréchal de France et grand général. » [C] M. de Buffon
me dit à ce sujet un mot bien frappant, un de ces mots capables de
produire un homme tout entier : « Le génie n’est qu’une plus grande
aptitude à la patience. » Il suffit en effet d’avoir reçu cette qualité de
la nature : avec elle on regarde longtemps les objets, et l’on parvient
à les pénétrer. Cela revient au mot de Newton. On disoit à ce
dernier : « Comment avez-vous fait tant de découvertes ? — En
cherchant toujours, répondit-il, et cherchant patiemment »
Remarquez que le mot patience doit s’appliquer à tout : patience
pour chercher son objet, patience pour résister à tout ce qui s’en
écarte, patience pour souffrir tout ce qui accableroit un homme
ordinaire.
Je tirerai mes exemples de M. de Buffon lui même. Il rentroit
quelquefois des soupers de Paris à deux heures après minuit,
lorsqu’il étoit jeune ; et, à cinq heures du matin, un savoyard venoit
le tirer par les pieds et le mettre sur le carreau, avec ordre de lui
faire violence, dût-il se fâcher contre lui. Il m’a dit aussi qu’il
travailloit jusqu’à six heures du soir. « J’avois alors, me dit-il, une
petite maîtresse que j’adorois : eh bien ! je m’efforçois d’attendre
que six heures fussent sonnées pour l’aller voir, souvent même au
risque de ne plus la trouver. » A Montbard, après son travail, il faisoit
venir une petite fille, car il les a toujours aimées ; mais il se relevoit
exactement à cinq heures. Il ne voyoit que des petites filles, ne
voulant pas avoir de femmes qui lui dépensassent son temps [6] .
[6] M. de Buffon a toujours été fortement occupé de lui même, et
préférablement à tout le reste. Comme je savois que beaucoup de femmes avoient
reçu son hommage, je demandois si elles ne lui avoient pas fait perdre de temps.
Quelqu’un qui le connoissoit parfaitement me répondit : « M. de Buffon a vu
constamment trois choses avant toutes les autres : sa gloire, sa fortune et ses
aises. Il a presque toujours réduit l’amour au physique seul. Voyez un de ses
discours sur la nature des animaux, où, après un portrait pompeux de l’amour, il
l’anéantit d’un seul trait et le dégrade en prétendant prouver qu’il n’y a que du
physique, de la vanité, de l’amour-propre dans la jouissance. C’est là qu’est son
invocation à l’amour : « On l’a mise à côté de celle de Lucrèce », me dit-il un jour.
Les femmes lui en ont voulu à la mort de cet effort ou de cet abus de raison. Mme
de Pompadour lui dit à Versailles : « Vous êtes un joli garçon !… »
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookmass.com