#مهندسی_معکوس_نرم_افزار_اندروید قسمت اول
برسی ساختار فایل APK
فایل نصبی سیستم عامل اندروید گوگل apk که مخفف Android Package میباشد دارای بخش های مختلفی میباشد که به برسی آنها میپردازیم
تصویر زیر مراحل کامپایل و ایجاد یک فایل APK را نمایش میدهد که به تشریح قسمت های آن میپردازیم.
@dorsateam
برسی ساختار فایل APK
فایل نصبی سیستم عامل اندروید گوگل apk که مخفف Android Package میباشد دارای بخش های مختلفی میباشد که به برسی آنها میپردازیم
تصویر زیر مراحل کامپایل و ایجاد یک فایل APK را نمایش میدهد که به تشریح قسمت های آن میپردازیم.
@dorsateam
مرحله اول :
همانطور که میدانید زبان برنامه نویسی اصلی اندروید جاوا میباشد که در محیط Android Studio نوشته میشود . در این بخش کد های نرم افزار توسط کامپایلر جاوا به فایل های ماشین یعنی class. کامپایل میشوند. البته برای محافظت از این کدها از obfuscator ها استفاده میشود که decompile کردن فایل های class. را قدری مشکل میسازد.
@dorsateam
همانطور که میدانید زبان برنامه نویسی اصلی اندروید جاوا میباشد که در محیط Android Studio نوشته میشود . در این بخش کد های نرم افزار توسط کامپایلر جاوا به فایل های ماشین یعنی class. کامپایل میشوند. البته برای محافظت از این کدها از obfuscator ها استفاده میشود که decompile کردن فایل های class. را قدری مشکل میسازد.
@dorsateam
👍1
مرحله دوم :
سیستم عامل اندروید قابلیت اجرا و فهمیدن کدهای class. را ندارد پس باید این فایل ها به فایل های dex. تبدیل شوند تا سیستم عامل اندروید بتواند آن را اجرا کند برای این کار از ابزار Dx Tool استفاده میشود . البته ماننده مرحله اول از obfuscator ها استفاده میشود تا decompile فایل های dex. را کمی سختر و دشوار کنند.
@dorsateam
سیستم عامل اندروید قابلیت اجرا و فهمیدن کدهای class. را ندارد پس باید این فایل ها به فایل های dex. تبدیل شوند تا سیستم عامل اندروید بتواند آن را اجرا کند برای این کار از ابزار Dx Tool استفاده میشود . البته ماننده مرحله اول از obfuscator ها استفاده میشود تا decompile فایل های dex. را کمی سختر و دشوار کنند.
@dorsateam
مرحله سوم :
در این مرحله تمامی منابعی که در اپلیکیشن استفاده شده از قبیل تصاویر ، فونت ها ، Layout ها و کتابخانه هایی که بصورت سیستمی میباشد همان فایل so به فایل APK اضافه میشود.
@dorsateam
در این مرحله تمامی منابعی که در اپلیکیشن استفاده شده از قبیل تصاویر ، فونت ها ، Layout ها و کتابخانه هایی که بصورت سیستمی میباشد همان فایل so به فایل APK اضافه میشود.
@dorsateam
مرحله چهارم ( آخرین مرحله ) :
در این مرحل تمای فایل های منابع و فایل های dex. و فایل حیاتی AndroidManifest.xml بصورت فایل فشرده همانند zip تبدیل به یک فایل به پسوند apk. میشود اما این فایل قابل نصب نیست و باید توسط Jar Signer با الگوریتم x509 باید به امضای دیجیتالی برسد تا فایل ها encode شوند و براحتی قابل خواندن نباشند و هم قابل نصب باشند.
@dorsateam
در این مرحل تمای فایل های منابع و فایل های dex. و فایل حیاتی AndroidManifest.xml بصورت فایل فشرده همانند zip تبدیل به یک فایل به پسوند apk. میشود اما این فایل قابل نصب نیست و باید توسط Jar Signer با الگوریتم x509 باید به امضای دیجیتالی برسد تا فایل ها encode شوند و براحتی قابل خواندن نباشند و هم قابل نصب باشند.
@dorsateam
👍1
ابزار های مهندسی معکوس اندروید
در این مرحله نیازمند چندین ابزار هستیم که باید آنها را دانلود و نصب کنیم :
نرم افزار Java Development Kit : این نرم افزار ماشین مجازی جاوا هست و اجازه میدهد که بتونیم کد های جاوا را اجرا کنیم نکته ای که هست متاسفانه کاربران ایرانی نمی توانند مستقیم آنرا دانلود کنند پس تو گوگل سرج کنید و از سایت های ایرانی دانلود و نصب کنید . نسخه 64 بیتی بهتر است .
ابزار apktool : بااین ابزار میتونیم فایل های apk رو دیکامپایل و کامپایل کنیم تا بتوانیم به منابع اپلیکشین دسترسی داشته باشیم .
ابزار dex2jar : با این ابزار میتونیم فایل اصلی classes.dex رو به فایل jar تبدیل کنیم تا بتونیم کد های جاوای اپلیکشن رو ببینم .
نرم افزار jd-gui : با این ابزار میتوانیم کدهای جاوا را ببینیم و در آنها جستجو کنیم.
ابزار Apk Signed : با این ابزار زمانی که فایل apk را دستکاری کردیم دیگه بعد از کامپایل کردن دیگر قابل نصب نیست باید امضایی دیجیتالی روی فایل apk اعمال کنیم .
ابزار های فوق رو میتوانید در پست های زیر دانلود کنید.
@dorsateam
در این مرحله نیازمند چندین ابزار هستیم که باید آنها را دانلود و نصب کنیم :
نرم افزار Java Development Kit : این نرم افزار ماشین مجازی جاوا هست و اجازه میدهد که بتونیم کد های جاوا را اجرا کنیم نکته ای که هست متاسفانه کاربران ایرانی نمی توانند مستقیم آنرا دانلود کنند پس تو گوگل سرج کنید و از سایت های ایرانی دانلود و نصب کنید . نسخه 64 بیتی بهتر است .
ابزار apktool : بااین ابزار میتونیم فایل های apk رو دیکامپایل و کامپایل کنیم تا بتوانیم به منابع اپلیکشین دسترسی داشته باشیم .
ابزار dex2jar : با این ابزار میتونیم فایل اصلی classes.dex رو به فایل jar تبدیل کنیم تا بتونیم کد های جاوای اپلیکشن رو ببینم .
نرم افزار jd-gui : با این ابزار میتوانیم کدهای جاوا را ببینیم و در آنها جستجو کنیم.
ابزار Apk Signed : با این ابزار زمانی که فایل apk را دستکاری کردیم دیگه بعد از کامپایل کردن دیگر قابل نصب نیست باید امضایی دیجیتالی روی فایل apk اعمال کنیم .
ابزار های فوق رو میتوانید در پست های زیر دانلود کنید.
@dorsateam
❤1
Media is too big
VIEW IN TELEGRAM
دانلود آموزش مهندسی معکوس اندروید قسمت اول
@dorsateam
@dorsateam
Media is too big
VIEW IN TELEGRAM
دانلود آموزش مهندسی معکوس اندروید قسمت دوم
@dorsateam
@dorsateam
@dorsateam_Dalvik_opcodes.pdf
196.4 KB
مرجع دستورات اسمبلی Dalvik Opcodes برای اندروید
@dorsateam
@dorsateam