چندی پیش نیاز شد تا یک اپلیکیشن آندرویدی را کمی دستکاری کنم و چند تغییر کوچک در اون اعمال کنم.این اپلیکیشن متن باز نبود پس به کد منبع آن دسترسی نداشتم و فقط فایل باینری با پسوند APK در اختیارم بود.پس تنها راهی که پیش روی من بود رفتن به سراغ مهندسی معکوس بود تا شاید از این طریق بتوانم کاری از پیش ببرم.
اگر با مهندسی معکوس آشنایی ندارید صفحه ویکیپدیای آن را بخوانید تا با با این علم و کاربردهای آن آشنا شوید.مهندسی معکوس برای هکرها هم امکان ایجاد و توسعه کدهای مخرب (exploits)، ویروسها و تروجانها را فراهم میکند.
دیکامپایل کردن فایلهای باینری جاوا و سایر زبانها هم از دیرباز مطرح بوده.ابزارهای بسیاری وجود دارد که به شما اجازه دیکامپایل کردن پکیجهای باینری اپلیکیشنها و تا حدودی دسترسی به سورس آنها را فراهم میکند که در بعضی موارد با تلاش فراوان در نهایت کد منبع آن قابل فهم و خواندن میشود.
حالا Brut.all از توسعهدهندگان XdaDeveloper روی یک دیکامپایلر اپنسورس با نام APKTools کار کرده که بوسیله آن میتوان اپلیکیشنهای آندروید را دیکامپایل کرد.از این برنامه برای دیکامپایل کردن اپلیکیشن گوگلمپ هم استفاده شده است.
ابزار دیگری به نام dex2jar هم وجود دارد که توسط یک دانشآموز چینی ساخته شده که میتواند فایل dex را به jar تبدیل کند.برای قدم بعدی میتوانید از jd-gui استفاده کنید.
راه دیگر استفاده از Smali است که ابزار بسیار عالی برای مهندسی معکوس فایلهای DEX است.این ابزار بوسیله JesusFreke ساخته شده که برای رامهای آندرویدیاش مشهور است.
dissambler آندروید با نام dexdump. اطلاعات بیشتر
ابزار Decompile Android APK to Java برای دیکامپایل کردن فایلهای APK آندروید به جاوا
معرفی APKTools:
APLKTools ابزاری است برای مهندسی معکوس اپلیکیشنهای متفرقه،کد بسته و فایلهای باینری اپلیکیشنهای آندروید.این ابزار میتواند کار رمزگشایی و دیکامپایل کردن فایلهای APK آندروید را انجام و پس از تغییرات اعمال شده آن را rebuild کند.این ابزار برای اهدافی همچون دزدی نرمافزار و مقاصد غیر قانونی پیشنهاد نمیشود.از این ابزار میتوان استفادههای مفیدی مثل محلیسازی اپلیکیشنها، اضافه کردن ویژگیهای دیگر یا اضافه کردن پشتیبانی از پلتفرمهای دیگر انجام داد.
این ابزار میتواند ریسورسها را رمزگشایی و تبدیل به فرم اصلی آن شامل resources.arsc, XMLs و ۹٫png … کرده و دوباره آن را rebuild کند.
پیشنیازها:
- JRE 1.5+
- aapt command in PATH environment variable
- Basics of Android SDK
نحوه نصب APTTools:
ابتدا به اینجا بروید.سپس برای:
ویندوز:
فایلهای apktool-install-windows-* و apktool-* را دریافت کنید
هر دو فایل را در دایرکتوری Windows بازگشایی کنید.
برای ویندوز ابزار سادهای هم به نام APK Edit که بر پایه APKTools ایجاد شده وجود دارد که از آن هم میتوانید به سادگی استفاده کنید.پیشنیازها برای این ابزار: جاوا و .Net Framework 3.5 است.
لینوکس:
فایل apktool-install-linux-* را دریافت کنید.
فایل apktool-* را دریافت کنید.
هر دو فایل را در مسیر /usr/local/bin بازگشایی کنید(نیاز به دسترسی ریشه دارد)
مک او اس:
فایلهای apktool-install-macos-* و apktool-* را دریافت کنید
هر دو فایل را در مسیر /usr/local/bin بازگشایی کنید (نیاز به دسترسی ریشه دارد)
نحوه استفاده:
یک ترمینال/خط فرمان باز کنید و عبارت apktool را بنویسید و enter را بزنید تا راهنمای استفاده را ببینید.
میتوانید از این ویدئوهای آموزشی یک و دو استفاده کنید.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ اگر این مطلب را دوست داشتید میتوانید مشترک خوراکخوان رایتوب شوید تا از این پس همه مطالب بعدی رایتوب را در خبرخوانتان،بخوانید... ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
2 دیدگاه برای این نوشته:
- صالح:
۲۷ مهر ۱۳۹۱ ممنون مطالب جالبی بود. خیلی بدرد من خورد. - digitsm:
۰۳ آذر ۱۳۹۱ جالب بود. باید نشانکگذاری کنم سر فرصت باهاشون ور برم ببینم چجورین. گر چه راههای زیادی برای جلوگیری دیگران از این کار وجود داره ولی خب پیچیده میشه دیگه. راستی دانشآموز چینی رو خیلی خوب اومدی