Vostokov Dmitry / Востоков Дмитрий - Foundations of Linux Debugging, Disassembling, and Reversing / Основы отладки, дизассемблирования и реверсирования Linux [2023, PDF, EPUB, ENG]

Ответить на тему
Статистика раздачи
Размер:  7 MB   |    Зарегистрирован:  3 месяца 24 дня   |    Скачан:  1 раз
Сидов:  567  [  0 KB/s  ]   Личеров:  10  [  0 KB/s  ]   Подробная статистика пиров
 
   
 
 
Автор Сообщение

iPhone ®

Пол:

Стаж: 8 лет 10 месяцев

Сообщений: 2152

Создавать темы 04-Янв-2024 08:05

[Цитировать]

Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64 / Основы отладки, дизассемблирования и реверсирования Linux: Анализ двоичного кода, понимание использования стековой памяти и восстановление кода C/C++ с помощью Intel x64
Год издания: 2023
Автор: Vostokov Dmitry / Востоков Дмитрий
Издательство: Apress Media
ISBN: 978-1-4842-9153-5
Язык: Английский
Формат: PDF, EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 181
Описание: Review 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. This book is ideal for Linux desktop and cloud developers.
Using the latest version of Debian, you’ll focus on the foundations of the diagnostics of core memory dumps, live and postmortem debugging of Linux applications, services, and systems, memory forensics, malware, and vulnerability analysis. This requires an understanding of x64 Intel assembly language and how C and C++ compilers generate code, including memory layout and pointers.
This book provides the background knowledge and practical foundations you’ll need in order to master internal Linux program structure and behavior. It consists of practical step-by-step exercises of increasing complexity with explanations and ample diagrams. You’ll also work with the GDB debugger and use it for disassembly and reversing.
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. Foundations of Linux Debugging, Disassembling, and Reversing is the perfect companion to Foundations of ARM64 Linux Debugging, Disassembling, and Reversing for readers interested in the cloud or cybersecurity.
What You'll Learn
Review the basics of x64 assembly language
Examine the essential GDB debugger commands for debugging and binary analysis
Study C and C++ compiler code generation with and without compiler optimizations
Look at binary code disassembly and reversing patterns
See how pointers in C and C++ are implemented and used
Who This Book Is For
Software support and escalation engineers, cloud security engineers, site reliability engineers, DevSecOps, platform engineers, software testers, Linux C/C++ software engineers and security researchers without Intel x64 assembly language background, beginners learning Linux software reverse engineering techniques, and engineers coming from non-Linux environments.
Рассмотрите темы, варьирующиеся от инструкций на языке ассемблера Intel x64 и написания программ на языке ассемблера, до указателей, оперативной отладки и статического двоичного анализа скомпилированного кода C и C++. Эта книга идеально подходит для разработчиков настольных компьютеров Linux и облачных приложений.
Используя последнюю версию Debian, вы сосредоточитесь на основах диагностики дампов памяти ядра, оперативной и посмертной отладке приложений, служб и систем Linux, криминалистике памяти, анализе вредоносных программ и уязвимостей. Это требует понимания языка ассемблера Intel x64 и того, как компиляторы C и C++ генерируют код, включая расположение памяти и указатели.
Эта книга предоставляет базовые знания и практические основы, которые вам понадобятся для освоения внутренней структуры и поведения программ Linux. Она состоит из практических пошаговых упражнений возрастающей сложности с объяснениями и обширными диаграммами. Вы также будете работать с отладчиком GDB и использовать его для дизассемблирования и реверсирования.
К концу книги у вас будет четкое представление о том, как компиляторы Linux C и C++ генерируют двоичный код. Кроме того, вы сможете уверенно анализировать такой код, понимать использование стековой памяти и реконструировать исходный код C/C++. Основы отладки, дизассемблирования и реверсирования Linux - идеальное дополнение к основам отладки, дизассемблирования и реверсирования ARM64 Linux для читателей, интересующихся облаком или кибербезопасностью.
Что вы узнаете
Ознакомитесь с основами языка ассемблера x64
Изучите основные команды отладчика GDB для отладки и двоичного анализа
Изучите генерацию кода компиляторами C и C++ с оптимизацией компилятора и без нее
Посмотрите на дизассемблирование двоичного кода и обратные шаблоны
Посмотрите, как реализуются и используются указатели в C и C++
Для кого предназначена эта книга
Инженеры по поддержке программного обеспечения и эскалации, инженеры по облачной безопасности, инженеры по надежности сайтов, разработчики программного обеспечения, инженеры-платформеры, тестировщики программного обеспечения, инженеры-программисты Linux C/C++ и исследователи безопасности без знания языка ассемблера Intel x64, новички, изучающие методы реверс-инжиниринга программного обеспечения Linux, и инженеры, работающие в средах, отличных от Linux.

Примеры страниц

Оглавление

About the Author ..........................................................................................ix
About the Technical Reviewer .........................................................................xi
Preface ........................................................................................................xiii
Chapter 1: Memory, Registers, and Simple Arithmetic .........................................1
Memory and Registers Inside an Idealized Computer ..........................................1
Memory and Registers Inside Intel 64-Bit PC .......................................................2
“Arithmetic” Project: Memory Layout and Registers ............................................3
“Arithmetic” Project: A Computer Program ...........................................................5
“Arithmetic” Project: Assigning Numbers to Memory Locations ...........................5
Assigning Numbers to Registers ...........................................................................8
“Arithmetic” Project: Adding Numbers to Memory Cells .......................................8
Incrementing/Decrementing Numbers in Memory and Registers .......................11
Multiplying Numbers ...........................................................................................14
Summary.............................................................................................................17
Chapter 2: Code Optimization .............................................................................19
“Arithmetic” Project: C/C++ Program .................................................................19
Downloading GDB ...............................................................................................20
GDB Disassembly Output – No Optimization .......................................................20
GDB Disassembly Output – Optimization ............................................................25
Summary.............................................................................................................26
Chapter 3: Number Representations.....................................................................27
Numbers and Their Representations ...................................................................27
Decimal Representation (Base Ten) ....................................................................28
Ternary Representation (Base Three) ..................................................................29
Binary Representation (Base Two) ......................................................................29
Hexadecimal Representation (Base Sixteen) ......................................................30
Why Are Hexadecimals Used? .............................................................................30
Summary.............................................................................................................32
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
Chapter 5: Bytes, Words, Double, and Quad Words .................................................53
Using Hexadecimal Numbers ..............................................................................53
Byte Granularity ..................................................................................................53
Bit Granularity .....................................................................................................54
Memory Layout ...................................................................................................55
Summary.............................................................................................................58
Chapter 6: Pointers to Memory ..............................................................................59
Pointers Revisited ...............................................................................................59
Addressing Types ................................................................................................59
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
Chapter 7: Logical Instructions and RIP ..................................................................81
Instruction Format...............................................................................................81
Logical Shift Instructions ....................................................................................82
Logical Operations ..............................................................................................82
Zeroing Memory or Registers.................................................................................83
Instruction Pointer ...............................................................................................84
Code Section .......................................................................................................85
Summary.............................................................................................................86
Chapter 8: Reconstructing a Program with Pointers .................................................87
Example of Disassembly Output: No Optimization ..............................................87
Reconstructing C/C++ Code: Part 1 ....................................................................90
Reconstructing C/C++ Code: Part 2 ....................................................................92
Reconstructing C/C++ Code: Part 3 ....................................................................93
Reconstructing C/C++ Code: C/C++ Program ....................................................94
Example of Disassembly Output: Optimized Program .........................................95
Summary.............................................................................................................96
Chapter 9: Memory and Stacks ............................................................................97
Stack: A Definition ...............................................................................................97
Stack Implementation in Memory .......................................................................98
Things to Remember .........................................................................................100
PUSH Instruction ...............................................................................................101
POP Instruction .................................................................................................101
Register Review ................................................................................................102
Application Memory Simplified .............................................................................105
Stack Overflow ..................................................................................................105
Jumps ...............................................................................................................106
Calls ..................................................................................................................108
Call Stack ..........................................................................................................110
Exploring Stack in GDB .....................................................................................112
Summary...........................................................................................................115
Chapter 10: Frame Pointer and Local Variables .......................................................117
Stack Usage ......................................................................................................117
Register Review ................................................................................................118
Addressing Array Elements ...............................................................................118
Stack Structure (No Function Parameters) ...........................................................119
Function Prolog .................................................................................................121
Raw Stack (No Local Variables and Function Parameters) ........................................121
Function Epilog .................................................................................................123
“Local Variables” Project ..................................................................................124
Disassembly of Optimized Executable ..............................................................127
Summary...........................................................................................................128
Chapter 11: Function Parameters .......................................................................129
“FunctionParameters” Project ..........................................................................129
Stack Structure .................................................................................................130
Function Prolog and Epilog ...............................................................................132
Project Disassembled Code with Comments ....................................................133
Parameter Mismatch Problem ..........................................................................137
Summary...........................................................................................................138
Chapter 12: More Instructions .............................................................................139
CPU Flags Register ............................................................................................139
The Fast Way to Fill Memory .............................................................................140
Testing for 0 ......................................................................................................141
TEST – Logical Compare ...................................................................................142
CMP – Compare Two Operands .........................................................................143
TEST or CMP? ...................................................................................................144
Conditional Jumps ............................................................................................144
The Structure of Registers ................................................................................145
Function Return Value .......................................................................................146
Using Byte Registers .........................................................................................146
Summary...........................................................................................................147
Chapter 13: Function Pointer Parameters ..............................................................149
“FunctionPointerParameters” Project ...................................................................149
Commented Disassembly .................................................................................150
Summary...........................................................................................................159
Chapter 14: S ummary of Code Disassembly Patterns ...........................................161
Function Prolog/Epilog ......................................................................................161
LEA (Load Effective Address) ............................................................................164
Passing Parameters ..........................................................................................164
Accessing Parameters and Local Variables ............................................................165
Summary...........................................................................................................166
Index .............................................................................................................167
[only-soft.org].t190313.torrent
Торрент: Зарегистрирован   [ 2024-01-04 08:05 ]

3 KB

Статус: проверено
Скачан: 1 раз
Размер: 7 MB
Оценка: 
(Голосов: 0)
Поблагодарили: 0  Спасибо
Vostokov Dmitry / Востоков Дмитрий - Foundations of Linux Debugging, Disassembling, and Reversing / Основы отладки, дизассемблирования и реверсирования Linux [2023, PDF, EPUB, ENG] скачать торрент бесплатно и без регистрации
[Профиль] [ЛС]
Форум Тема Автор Размер
Программирование Vostokov D. - Encyclopedia of Crash Dump Analysis Patterns [2017, PDF, ENG] Программист 14 MB
Mac OS; Linux, FreeBSD и прочие *NIX Vostokov Dmitry / Востоков Дмитрий - Foundations of ARM64 Linux Debugging, Disassembling, and Reversing / Основы отладки, дизассемблирования и реверсирования ARM64 Linux [2023, PDF, EPUB, ENG] iPhone 7 MB
Программирование Vostokov Dmitry / Востоков Дмитрий - Fundamentals of Trace and Log Analysis: A Pattern-Oriented Approach to Monitoring, Diagnostics, and Debugging / Основы трассировк... Программист 11 MB
Mac OS; Linux, FreeBSD и прочие *NIX Vostokov Dmitry / Востоков Дмитрий - Memory Thinking for C and C++ Linux Diagnostics: Slides with Descriptions Only / Анализ памяти для диагностики Linux на C и C++: только слайды с описаниями [2023,... iPhone 8 MB
Программирование Vostokov Dmitry / Востоков Дмитрий - Memory Thinking for C and C++ Windows Diagnostics: Slides with Descriptions Only / Анализ памяти для диагностики Windows на C и C++: только слайды с описаниями... Программист 2 MB
Программирование Vostokov Dmitry / Востоков Дмитрий - Python Debugging for AI, Machine Learning, and Cloud Computing: A Pattern-Oriented Approach / [2024, PDF, EPUB, ENG] Программист 13 MB
Показать сообщения:    
Ответить на тему

Текущее время: Сегодня, в 19:43

Часовой пояс: GMT + 4



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы