دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [1 ed.]
نویسندگان: Dmitry Vostokov
سری:
ISBN (شابک) : 148429081X, 9781484290828
ناشر: Apress
سال نشر: 2023
تعداد صفحات: 184
[180]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 3 Mb
در صورت تبدیل فایل کتاب Foundations of ARM64 Linux Debugging, Disassembling, and Reversing: Analyze Code, Understand Stack Memory Usage, and Reconstruct Original C/C++ Code with ARM64 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مبانی اشکال زدایی، جداسازی و معکوس کردن لینوکس ARM64: تجزیه و تحلیل کد، درک میزان استفاده از حافظه پشته، و بازسازی کد اصلی C/C++ با ARM64 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
درک کاملی از نحوه تولید کد باینری توسط کامپایلرهای لینوکس C و C به دست آورید. این کتاب تجزیه و تحلیل معکوس و باینری معماری ARM64 را توضیح می دهد که اکنون توسط ارائه دهندگان ابر لینوکس استفاده می شود و موضوعاتی از نوشتن برنامه ها به زبان اسمبلی، اشکال زدایی زنده و تجزیه و تحلیل باینری استاتیک کدهای C و C کامپایل شده را پوشش می دهد. برای کسانی که با دستگاه های تعبیه شده از جمله تلفن همراه و تبلت کار می کنند ایده آل است. با استفاده از آخرین نسخه Red Hat، شما از نزدیک به پایه های تشخیص حافظه هسته، اشکال زدایی زنده و پس از مرگ برنامه ها، سرویس ها و سیستم های لینوکس نگاه خواهید کرد. شما همچنین با دیباگر GDB کار خواهید کرد و از آن برای جداسازی و معکوس کردن استفاده خواهید کرد. این کتاب از تمرین های عملی گام به گام افزایش پیچیدگی همراه با توضیحات و نمودارهای فراوان از جمله برخی موضوعات زمینه ضروری استفاده می کند. علاوه بر این، شما قادر خواهید بود چنین کدهایی را با اطمینان تجزیه و تحلیل کنید، استفاده از حافظه پشته را درک کنید و کد C/C اصلی را بازسازی کنید. و همانطور که خواهید دید، تحقیقات قانونی حافظه، بدافزارها و تجزیه و تحلیل آسیب پذیری ها، نیازمند درک زبان اسمبلی ARM64 و نحوه تولید کدهای کامپایلرهای C و C، از جمله طرح بندی حافظه و اشاره گرها هستند. این کتاب دانش پس زمینه و مبانی عملی مورد نیاز برای درک ساختار و رفتار برنامه داخلی لینوکس را ارائه می دهد. مبانی اشکال زدایی، جداسازی و معکوس کردن لینوکس ARM64 همراهی عالی برای اصول اشکال زدایی، جداسازی و معکوس کردن لینوکس برای خوانندگان علاقه مند به امنیت فضای ابری یا سایبری است. آنچه خواهید آموخت مروری بر اصول زبان اسمبلی ARM64 دستورات ضروری دیباگر GDB برای اشکال زدایی و تجزیه و تحلیل باینری را بررسی کنید. C پیادهسازی و استفاده میشوند Who This Book Is For Software پشتیبانی و مهندسین تشدید، مهندسین امنیت ابر، مهندسین قابلیت اطمینان سایت، DevSecOps، مهندسین پلتفرم، آزمایشکنندگان نرمافزار، مهندسین نرمافزار Linux C/C و محققان امنیتی بدون پیشزمینه زبان اسمبلی ARM64، و یادگیری مبتدیان تکنیک های مهندسی معکوس نرم افزار لینوکس.
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.
Table of Contents About the Author About the Technical Reviewer Preface Chapter 1: Memory, Registers, and Simple Arithmetic Memory and Registers Inside an Idealized Computer Memory and Registers Inside ARM 64-Bit Computer “Arithmetic” Project: Memory Layout and Registers “Arithmetic” Project: A Computer Program “Arithmetic” Project: Assigning Numbers to Memory Locations Assigning Numbers to Registers “Arithmetic” Project: Adding Numbers to Memory Cells Incrementing/Decrementing Numbers in Memory and Registers Multiplying Numbers Summary Chapter 2: Code Optimization “Arithmetic” Project: C/C++ Program Downloading GDB GDB Disassembly Output – No Optimization GDB Disassembly Output – Optimization Summary Chapter 3: Number Representations Numbers and Their Representations Decimal Representation (Base Ten) Ternary Representation (Base Three) Binary Representation (Base Two) Hexadecimal Representation (Base Sixteen) Why Are Hexadecimals Used? Summary Chapter 4: Pointers A Definition “Pointers” Project: Memory Layout and Registers “Pointers” Project: Calculations Using Pointers to Assign Numbers to Memory Cells Adding Numbers Using Pointers Incrementing Numbers Using Pointers Multiplying Numbers Using Pointers Summary Chapter 5: Bytes, Halfwords, Words, and Doublewords Using Hexadecimal Numbers Byte Granularity Bit Granularity Memory Layout Summary Chapter 6: Pointers to Memory Pointers Revisited Addressing Types Registers Revisited NULL Pointers Invalid Pointers Variables As Pointers Pointer Initialization Initialized and Uninitialized Data More Pseudo Notation “MemoryPointers” Project: Memory Layout Summary Chapter 7: Logical Instructions and PC Instruction Format Logical Shift Instructions Logical Operations Zeroing Memory or Registers Program Counter Code Section Summary Chapter 8: Reconstructing a Program with Pointers Example of Disassembly Output: No Optimization Reconstructing C/C++ Code: Part 1 Reconstructing C/C++ Code: Part 2 Reconstructing C/C++ Code: Part 3 Reconstructing C/C++ Code: C/C++ Program Example of Disassembly Output: Optimized Program Summary Chapter 9: Memory and Stacks Stack: A Definition Stack Implementation in Memory Things to Remember Stack Push Implementation Stack Pop Implementation Register Review Application Memory Simplified Stack Overflow Jumps Calls Call Stack Exploring Stack in GDB Summary Chapter 10: Frame Pointer and Local Variables Stack Usage Register Review Addressing Array Elements Stack Structure (No Function Parameters) Function Prolog Raw Stack (No Local Variables and Function Parameters) Function Epilog “Local Variables” Project Disassembly of Optimized Executable Summary Chapter 11: Function Parameters “FunctionParameters” Project Stack Structure Function Prolog and Epilog Project Disassembled Code with Comments Parameter Mismatch Problem Summary Chapter 12: More Instructions PSTATE Flags Testing for 0 TST – Logical Compare CMP – Compare Two Operands TST or CMP? Conditional Jumps Function Return Value Summary Chapter 13: Function Pointer Parameters “FunctionPointerParameters” Project Commented Disassembly Summary Chapter 14: Summary of Code Disassembly Patterns Function Prolog/Epilog ADR (Address) Passing Parameters Accessing Saved Parameters and Local Variables Summary Index