مهندسی معکوس نرم افزار: سفری به اعماق برنامهها
در دنیای پیچیده نرمافزار، مهندسی معکوس نرمافزار نقشی مانند یک کارآگاه ماهر را ایفا میکند و با ظرافت به کاوش در لایههای پنهان برنامهها میپردازد. این فرآیند که به مثابه جراحی نرمافزار عمل میکند، با هدف تجزیه و تحلیل دقیق ساختار، عملکرد و اجزای داخلی یک برنامه، بدون دسترسی به کد منبع آن انجام میشود.
مهندسی معکوس نرمافزار کاربردهای متعددی دارد، از جمله:
با توجه به این موضوع؛ آکادمی لیان اقدام به برگزاری دوره اختصاصی با عنوان "مهندسی معکوس نرمافزار" با تدریس مهندس حاجیانی کرده است.
همانطور که بالاتر اشاره شد، این دوره بصورت اختصاصی توسط آکادمی لیان، تهیه و تدوین شده است. در بخش اول و دوم این دوره، ابتدا با مقدمات و مفاهیم پایهای حوزه مهندسی معکوس آشنا خواهید شد و سپس در فصل سه و چهار با زبانهای برنامهنویسی C و Assembly آشنا خواهید شد. در نهایت در فصلهای پنج، شش، هفت و هشت نیز بصورت تخصصی وارد بحث مهندسی معکوس خواهید شد. شایان ذکر است که امکان تغییرات جزئی در سرفصلها، بنا به نظر استاد دوره، وجود دارد.
همانطور که بالاتر اشاره شد، این دوره بصورت اختصاصی توسط آکادمی لیان، تهیه و تدوین شده است. در بخش اول و دوم این دوره، ابتدا با مقدمات و مفاهیم پایهای حوزه مهندسی معکوس آشنا خواهید شد و سپس در فصل سه و چهار با زبانهای برنامهنویسی C و Assembly آشنا خواهید شد. در نهایت در فصلهای پنج، شش، هفت و هشت نیز بصورت تخصصی وارد بحث مهندسی معکوس خواهید شد. شایان ذکر است که امکان تغییرات جزئی در سرفصلها، بنا به نظر استاد دوره، وجود دارد.
• What is reverse engineering ?
• Why reverse engineering is critical in software development, security, and analysis
• Examples of reverse engineering in industry
• Types of Reverse Engineering
• Use cases of reverse engineering
• Review of jobs and working conditions of reverse engineering
• Data unit
• Data type
• Ascii and Unicode
• Lsb and msb
• Signed and unsigned
• Number Systems
• Convert the number system (bases) to Each other
• CPU Architectures
• Loader
• Low level and high level programming
• Interpreted and Compiled programming language
• X86 vs X64
• Release and debug mode
• Introduction to Portable Executable (PE) Format
• Introduction to Assembly Language
• Install and configuration RadAsm , WinAsm
• Basic Structure of an Assembly Program
• CPU Architecture and Instruction Set
• Data Movement Instructions
• Arithmetic and Logic
• Control Flow
• Stack Operations
• Function Calls and Parameter Passing
• Interrupts and System Calls
• Memory Access and Addressing Modes
• Floating Point
• Inline Assembly
• Installing and Setting Up the C Environment
• Basic Structure of a C Program
• Data Types and Variables
• Input and Output Operations
• Operators and Expressions in C
• Control Flow Statements in C
• Functions and Modular Programming
• Arrays and Strings in C
• Pointers
• Introduction to Static Analysis
• Definition and benefits
• Differences between static and dynamic analysis
• Disassemblers (IDA Pro, Ghidra)
• Binary analysis tools (Binary Ninja, Radare2)
• Basic Static Analysis Techniques
• Introduction to Dynamic Analysis
• Debuggers (OllyDbg, x64dbg, WinDbg , dnspy)
• Monitoring tools (Process Monitor, API Monitor)
• Basic Debugging Techniques
• Advanced Dynamic Analysis Techniques
• Scripts and plugins
• Entry Point Protection (OEP Protection)
• Code Obfuscation
• Code Virtualization
• Anti-Debugging Techniques
• Advanced Anti-Debugging Techniques
• Packing and Unpacking
• Integrity Checks
• Introduction to Software Patching
• Patching Techniques
• +30 software examples
• Real-world case studies
• DRM bypassing protection
• CTF challenges
• Developing custom tools for reverse engineering
• Additional Resources
این دوره نیاز به پیشنیازی ندارد و تمام هر آنچه نیاز است، در دوره پوشش داده خواهد شد.
شما بعد از گذراندن این دوره تواناییهای زیر را کسب خواهید کرد: