A practical guide to kernel, firmware, and TrustZone analysis
Austin Kim

#Reverse_Engineering
#Armv8-A
#Kernel
#Firmware
#TrustZone
#ELF
«این کتاب فقط یک مرجع نیست؛ بلکه جعبهابزاری برای تسلط بر مهندسی معکوس در سطح سیلیکون است. شدیداً توصیه میشود.»
— Piyush Itankar، مهندس نرمافزار تعبیهشده، گوگل
مهارتهای تحلیل باینری بدون نیاز به سورس کد را آزاد کنید! این راهنمای عملی، نوشتهشده توسط یک مهندس هسته لینوکس با بیش از ۱۴ سال تجربه صنعتی، پایهای محکم در مهندسی معکوس فراهم میکند و شما را از یک تحلیلگر کنجکاو به یک متخصص تبدیل میکند. با تکنیکهای پیشرفته، فایلهای هستهای شامل ماژولهای کرنل (*.ko)، vmlinux و vmcore را تحلیل کرده و قدرت بررسی سیستمها در سطح پایه را کسب خواهید کرد.
این سفر عملی سهبخشی با اصول مهندسی معکوس آغاز میشود، ویژگیهای کلیدی پردازندههای Armv8-A و فرمت فایل ELF را معرفی میکند. بخش دوم، شما را گامبهگام در فرآیند مهندسی معکوس همراهی میکند: از آمادهسازی محیط Arm تا استفاده از ابزارهای تحلیل استاتیک و داینامیک، از جمله روشهای نوآورانه تحلیل باینریهای کرنل و ابزار قدرتمند اشکالزدایی uftrace. بخش پایانی به امنیت میپردازد و TrustZone و آخرین تکنیکهای امنیتی برای محافظت از دستگاههای Arm در سطح سختافزار را بررسی میکند.
این کتاب برای حرفهایها و علاقهمندانی است که به مهندسی معکوس و اشکالزدایی در دستگاههای مبتنی بر Armv8-A علاقه دارند. بهویژه برای مهندسین نرمافزار سیستمی، مشاوران امنیتی و هکرهای اخلاقی که میخواهند مهارت تحلیل باینری خود را گسترش دهند، مناسب است. داشتن درک پایهای از زبان برنامهنویسی C ضروری است و آشنایی با معماری کامپیوتر، سیستمهای لینوکس و مفاهیم امنیتی یک مزیت بزرگ خواهد بود.
It's not just a reference - it's a toolkit for mastering reverse engineering at the silicon level. Highly recommended.” - Piyush Itankar, Embedded Software Engineering, Google
Explore reverse engineering in Armv8-A-based Arm devices, develop the skills to analyze binaries, and leverage cutting-edge security hardening features through hands-on techniques and expert insights
Unlock the secrets hidden in binary code without needing the source! Written by a Linux kernel engineer and author with over 14 years of industry experience, this book lays a solid foundation in reverse engineering and takes you from curious analyst to expert. You’ll master advanced techniques to dissect kernel binaries, including kernel module files, vmlinux, and vmcore, giving you the power to analyze systems at their core.
This practical, three-part journey starts with the essentials of reverse engineering, introducing the key features of Armv8-A processors and the ELF file format. The second part walks you through the reverse-engineering process, from Arm environment setup to using static and dynamic analysis tools, including innovative methods for analyzing kernel binaries and the powerful debugging tool uftrace. The final part covers security, exploring TrustZone and the latest security techniques to safeguard Arm devices at the hardware level.
By the end of this reverse engineering book, you'll have comprehensive Armv8-A expertise and the practical skills to analyze any binary with confidence while leveraging advanced security features to harden your systems.
This book is for professionals and enthusiasts interested in reverse engineering and debugging on Armv8-A-based devices. It is especially useful for system software engineers, security consultants, and ethical hackers expanding their binary analysis expertise. To get the most out of this book, you should have a basic understanding of the C programming language. Familiarity with computer architecture, Linux systems, and security concepts will be a definite advantage.
Table of Contents
Part 1: Fundamentals of Armv8-A Architecture
Chapter 1: Learning Fundamentals of Arm Architecture
Chapter 2: Understanding the ELF Binary Format
Chapter 3: Manipulating Data with Arm Data Processing Instructions
Chapter 4: Reading and Writing with Memory Access Instructions
Chapter 5: Controlling Execution with Flow Control Instructions
Part 2: Background Knowledge for Binary Analysis
Chapter 6: Introducing Reverse Engineering
Chapter 7: Setting Up a Practice Environment with an Arm Device
Chapter 8: Unpacking the Kernel with Linux Fundamentals
Part 3: Unlocking Key Binary Analysis Skills for Reverse Engineering
Chapter 9: Understanding Basic Static Analysis
Chapter 10: Going Deeper with Advanced Static Analysis
Chapter 11: Analyzing Program Behavior with Basic Dynamic Analysis
Chapter 12: Expert Techniques in Advanced Dynamic Analysis
Chapter 13: Tracing Execution with uftrace
Part 4: Security Features in Armv8-A Systems
Chapter 14: Securing Execution with Armv8-A TrustZone
Chapter 15: Building Defenses with Key Security Features of Armv8-A
“This in-depth and accessible guide offers a comprehensive journey into reverse engineering for Armv8-A-based devices, blending foundational knowledge with advanced practical techniques. Authored by a seasoned Linux kernel engineer, it walks you through key architectural elements such as registers, exception handling, and TrustZone, helping build a strong technical base. [...] Readers are guided through setting up an Arm reverse engineering environment and using powerful tools such as GDB, uftrace, and binutils to explore system behavior in depth. The book’s hands-on approach ensures readers not only learn reverse engineering theory but also apply it to real firmware and kernel-level challenges. Ideal for system software engineers, ethical hackers, and security researchers, this book empowers readers to master reverse engineering techniques and develop a clear understanding of Armv8-A’s advanced security architecture.”
Rafiuddin Syed, Sr. Principal Engineer, Drako Motors
“On a scale of 1-10, I'd rate this book a solid 9.5 for its depth, practicality, and relevance to ARMv8-A professionals. It's not just a reference - it's a toolkit for mastering reverse engineering at the silicon level. Highly recommended.”
Piyush Itankar, Embedded Software Engineering, Google
“This book serves as an excellent introduction to the AArch64 architecture, offering readers a clear path to grasp the fundamentals before tackling the more detailed Arm Architecture Reference Manual for A-profile. The book’s greatest strengths lie in its practical orientation and choice of tools.”
Yeoreum Yun, Senior Software Engineer, Arm Ltd.
Austin Kim has more than 14 years of experience in embedded Linux BSP development. He has worked on many tasks, such as board bring-up, crash and performance troubleshooting, and bootloader development for Arm-based devices. He has strong skills in binary analysis and has analyzed many memory dumps using TRACE32, Crash Utility, and ftrace. He has solved various kernel issues, including crashes, system lockups, and watchdog resets. Currently, he works as a Linux kernel BSP engineer and technical lecturer at LG Electronics. He enjoys sharing practical debugging skills, especially in areas such as Armv8-A architecture and kernel crash analysis.









