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

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

iPhone ®

Пол:

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

Сообщений: 2152

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

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

Foundations of ARM64 Linux Debugging, Disassembling, and Reversing: Analyze Code, Understand Stack Memory Usage, and Reconstruct Original C/C++ Code with ARM64 / Основы отладки, дизассемблирования и реверсирования ARM64 Linux: Анализ кода, понимание использования стековой памяти и восстановление исходного кода C/C++ с ARM64
Год издания: 2023
Автор: Vostokov Dmitry / Востоков Дмитрий
Издательство: Apress Media
ISBN: 978-1-4842-9082-8
Язык: Английский
Формат: PDF, EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 180
Описание: Gain a solid understanding of how Linux C and C++ compilers generate binary code. This book explains the reversing and binary analysis of ARM64 architecture now used by major Linux cloud providers and covers topics ranging from writing programs in assembly language, live debugging, and static binary analysis of compiled C and C++ code. It is ideal for those working with embedded devices, including mobile phones and tablets.
Using the latest version of Red Hat, you'll look closely at the foundations of diagnostics of core memory dumps, live and postmortem debugging of Linux applications, services, and systems. You'll also work with the GDB debugger and use it for disassembly and reversing. This book uses practical step-by-step exercises of increasing complexity with explanations and many diagrams, including some necessary background topics. In addition, you will be able to analyze such code confidently, understand stack memory usage, and reconstruct original C/C++ code.
And as you'll see, memory forensics, malware, and vulnerability analysis, require an understanding of ARM64 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 to understand internal Linux program structure and behavior.
Foundations of ARM64 Linux Debugging, Disassembling, and Reversing is the perfect companion to Foundations of Linux Debugging, Disassembling, and Reversing for readers interested in the cloud or cybersecurity.
What You'll Learn
Review the basics of ARM64 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 ARM64 assembly language background, and beginners learning Linux software reverse engineering techniques.
Получите четкое представление о том, как компиляторы Linux C и C++ генерируют двоичный код. В этой книге объясняется реверсивный и двоичный анализ архитектуры ARM64, которая в настоящее время используется крупнейшими облачными провайдерами Linux, и рассматриваются различные темы, начиная от написания программ на языке ассемблера, оперативной отладки и статического двоичного анализа скомпилированного кода C и C++. Он идеально подходит для тех, кто работает со встроенными устройствами, включая мобильные телефоны и планшеты.
Используя последнюю версию Red Hat, вы внимательно изучите основы диагностики дампов памяти ядра, оперативной и посмертной отладки приложений, служб и систем Linux. Вы также будете работать с отладчиком GDB и использовать его для дизассемблирования и реверсирования. В этой книге используются практические пошаговые упражнения возрастающей сложности с объяснениями и множеством диаграмм, включая некоторые необходимые справочные разделы. Кроме того, вы сможете уверенно анализировать такой код, понимать использование стековой памяти и реконструировать исходный код на C/C++.
И, как вы увидите, криминалистика памяти, анализ вредоносных программ и уязвимостей требуют понимания языка ассемблера ARM64 и того, как компиляторы C и C++ генерируют код, включая расположение памяти и указатели. Эта книга предоставляет базовые знания и практические основы, необходимые для понимания внутренней структуры и поведения программ Linux.
Основы отладки, дизассемблирования и реверсирования ARM64 Linux - идеальное дополнение к основам отладки, дизассемблирования и реверсирования Linux для читателей, интересующихся облаком или кибербезопасностью.
Чему ты научишься
Ознакомьтесь с основами языка ассемблера ARM64
Изучите основные команды отладчика GDB для отладки и двоичного анализа
Изучите генерацию кода компиляторами C и C++ с оптимизацией компилятора и без нее
Посмотрите на дизассемблирование двоичного кода и обратные шаблоны
Посмотрите, как реализуются и используются указатели в C и C++
Для кого предназначена Эта Книга
Инженеры по поддержке программного обеспечения и эскалации, инженеры по облачной безопасности, инженеры по надежности сайтов, разработчики программного обеспечения, инженеры платформ, тестировщики программного обеспечения, инженеры-программисты Linux C/C++ и исследователи безопасности без знания языка ассемблера ARM64, а также новички, изучающие методы реверс-инжиниринга программного обеспечения 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 ARM 64-Bit Computer ............................................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 .......................................9
Incrementing/Decrementing Numbers in Memory and Registers ............................12
Multiplying Numbers ...........................................................................................15
Summary.............................................................................................................18
Chapter 2: Code Optimization .............................................................................19
“Arithmetic” Project: C/C++ Program .................................................................19
Downloading GDB ...............................................................................................20
GDB Disassembly Output – No Optimization .......................................................21
GDB Disassembly Output – Optimization ............................................................27
Summary.............................................................................................................28
Chapter 3: Number Representations....................................................................29
Numbers and Their Representations ...................................................................29
Decimal Representation (Base Ten) ....................................................................30
Ternary Representation (Base Three) ..................................................................30
Binary Representation (Base Two) ......................................................................31
Hexadecimal Representation (Base Sixteen) ......................................................32
Why Are Hexadecimals Used? .............................................................................32
Summary.............................................................................................................34
Chapter 4: Pointers ..............................................................................................35
A Definition..........................................................................................................35
“Pointers” Project: Memory Layout and Registers ..............................................36
“Pointers” Project: Calculations ..........................................................................38
Using Pointers to Assign Numbers to Memory Cells ...........................................39
Adding Numbers Using Pointers .........................................................................46
Incrementing Numbers Using Pointers ...............................................................51
Multiplying Numbers Using Pointers ...................................................................54
Summary.............................................................................................................58
Chapter 5: Bytes, Halfwords, Words, and Doublewords ...........................................59
Using Hexadecimal Numbers ..............................................................................59
Byte Granularity ..................................................................................................60
Bit Granularity .....................................................................................................60
Memory Layout ...................................................................................................61
Summary.............................................................................................................64
Chapter 6: Pointers to Memory .............................................................................65
Pointers Revisited ...............................................................................................65
Addressing Types ................................................................................................65
Registers Revisited .............................................................................................70
NULL Pointers .....................................................................................................70
Invalid Pointers ...................................................................................................70
Variables As Pointers ..........................................................................................71
Pointer Initialization ............................................................................................71
Initialized and Uninitialized Data .........................................................................72
More Pseudo Notation .........................................................................................72
“MemoryPointers” Project: Memory Layout..............................................................73
Summary.............................................................................................................87
Chapter 7: Logical Instructions and PC ...................................................................89
Instruction Format...............................................................................................89
Logical Shift Instructions ....................................................................................90
Logical Operations ..............................................................................................90
Zeroing Memory or Registers.................................................................................91
Program Counter .................................................................................................92
Code Section .......................................................................................................93
Summary.............................................................................................................94
Chapter 8: Reconstructing a Program with Pointers .................................................95
Example of Disassembly Output: No Optimization .................................................95
Reconstructing C/C++ Code: Part 1 ....................................................................98
Reconstructing C/C++ Code: Part 2 ..................................................................100
Reconstructing C/C++ Code: Part 3 ..................................................................102
Reconstructing C/C++ Code: C/C++ Program ......................................................103
Example of Disassembly Output: Optimized Program .............................................104
Summary...........................................................................................................106
Chapter 9: Memory and Stacks ............................................................................107
Stack: A Definition .............................................................................................107
Stack Implementation in Memory ........................................................................108
Things to Remember .........................................................................................110
Stack Push Implementation ..............................................................................111
Stack Pop Implementation ................................................................................111
Register Review ................................................................................................111
Application Memory Simplified .........................................................................112
Stack Overflow ..................................................................................................113
Jumps ...............................................................................................................114
Calls ..................................................................................................................115
Call Stack ..........................................................................................................116
Exploring Stack in GDB .....................................................................................118
Summary...........................................................................................................121
Chapter 10: Frame Pointer and Local Variables ......................................................123
Stack Usage ......................................................................................................123
Register Review ................................................................................................124
Addressing Array Elements ...............................................................................124
Stack Structure (No Function Parameters) .......................................................126
Function Prolog .................................................................................................127
Raw Stack (No Local Variables and Function Parameters) ........................................127
Function Epilog .................................................................................................129
“Local Variables” Project ..................................................................................130
Disassembly of Optimized Executable ..............................................................133
Summary...........................................................................................................134
Chapter 11: Function Parameters ........................................................................135
“FunctionParameters” Project ..........................................................................135
Stack Structure .................................................................................................136
Function Prolog and Epilog ...............................................................................138
Project Disassembled Code with Comments ....................................................139
Parameter Mismatch Problem ..........................................................................144
Summary...........................................................................................................145
Chapter 12: More Instructions .............................................................................147
PSTATE Flags .....................................................................................................147
Testing for 0 ......................................................................................................147
TST – Logical Compare .....................................................................................148
CMP – Compare Two Operands .........................................................................149
TST or CMP? .....................................................................................................150
Conditional Jumps ............................................................................................150
Function Return Value .......................................................................................151
Summary...........................................................................................................152
Chapter 13: Function Pointer Parameters ...........................................................153
“FunctionPointerParameters” Project ...............................................................153
Commented Disassembly .................................................................................154
Summary...........................................................................................................161
Chapter 14: S ummary of Code Disassembly Patterns ............................................163
Function Prolog/Epilog ......................................................................................163
ADR (Address) ...................................................................................................164
Passing Parameters ..........................................................................................164
Accessing Saved Parameters and Local Variables ..................................................165
Summary...........................................................................................................166
Index .............................................................................................................167
[only-soft.org].t190312.torrent
Торрент: Зарегистрирован   [ 2024-01-04 08:05 ]

3 KB

Статус: проверено
Скачан: 1 раз
Размер: 7 MB
Оценка: 
(Голосов: 0)
Поблагодарили: 0  Спасибо
Vostokov Dmitry / Востоков Дмитрий - Foundations of ARM64 Linux Debugging, Disassembling, and Reversing / Основы отладки, дизассемблирования и реверсирования ARM64 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 Linux Debugging, Disassembling, and Reversing / Основы отладки, дизассемблирования и реверсирования 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
Показать сообщения:    
Ответить на тему

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

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



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