ابتدا به بررسی ساختار فایل های اندرویدی میپردازیم؛ دوستان فایل های اندرویدی با فرمت .apk درواقع چیزی نیستند جز یک فایل فشرده شده که شما با تقییر فرمت آن ها به .zip میتوانید از طریق یک Archive Manger به فایل های درون آن دسترسی پیدا کنید
در این فایل میبینید که چندین پوشه مختلف وجود دارد که اگر بخواهم توضیح بدهم، توضیح اضافه و غیر مرتبط به بحث داده ام ولی خب بعضی قسمت های مهم رو مختصر توضیحی میدهم
درواقع تمامی Source-Code در این فایل قرار دارد (برای دسترسی به Source-Code درون این فایل میبایست آن را Decompile سازید)
تمامی Library های برنامه در این دایرکتوری قرار دارد
تمامی Layout ها و مباحث مربوط به UI و دیزاین یک برنامه در این فایل قرار دارد
این فایل شناسنامه فایل های اندرویدی به حساب میاد که اطلاعات مفیدی در آن ذخیره شده است
ابتدا سراغ ابزار apktool میرویم و به شکل زیر فایل مورد نظرمان را Decompile میسازیم
apktool d FileName.apk
پس از زدن دستور بالا در همان مسیر یک دایرکتوری با نام فایل apk شما ایجاد میشود و محتویات Decompile سازی در آن قرار میگیرد
به همین سادگی ما توانستیم فایل Classes.dex را Decompile کنیم و به Source-Code برنامه دسترسی داشته باشیم.
فایل Classes.dex ما الان به دایرکتوری smali تقییر کرده است و اگر نگاهی درون آن بیندازیم میبینیم که چندین فایل با فرمت smali در آن قرار دارد
در این قسمت از آموزش ما توانستیم به فایل های smali برنامه دسترسی پیدا کنیم
در این قسمت آموزش قصد داریم که به فایل .jar دسترسی پیدا کنیم و بتونیم فایل های جاوا برنامه را بخوانیم
ابتدا به شکل زیر عمل میکنیم و فایل apk را به فایل jar تبدیل میکنیم
d2j-dex2jar FileName.apk FileName.jar
پس از ایجاد شدن فایل jar اگر آن را با یک Archive Manger باز کنیم میبینیم که یک سری فایل Class درون آن وجود دارد که فرق چندانی با فایل های smali در قسمت قبل ندارند و فقد فرمت آن ها تقییر کرده است اما به راحتی این فایل ها قابل بازکردن و خواندن نیستند
محتوایی که شاید بپسندید: برنامه نویسی اندروید در Python | ماژول Kivy
اینجاست که ابزاری پیش روی ما میآید تحت عنوان JD-GUI
فایل jar انتخاب را اجرا میسازیم به این صورت ما با کلیک کردن بر روی هر یک از فایل های class توانایی دسترسی به Source-Code برنامه اندرویدی را پیدا خواهیم کرد
و در آخر نیز اسلایدی کلی از فرایند اجرایی و خوشه ایی نرم افزار های Apk