Android Reverse Engineering

دربارهی دوره
مهندسی معکوس نرم افزار از حوزههای مهم امنیت سایبری در شاخههای offensive و defensive است که در آن به بررسی عملکرد، ساختمان و پیادهسازی یک نرم افزار یا سیستم پرداخته میشود. ردپای اهمیت مهندسی معکوس نرمافزار را میتوان در بسیاری از شاخههای علوم و فعالیتهای مرتبط با امنیت سایبری یافت؛ چرا که همانطور که یک شکارچی با مهندسی معکوس نرم افزارهای هدف خود، میتواند به اطلاعات ارزشمندی از منابع و شیوهی عملکرد سیستم هدف خود دست یابد، یک محقق امنیت سایبری نیز میتواند با مهندسی معکوس به شیوهی عملکرد و ساختمان بدافزارها پی ببرد.
برنامههای اندرویدی به دلیل طبیعت شیوهی کار سیستمعامل اندروید و فرآیند اجرای نرمافزارهای آن، پتانسیل و طبیعت ویژهای در روشهای مهندسی معکوس را دارا میباشند. به همین دلیل، در عین خوانایی و سهولت نسبی بررسی کدهای یک برنامهی اندرویدی، درک صحیح و سریع ساختمان و پیادهسازی آن، نیازمند درک عمقی به سیستمعامل اندروید و شیوه اجرا و تعامل سیستمعامل با برنامه است.
این دوره به بررسی ابزارها، رویکردها و روشهای مهندسی معکوس اپلیکیشنهای اندرویدی در کنار شیوه تعامل برنامهها با سیستمعامل و بخشهای مختلف اندروید میپردازد. شما پس از گذراندن این دوره قادر خواهید بود ساختمان و شیوهی کار یک اپلیکیشن اندرویدی را طی فرآیند مهندسی معکوس کشف کنید.
مدت زمان دوره
مدت زمان این دوره ۳۰ ساعت است و به صورت کلاسهای ۳ ساعته، طی ۱۰ جلسه به صورت آنلاین از ساعت ۱۷:۳۰ تا ۲۰:۳۰ روزهای دوشنبه و پنجشنبه برگزار میشود. آغاز جلسات این دوره از روز دوشنبه مورخ ۱۴۰۰/۱۱/۱۱ خواهد بود.
گواهینامهی دوره
برای دریافت گواهینامهی این دوره، ده روز پس از جلسهی پایانی، آزمونی برگزار خواهد شد که با قبولی در این آزمون، امکان صدور گواهینامهی دوره برای شما را خواهیم داشت. حضور در آزمون پایانی و دریافت گواهینامهی دوره برای شرکتکنندگان اختیاری است.
هزینهی شرکت در آزمون پایانی: ۳۰ هزارتومان
هزینهی چاپ و صدور گواهینامهی دوره: ۵۰ هزارتومان
این دوره به چه افرادی توصیه میشود؟
- کارشناسان تست نفوذ و ارزیابی امنیتی
- شکارچیان آسیبپذیری
- محققین بدافزار
- کارشناسان forensic
برای حضور در این دوره چه دانشهایی باید داشته باشم؟
- آشنایی کلی با سیستمعامل اندروید
- آشنایی کلی با زبان برنامهنویسی جاوا
- آشنایی با تعاریف و مبانی امنیت سایبری شامل حملات و بدافزارها
- حداقل یک سال سابقهی فعالیت در زمینهی امنیت سایبری
سرفصلهای دوره
Chapter 1: Android OS
1.1 Android Architecture
1.1.1 Kernel
1.1.2 APIs
1.1.3 Partitions
1.1.4 Permissions
1.1.5 Inter-App Communication
1.2 Android App Development Process
1.2.1 Android Studio
1.2.2 Debugging Tools
1.3 Intro to Android APIs
1.4 Android and Application Relationship
1.5 Discovering and Manipulating Android Environment
Chapter 2: Static Analysis
2.1 APK Architecture
2.2 APK Manifests and Resources Analysis
2.3 Intro to DEX Reverse Engineering
2.4 DEX Decompilation
2.4.1 Decompilation Process
2.4.2 Decompilation Tools
2.4.3 Decompilation Outputs
2.5 Automatic Code Analysis
2.5.1 MobSF
2.5.2 Code Analysis Tools
2.5.3 Using Tools to Spot Points of Interest
2.6 Manual Code Analysis
2.7 Obfuscation and Deobfuscation
2.7.1 Intro to Obfuscation
2.7.2 Deobfuscation Tools
2.7.3 Using IDEs and Code Editors for Deobfuscation
2.8 SMALI
Chapter 3: Dynamic Analysis
3.1 Intro to Sandbox and VM
3.2 Setting up Lab Environment
3.2.1 Genymotion
3.2.2 BurpSuit
3.2.3 Automated Scripts
3.3 Automatic Dynamic Analysis
3.4 Manual Dynamic Analysis
3.6 Intro to Frida
3.7 Runtime Manipulation
3.8 Dynamic Analysis of Deep Parts of App
Chapter 4: Hybrid Techniques and Functionality Understanding
4.1 Functionality Understanding
4.1.1 Putting Dynamic and Static Analysis Together
4.1.2 Filling the Gaps with Analysis Focus Techniques
4.2 Documenting
4.3 Intro to Hybrid Techniques
4.3.1 Gray Box Runtime Manipulation
4.3.2 Focused Dynamic Analysis
4.3.3 Intro to Patching
4.4 Deobfuscation Using Hybrid Techniques
4.5 Understanding and Documenting Server-side APIs
4.5.1 BurpSuit Proxy
4.5.2 Frida JSON Hooks
ویژگی های دوره
- درس 4
- آزمونها 1
- مدت زمان 30 ساعت
- سطح مهارت پیشرفته
- زبان فارسی و انگلیسی
- دانشجویان 11
- گواهی نامه بله
- ارزیابی بله